LNMP环境部署WordPress——使用源码包安装方式部署环境

目录

一.前提准备

二.源码安装Mysql 

1.MySQL类型

2.MySQL 版本说明

3.MySQL 安装方式

3.1 yum 安装

3.2 编译安装

3.3 二进制安装

3.4 rpm 安装

4. 编译安装MySQL5.7

4.1 清理安装环境

4.2 创建mysql用户

4.3 从官网下载tar包

4.4 安装编译工具

4.5 解压

4.6 编译安装

4.7 初始化 

4.8 配置环境变量 

4.9 启动mysql

4.10 登录mysql

4.11 systemctl启动方式

4.12 创建需要的库

三. 编译安装Nginx

1 清理Nginx安装环境

 2 创建Ngixn用户

3 官网下载 Nginx 安装包

4  安装编译 Nginx 依赖包

5 解压配置 Nginx 编译

6 Nginx 编译安装

7 测试 Nginx 是否安装成功

8 启动 Nginx 服务 

9 验证 Nginx 服务是否启动成功

10 系统添加 Nginx 服务

10.1 创建 nginx.service 文件

10.2 以 systemctl 方式启动 Nginx

10.3 查看 Nginx 服务状态

10.4  验证 Nginx 服务是否成功启动

10.5 配置 Nginx 服务自动启动

 四. 编译安装 PHP

 1. 清理环境,防止冲突

2. 安装编译环境依赖包

3. 安装编译 PHP 依赖库

4. 编译安装 PHP

4.1 下载 PHP 源码包

4.2 配置 Php 编译

4.3 编译安装 PHP

5. 创建 php.ini 配置文件

6. 设置php-fpm配置文件

7. 启动 php-fpm

8. 检查 php-fpm 是否成功启动

9. 配置 php-fpm 系统环境变量

10. 重载环境变量

11. 配置 php-fpm 开机自启动

12. 重载 systemctl 配置

13. 停止 php-fpm

14. 用 systemctl 启动 php-fpm

15. 设置 php-fpm 开机启动

16. php-fpm 管理命令

 五. Nginx 配置支持PHP

1、添加 Nginx 配置

2、添加 PHP 探测文件

3. 验证 Nginx 关联 php-fpm 

3.1 重启 php-fpm

3.2 重载 Nginx 配置

 3. 测试PHP与数据库连通性

4. 访问验证

六. 基于LAMP环境上线WordPress

续篇——源码部署LAMP环境上线项目——禅道项目-CSDN博客


一.前提准备

1.安装一个centos7虚拟机

2.配置yum源(这里我用阿里源)

3.关闭防火墙和SEliunx

4.下载常用的工具包 

5.设置一个静态IP(可选操作)

这些初始化操作都是常用的,这里不在赘述。本文重点学习使用源码安装mysql,nginx,php。

二.源码安装Mysql 

1.MySQL类型

  • MySQL Community Server

MySQL Community Server是社区版本,开源免费,但不提供官方技术支持。MySQL Community Server也是我们通常用的MySQL的版本。根据不同的操作系统平台细分为多个版本。

  • MySQL Enterprise Edition

MySQL Enterprise Edition企业版本,需付费,可以试用30天。

  • MySQL Cluster

MySQL Cluster集群版,开源免费。可将几个MySQL Server封装成一个Server。MySQL Cluster CGE 高级集群版,需付费。

2.MySQL 版本说明

以 MySQL 5.7.27 这个版本的版本号为例说明每个数字含义。

第一个数字(5)主版本号:文件格式改动时,将作为新的版本发布;
第二个数字(7)发行版本号:新增特性或者改动不兼容时,发行版本号需要更改;
第三个数字(27)发行序列号:主要是小的改动,如bug的修复、函数添加或更改、配置参数的更改等。

3.MySQL 安装方式

3.1 yum 安装

优点:操作简单易用。不用单独下载,服务器可以联网且yum源没有问题即可(可以选择国内的163/阿里源)

3.2 编译安装

5.1.X 及之前的版本是通过下载tar包以后解压后进入软件包解压路径。然后./configure、make、make install
​
5.4.X 到 5.7.X 通过下载tar包以后解压后进入软件包解压路径。然后 cmake、make、make install(cmake需要提前安装)
​
优点:可以定制功能特性。

3.3 二进制安装

官方下载二进制包,解压初始化即可直接使用不用安装。

3.4 rpm 安装

需要提前下载 rpm 软件包上传到服务器系统本地。
使用 rpm 或者 yum 命令直接安装

4. 编译安装MySQL5.7

4.1 清理安装环境

#用于完全卸载 Mariadb 数据库并清理相关的文件和用户,清理系统可能带有的残留
yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y
userdel -r mysql
rm -rf /etc/my*
rm -rf /var/lib/mysql

4.2 创建mysql用户

#这两个操作选择其中一个就可以拉[root@localhost ~]# useradd mysql -M -s /bin/nologin
-M 不创建用户的家目录
[root@localhost ~]# useradd -r mysql  -s /bin/nologin
-r 选项表示创建一个系统用户,也被称为系统账户。使用useradd -r命令创建系统用户时,会自动分配一个较高的用户ID(UID)和组ID(GID),并且不会为其创建家目录。

4.3 从官网下载tar包

[root@localhost ~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.27.tar.gz

4.4 安装编译工具

[root@localhost ~]# yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make glibc automake autoconf net-tools[root@localhost ~]# yum -y install cmake

4.5 解压

[root@localhost ~]# tar xzvf mysql-boost-5.7.27.tar.gz -C /usr/local/

4.6 编译安装

cd 解压的mysql目录 

[root@localhost ~]# cd /usr/local/mysql-5.7.27/
[root@localhost mysql-5.7.27]# cmake . \
-DWITH_BOOST=boost/boost_1_59_0/ \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DINSTALL_MANDIR=/usr/share/man \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_SSL=system \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1

 参数详解:


-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \   安装目录
-DSYSCONFDIR=/etc \   配置文件存放 (默认可以不安装配置文件)
-DMYSQL_DATADIR=/usr/local/mysql/data \   数据目录   错误日志文件也会在这个目录
-DINSTALL_MANDIR=/usr/share/man \     帮助文档 
-DMYSQL_TCP_PORT=3306 \     默认端口
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \  sock文件位置,用来做网络通信的,客户端连接服务器的时候用
-DDEFAULT_CHARSET=utf8 \    默认字符集。字符集的支持,可以调
-DEXTRA_CHARSETS=all \   扩展的字符集支持所有的
-DDEFAULT_COLLATION=utf8_general_ci \  支持的
-DWITH_READLINE=1 \    上下翻历史命令
-DWITH_SSL=system \    使用私钥和证书登陆(公钥)  可以加密。 适用与长连接。坏处:速度慢
-DWITH_EMBEDDED_SERVER=1 \   嵌入式数据库
-DENABLED_LOCAL_INFILE=1 \    从本地倒入数据,不是备份和恢复。
-DWITH_INNOBASE_STORAGE_ENGINE=1  默认的存储引擎,支持外键

[root@localhost mysql-5.7.27]# make && make install

这个编译安装的时间会很长,一般20-30分钟,耐心等待。 

 注:如果安装出错,想重新安装:
        不用重新解压,只需要删除安装目录中的缓存文件CMakeCache.txt

4.7 初始化 

初始化,只需要初始化一次

[root@localhost mysql-5.7.27]# cd /usr/local/mysql
[root@localhost mysql]# chown -R mysql.mysql .
[root@localhost mysql]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data    
#初始化完成之后,一定要记住提示最后的密码用于登陆或者修改密码

4.8 配置环境变量 

[root@localhost mysql]# echo 'export PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile
[root@localhost mysql]# source /etc/profile
[root@localhost mysql]# echo $PATH
/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin[root@mysql-server ~]# vim /etc/my.cnf  
#如果打开文件有内容将文件中所有内容注释掉,在添加如下内容[client]
port = 3306                      # 默认连接端口
socket = /tmp/mysql.sock         # 用于本地连接的socket套接字
default-character-set = utf8     # 编码[mysqld]
port = 3306                      # 服务端口号,默认3306
user = mysql                     # mysql启动用户
basedir = /usr/local/mysql       #指定安装目录
datadir = /usr/local/mysql/data  #指定数据存放目录
socket = /tmp/mysql.sock         # 为MySQL客户端程序和服务器之间的本地通讯指定一个套接字文件
character_set_server = utf8      # 数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)

4.9 启动mysql

[root@mysql-server ~]# cd /usr/local/mysql
[root@mysql-server mysql]# ./bin/mysqld_safe --user=mysql &#启动之后再按一下回车!即可后台运行

4.10 登录mysql

[root@localhost mysql]# mysql -u root -p'TM>#jcd_P63n'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.27Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>exit                           #退出
Bye

 修改密码为1234方便登录用

[root@localhost mysql]# mysqladmin -uroot -p'TM>#jcd_P63n' password '1234'
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

4.11 systemctl启动方式

拷贝启动脚本到/etc/init.d/目录下,并改名mysqld

[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql]# ls -l /etc/init.d/mysqld
-rwxr-xr-x 1 root root 10576 5月  11 13:05 /etc/init.d/mysqld

重新加载系统服务

[root@localhost mysql]# systemctl daemon-reload

启动MySQL数据库,并检查端口监听状态

[root@localhost mysql]# systemctl stop mysqld 
[root@localhost mysql]# systemctl start mysqld
tcp6       0      0 :::3306                 :::*                    LISTEN      32289/mysqld        
[root@localhost mysql]# systemctl status mysqld
● mysqld.service - LSB: start and stop MySQLLoaded: loaded (/etc/rc.d/init.d/mysqld; bad; vendor preset: disabled)Active: active (exited) since 六 2024-05-11 13:05:53 CST; 58s agoDocs: man:systemd-sysv-generator(8)5月 11 13:05:53 localhost.localdomain systemd[1]: Starting LSB: start and stop MySQL...
5月 11 13:05:53 localhost.localdomain mysqld[32394]: Starting MySQL SUCCESS!
5月 11 13:05:53 localhost.localdomain systemd[1]: Started LSB: start and stop MySQL.
5月 11 13:05:53 localhost.localdomain mysqld[32394]: 2024-05-11T05:05:53.769772Z mysqld_safe A mysqld process already exists
[root@localhost mysql]#

4.12 创建需要的库

[root@localhost mysql]# mysql -u root -p1234
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.27 Source distributionCopyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> create database wordpress;
Query OK, 1 row affected (0.01 sec)mysql> grant all on *.* to 'remote'@'%' identified by '1234';
Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)mysql> exit
Bye
[root@localhost ~]# 

三. 编译安装Nginx

1 清理Nginx安装环境

yum remove nginx -y
userdel -r nginx
rm -rf /etc/nginx*
rm -rf /var/lib/nginx*

 2 创建Ngixn用户

[root@localhost ~]# useradd -s /sbin/nologin -M nginx

3 官网下载 Nginx 安装包

[root@localhost ~]# wget https://nginx.org/download/nginx-1.22.1.tar.gz

4  安装编译 Nginx 依赖包

[root@localhost ~]# yum -y install gcc gcc-c++ make zlib-devel pcre pcre-devel openssl-devel perl-devel perl-ExtUtils-Embed gd-devel

5 解压配置 Nginx 编译

[root@localhost ~]# tar zxvf nginx-1.22.1.tar.gz -C /usr/local/
[root@localhost ~]# cd /usr/local/nginx-1.22.1/
[root@localhost nginx-1.22.1]# ./configure \
--user=nginx \
--group=nginx \
--prefix=/usr/local/nginx \
--conf-path=/etc/nginx/nginx.conf \
--sbin-path=/usr/sbin/nginx \
--error-log-path=/var/log/nginx/nginx_error.log \
--http-log-path=/var/log/nginx/nginx_access.log \
--pid-path=/usr/local/nginx/run/nginx.pid

6 Nginx 编译安装

[root@localhost nginx-1.22.1]#  make && make install

7 测试 Nginx 是否安装成功

[root@localhost nginx-1.22.1]# nginx -V
nginx version: nginx/1.22.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 
configure arguments: --user=nginx --group=nginx --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf --sbin-path=/usr/sbin/nginx --error-log-path=/var/log/nginx/nginx_error.log --http-log-path=/var/log/nginx/nginx_access.log --pid-path=/usr/local/nginx/run/nginx.pid
[root@localhost nginx-1.22.1]# 

8 启动 Nginx 服务 

[root@localhost ~]# /usr/sbin/nginx

9 验证 Nginx 服务是否启动成功

[root@localhost ~]# netstat -lntp | grep nginx 
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      35664/nginx: master 

10 系统添加 Nginx 服务

 以 systemd 形式添加

10.1 创建 nginx.service 文件
[root@localhost ~]# vim /lib/systemd/system/nginx.service[Unit]
Description=nginx
After=network.target[Service]
Type=forking
ExecStart=/usr/sbin/nginx
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/usr/sbin/nginx -s quit
PrivateTmp=true[Install]
WantedBy=multi-user.target

[Unit]:服务的说明
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间


注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

10.2 以 systemctl 方式启动 Nginx
[root@localhost ~]# pkill nginx
[root@localhost ~]# systemctl daemon-reload 
[root@localhost ~]# systemctl start nginx
10.3 查看 Nginx 服务状态
[root@localhost ~]# ps -ef | grep nginx
root      35721      1  0 14:49 ?        00:00:00 nginx: master process /usr/sbin/nginx
nginx     35722  35721  0 14:49 ?        00:00:00 nginx: worker process
root      35724   1460  0 14:49 pts/0    00:00:00 grep --color=auto nginx
10.4  验证 Nginx 服务是否成功启动
[root@localhost ~]# netstat -ntlp | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      35721/nginx: master 
10.5 配置 Nginx 服务自动启动
[root@localhost ~]# systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.

 四. 编译安装 PHP

 1. 清理环境,防止冲突

[root@localhost ~]# yum -y remove php
已加载插件:fastestmirror
参数 php 没有匹配
不删除任何软件包
[root@localhost ~]# userdel -r php
userdel:用户“php”不存在

2. 安装编译环境依赖包

[root@localhost ~]# yum -y install gcc gcc-c++ glibc automake autoconf libtool make

3. 安装编译 PHP 依赖库

[root@localhost ~]# yum -y install libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssl-devel 

4. 编译安装 PHP

4.1 下载 PHP 源码包

[root@localhost ~]# wget https://www.php.net/distributions/php-7.3.6.tar.gz
[root@localhost ~]# wget https://libzip.org/download/libzip-1.3.2.tar.gz
[root@localhost ~]# tar -xf libzip-1.3.2.tar.gz
[root@localhost ~]# cd  libzip-1.3.2/
[root@localhost libzip-1.3.2]# ./configure[root@localhost libzip-1.3.2]# make && make install

4.2 配置 Php 编译

[root@localhost libzip-1.3.2]# cd ~
[root@localhost ~]# tar xzvf php-7.3.6.tar.gz -C /usr/local/[root@localhost ~]# cd /usr/local/php-7.3.6/
[root@localhost php-7.3.6]# ./configure \--prefix=/usr/local/php7 \--with-config-file-path=/usr/local/php7 \--with-config-file-scan-dir=/usr/local/php7/php.d \--enable-mysqlnd \--with-mysqli \--with-pdo-mysql \--enable-fpm \--with-fpm-user=nginx \--with-fpm-group=nginx \--with-gd \--with-iconv \--enable-xml \--enable-shmop \--enable-sysvsem \--enable-inline-optimization \--enable-mbregex \--enable-mbstring \--enable-ftp \--enable-zip \--with-openssl \--with-zlib \--with-libzip \--enable-pcntl \--enable-sockets \--with-xmlrpc \--enable-soap \--without-pear \--with-gettext \--enable-session \--with-curl \--with-jpeg-dir \--with-freetype-dir \--enable-opcache

参数解释: 

--prefix=/usr/local/php7         # 配置安装目录
--with-config-file-path=/usr/local/php7 # 配置文件 php.ini 的路径
--enable-sockets                 # 开启 socket 
--enable-fpm                     # 启用 fpm 扩展
--enable-cli                     # 启用 命令行模式 (从 php 4.3.0 之后这个模块默认开启所以可以不用再加此命令)
--enable-mbstring                 # 启用 mbstring 库
--enable-pcntl                     # 启用 pcntl (仅 CLI / CGI)
--enable-soap                     # 启用 soap 
--enable-opcache                 # 开启 opcache 缓存
--disable-fileinfo                 # 禁用 fileinfo (由于 5.3+ 之后已经不再持续维护了,但默认是开启的,所以还是禁止了吧)(1G以下内存服务器直接关了吧)
--disable-rpath                  # 禁用在搜索路径中传递其他运行库。
--with-mysqli                     # 启用 mysqli 扩展
--with-pdo-mysql                 # 启用 pdo 扩展
--with-iconv-dir                 # 启用 XMLRPC-EPI 字符编码转换 扩展
--with-openssl                     # 启用 openssl 扩展 (需要 openssl openssl-devel)
--with-fpm-user=nginx             # 设定 fpm 所属的用户 
--with-fpm-group=nginx             # 设定 fpm 所属的组别
--with-curl                     # 启用 curl 扩展
--with-mhash                     # 开启 mhash 基于离散数学原理的不可逆向的php加密方式扩展库
# GD
--with-gd                         # 启用 GD 图片操作 扩展
--with-jpeg-dir                 # 开启对 jpeg 图片的支持 (需要 libjpeg)
--with-png-dir                     # 开启对 png 图片支持 (需要 libpng)
--with-freetype-dir             # 开启 freetype 

# xml
--enable-simplexml                 # 启用对 simplexml 支持
--with-libxml-dir                 # 启用对 libxml2 支持

--enable-debug                     # 开启 debug 模式

4.3 编译安装 PHP

[root@localhost php-7.3.6]# make -j 4 && make install
#这里make -j 4 是指定4个核去执行,多则快

这里也会很慢,大约要30分钟。

5. 创建 php.ini 配置文件

[root@localhost php-7.3.6]# cp php.ini-production /usr/local/php7/etc/php.ini#php的Session存储目录,将这行的注释 ; 号给删除即可,然后保存退出
[root@localhost php-7.3.6]# vim /usr/local/php7/etc/php.ini +1371 

6. 设置php-fpm配置文件

[root@qfedu.com php-7.3.6]# cd /usr/local/php7/etc
[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf
[root@localhost etc]# vim php-fpm.conf +17#将注释取消并修改
pid = /var/run/php-fpm.pid

# php-fpm连接文件
[root@localhost etc]# cd /usr/local/php7/etc/php-fpm.d/#php-fpm子配置文件
[root@localhost php-fpm.d]# cp www.conf.default www.conf
[root@localhost php-fpm.d]# vim www.conf检查这个文件里对不对,分别在23,24,36行,具体可见下图:
user = nginx
group = nginx
listen = 127.0.0.1:9000

7. 启动 php-fpm

[root@localhost php-fpm.d]# /usr/local/php7/sbin/php-fpm

8. 检查 php-fpm 是否成功启动

[root@localhost php-fpm.d]# ps aux | grep php-fpm
root      46286  0.0  0.1 222276  4436 ?        Ss   16:04   0:00 php-fpm: master process (/usr/local/php7/etc/php-fpm.conf)
nginx     46287  0.0  0.1 222276  3932 ?        S    16:04   0:00 php-fpm: pool www
nginx     46288  0.0  0.1 222276  3936 ?        S    16:04   0:00 php-fpm: pool www
root      46290  0.0  0.0 112824   980 pts/3    R+   16:04   0:00 grep --color=auto php-fpm

        若看到相关进程,则证明启动成功。查询进程时,进程是以 nginx 用户身份执行的  

9. 配置 php-fpm 系统环境变量

[root@localhost php-7.3.6]# cd 
[root@localhost ~]# vim /etc/profile#在配置文件末尾新增如下两行
export PHP_HOME=/usr/local/php7
export PATH=$PATH:$PHP_HOME/bin:$PHP_HOME/sbin

10. 重载环境变量

[root@localhost ~]# source /etc/profile

使用 echo $PATH 命令查看环境变量中是否已经加入了相关的路径 

11. 配置 php-fpm 开机自启动

[root@localhost ~]# vim /lib/systemd/system/php-fpm.service[Unit]
Description=php-fpm
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/php7/sbin/php-fpm
ExecStop=/bin/pkill -9 php-fpm
PrivateTmp=true
[Install]
WantedBy=multi-user.target

 [Unit]:服务的说明
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间


注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

12. 重载 systemctl 配置

[root@localhost ~]# systemctl daemon-reload

13. 停止 php-fpm

[root@localhost ~]# pkill php-fpm

14. 用 systemctl 启动 php-fpm

[root@localhost ~]# systemctl start php-fpm.service

15. 设置 php-fpm 开机启动

[root@localhost ~]# systemctl enable php-fpm.service
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.

16. php-fpm 管理命令

[root@localhost ~]# systemctl stop php-fpm.service 			# 停止服务
[root@localhost ~]# systemctl restart php-fpm.service 		# 重新启动服务
[root@localhost ~]# systemctl status php-fpm.service		# 查看服务当前状态
[root@localhost ~]# systemctl disable php-fpm.service 		# 停止开机自启动

 五. Nginx 配置支持PHP

1、添加 Nginx 配置

[root@localhost ~]# cd /etc/nginx/
[root@localhost nginx]# vim nginx.conf +34#从此行处添加如下内容server
{listen 80;server_name localhost;index index.html index.htm index.php;root /usr/local/nginx/html;location ~ \.php${include fastcgi_params;        #指定nginx连接php-fpm的常量fastcgi_pass 127.0.0.1:9000;    #连接php-fpm的地址和端口fastcgi_index index.php;        #指定默认页面fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; #指定站点根目录}
}

2、添加 PHP 探测文件

[root@localhost nginx]# cd /usr/local/nginx/html/#在这个文件里添加如下内容
[root@localhost html]# vim index.php<?php
phpinfo();
?>

3. 验证 Nginx 关联 php-fpm 

3.1 重启 php-fpm

[root@localhost html]# systemctl restart php-fpm.service
[root@localhost html]# ps -ef|grep php-fpm
root      46443      1  0 16:18 ?        00:00:00 php-fpm: master process (/usr/local/php7/etc/php-fpm.conf)
nginx     46444  46443  0 16:18 ?        00:00:00 php-fpm: pool www
nginx     46445  46443  0 16:18 ?        00:00:00 php-fpm: pool www
root      46447  46401  0 16:18 pts/2    00:00:00 grep --color=auto php-fpm

3.2 重载 Nginx 配置

[root@localhost nginx]# systemctl restart nginx
[root@localhost nginx]# systemctl status nginx
● nginx.service - nginxLoaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)Active: active (running) since 六 2024-05-11 16:36:02 CST; 4s agoProcess: 46568 ExecStop=/usr/sbin/nginx -s quit (code=exited, status=0/SUCCESS)Process: 46573 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)Main PID: 46574 (nginx)CGroup: /system.slice/nginx.service├─46574 nginx: master process /usr/sbin/nginx└─46575 nginx: worker process5月 11 16:36:02 localhost.localdomain systemd[1]: Starting nginx...
5月 11 16:36:02 localhost.localdomain nginx[46573]: nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored
5月 11 16:36:02 localhost.localdomain systemd[1]: Started nginx.

 3. 测试PHP与数据库连通性

[root@localhost ~]# cat >/root/test_mysql.php<<'EOF'
<?php
$servername = "localhost";
$username = "root";
$password = "1234";      // 这里输入数据库root用户的密码
$database = "wordpress"; // 这里替换为你实际的数据库名// 创建连接
$conn = mysqli_connect($servername, $username, $password, $database);// 检测连接
if (!$conn) {die("Connection failed: " . mysqli_connect_error());
}
echo "PHP连接MySQL数据库成功";
?>
EOF#测试连通性
[root@localhost ~]# php /root/test_mysql.php 
PHP连接MySQL数据库成功[root@localhost ~]# #连接成功就可以继续下一步拉

4. 访问验证

访问地址(这里将IP改成你的IP即可): 192.168.226.129ip:/index.php    

LNMP环境编译安装完成!

六. 基于LAMP环境上线WordPress

 项目源码包链接:https://pan.baidu.com/s/1HUoj36zgx-Q1HooxRy4_Tw?pwd=cgue 
提取码:cgue

博客版本:wordpress-6.5.2-zh_CN

下载好,拖动上传到虚拟机里,这里我上传到拉root目录里

[root@localhost ~]# unzip wordpress-6.5.2-zh_CN.zip[root@localhost ~]# rm -rf /usr/local/nginx/html/*#将代码拷贝到网站发布目录中
[root@localhost ~]# cp -r wordpress/* /usr/local/nginx/html/
[root@localhost ~]# systemctl restart nginx

测试访问 

浏览器输入192.168.226.129   (这里你输入你的IP哈)

回车即可访问

点击现在就开始!

然后按照图改写一下,注意数据库密码你设置的别输入错误

如果不能创建wp-config.php请手动创建

[root@localhost ~]# cd /usr/local/nginx/html/#将提示框中的信息粘贴进去 
[root@localhost html]# vim wp-config.php 

  配置完在点运行安装程序,不然会返回到初始页面重来,如果没有提示这个页面就直接下一步即可

 

到此,使用源码搭建就成功拉,本文重点理解和收悉源码搭建的环境的流程与步骤。 

往期相关搭建快捷跳转:

续篇——源码部署LAMP环境上线项目——禅道项目-CSDN博客

网盘_游戏_博客自动化部署(Nginx多项目部署)-CSDN博客

基于LNMP部署wordpress-CSDN博客

WordPress网站上添加看板娘-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/691263.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

专业130+总分400+哈尔滨工程大学810信号与系统考研哈工程水声电子信息通信工程,真题,大纲,参考书。

毕业设计刚搞完&#xff0c;总结一下去年考研的复习经历&#xff0c;希望对大家复习有帮助&#xff0c;考研专业课810信号与系统130总分400&#xff0c;如愿上岸哈工程水声。专业课&#xff1a;130 哈工程水声院810专业课信号与系统难度适中&#xff0c;目前数一难度很高&…

【全开源】Java洗衣清洁服务同城清洗服务小程序源码

特色功能&#xff1a; 在线预约与支付&#xff1a;用户可以直接通过小程序预约洗衣时间和地点&#xff0c;同时还可以在线支付洗衣费用&#xff0c;从而避免了排队等待的时间&#xff0c;提高了效率。订单查询与服务评价&#xff1a;用户可以通过小程序实时查询洗衣订单的状态…

算法详解——回溯法

一、回溯法概述——问题背景 回溯法是一种解决约束满足问题的方法&#xff0c;特别适用于解决组合问题、搜索优化问题等。它通过逐步构建候选解决方案并且在这个解决方案不再可能满足约束或条件时进行剪枝和回溯。具体来说&#xff0c;回溯法可以应用于以下类型的问题&#xff…

物联网到底物联了个啥?——青创智通

工业物联网解决方案-工业IOT-青创智通 物联网&#xff0c;这个听起来似乎颇具科技感和未来感的词汇&#xff0c;其实早已悄然渗透到我们生活的方方面面。从智能家居到智慧城市&#xff0c;从工业自动化到医疗健康&#xff0c;物联网技术正在以其独特的魅力改变着我们的生活方式…

从头理解transformer,注意力机制(下)

交叉注意力 交叉注意力里面q和KV生成的数据不一样 自注意力机制就是闷头自学 解码器里面的每一层都会拿着编码器结果进行参考&#xff0c;然后比较相互之间的差异。每做一次注意力计算都需要校准一次 编码器和解码器是可以并行进行训练的 训练过程 好久不见输入到编码器&…

自拍欺骗成为流行的身份证件欺诈技术

据 Socure 称&#xff0c;文档图像叠加是 2023 年最流行的身份证件欺诈技术&#xff0c;在所有被拒绝的身份证件中&#xff0c;有 63% 发生这种情况。 自拍欺骗和冒充在与文件相关的身份欺诈中占主导地位 当用户拍摄照片或使用 ID 的屏幕截图图像&#xff08;而不是提供文档的…

Linux-页(page)和页表

本文在页表方面参考了这篇博客&#xff0c;特别鸣谢&#xff01; 【Linux】页表的深入分析 1. 页帧和页框 页帧&#xff08;page frame&#xff09;是内存的最小可分配单元&#xff0c;也开始称作页框&#xff0c;Linux下页帧的大小为4KB。 内核需要将他们用于所有的内存需求&a…

人工智能能否解决科学问题:Wolfram的视角

引言 在当今AI技术飞速发展的背景下&#xff0c;它在科学研究领域的应用正逐渐深入。从AlphaFold 3的推出到日益复杂的计算模型&#xff0c;AI似乎在向科学家的角色靠拢。然而&#xff0c;美国计算机科学家Stephen Wolfram在一系列讲座和文章中提出了反思&#xff1a;AI真的能…

DDD架构理论详解

文章目录 一、概念入门1. 概念简介2. DDD的核心理念3. 范式4. 模型5. 框架6. 方法论7. 软件设计的主要活动 二、DDD核心理论1. Domain领域层都包含什么&#xff1f;2. 聚合、实体和值对象3. 仓储&#xff0c;封装持久化数据4. 适配&#xff08;端口&#xff09;&#xff0c;调用…

Python-VBA函数之旅-str函数

目录 一、str函数的常见应用场景 二、str函数使用注意事项 三、如何用好str函数&#xff1f; 1、str函数&#xff1a; 1-1、Python&#xff1a; 1-2、VBA&#xff1a; 2、推荐阅读&#xff1a; 个人主页&#xff1a; https://myelsa1024.blog.csdn.net/ 一、str函数的常…

Uniapp 自定义弹窗

布局 <view><view v-if"show" class"popup"><view class"popup-box"><view>支付方式:{{way}}</view><view>停车费用:{{money}}</view><view class"btn-box"><view class"ca…

从零开始详解OpenCV条形码区域分割

前言 在识别二维码之前&#xff0c;首先要划分出二维码的区域&#xff0c;在本篇文章中将从零开始实现二维码分割的功能&#xff0c;并详细介绍用到的方法。 我们需要处理的图像如下&#xff1a; 完整代码 首先我们先放出完整代码&#xff0c;然后根据整个分割流程介绍用到…