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

目录

一.前提准备

二.源码安装Mysql

1.MySQL类型

[2.MySQL 版本说明](#2.MySQL 版本说明)

[3.MySQL 安装方式](#3.MySQL 安装方式)

[3.1 yum 安装](#3.1 yum 安装)

[3.2 编译安装](#3.2 编译安装)

[3.3 二进制安装](#3.3 二进制安装)

[3.4 rpm 安装](#3.4 rpm 安装)

[4. 编译安装MySQL5.7](#4. 编译安装MySQL5.7)

[4.1 清理安装环境](#4.1 清理安装环境)

[4.2 创建mysql用户](#4.2 创建mysql用户)

[4.3 从官网下载tar包](#4.3 从官网下载tar包)

[4.4 安装编译工具](#4.4 安装编译工具)

[4.5 解压](#4.5 解压)

[4.6 编译安装](#4.6 编译安装)

[4.7 初始化](#4.7 初始化)

[4.8 配置环境变量](#4.8 配置环境变量)

[4.9 启动mysql](#4.9 启动mysql)

[4.10 登录mysql](#4.10 登录mysql)

[4.11 systemctl启动方式](#4.11 systemctl启动方式)

[4.12 创建需要的库](#4.12 创建需要的库)

[三. 编译安装Nginx](#三. 编译安装Nginx)

[1 清理Nginx安装环境](#1 清理Nginx安装环境)

[2 创建Ngixn用户](#2 创建Ngixn用户)

[3 官网下载 Nginx 安装包](#3 官网下载 Nginx 安装包)

[4 安装编译 Nginx 依赖包](#4 安装编译 Nginx 依赖包)

[5 解压配置 Nginx 编译](#5 解压配置 Nginx 编译)

[6 Nginx 编译安装](#6 Nginx 编译安装)

[7 测试 Nginx 是否安装成功](#7 测试 Nginx 是否安装成功)

[8 启动 Nginx 服务](#8 启动 Nginx 服务)

[9 验证 Nginx 服务是否启动成功](#9 验证 Nginx 服务是否启动成功)

[10 系统添加 Nginx 服务](#10 系统添加 Nginx 服务)

[10.1 创建 nginx.service 文件](#10.1 创建 nginx.service 文件)

[10.2 以 systemctl 方式启动 Nginx](#10.2 以 systemctl 方式启动 Nginx)

[10.3 查看 Nginx 服务状态](#10.3 查看 Nginx 服务状态)

[10.4 验证 Nginx 服务是否成功启动](#10.4 验证 Nginx 服务是否成功启动)

[10.5 配置 Nginx 服务自动启动](#10.5 配置 Nginx 服务自动启动)

[四. 编译安装 PHP](#四. 编译安装 PHP)

[1. 清理环境,防止冲突](#1. 清理环境,防止冲突)

[2. 安装编译环境依赖包](#2. 安装编译环境依赖包)

[3. 安装编译 PHP 依赖库](#3. 安装编译 PHP 依赖库)

[4. 编译安装 PHP](#4. 编译安装 PHP)

[4.1 下载 PHP 源码包](#4.1 下载 PHP 源码包)

[4.2 配置 Php 编译](#4.2 配置 Php 编译)

[4.3 编译安装 PHP](#4.3 编译安装 PHP)

[5. 创建 php.ini 配置文件](#5. 创建 php.ini 配置文件)

[6. 设置php-fpm配置文件](#6. 设置php-fpm配置文件)

[7. 启动 php-fpm](#7. 启动 php-fpm)

[8. 检查 php-fpm 是否成功启动](#8. 检查 php-fpm 是否成功启动)

[9. 配置 php-fpm 系统环境变量](#9. 配置 php-fpm 系统环境变量)

[10. 重载环境变量](#10. 重载环境变量)

[11. 配置 php-fpm 开机自启动](#11. 配置 php-fpm 开机自启动)

[12. 重载 systemctl 配置](#12. 重载 systemctl 配置)

[13. 停止 php-fpm](#13. 停止 php-fpm)

[14. 用 systemctl 启动 php-fpm](#14. 用 systemctl 启动 php-fpm)

[15. 设置 php-fpm 开机启动](#15. 设置 php-fpm 开机启动)

[16. php-fpm 管理命令](#16. php-fpm 管理命令)

[五. Nginx 配置支持PHP](#五. Nginx 配置支持PHP)

[1、添加 Nginx 配置](#1、添加 Nginx 配置)

[2、添加 PHP 探测文件](#2、添加 PHP 探测文件)

[3. 验证 Nginx 关联 php-fpm](#3. 验证 Nginx 关联 php-fpm)

[3.1 重启 php-fpm](#3.1 重启 php-fpm)

[3.2 重载 Nginx 配置](#3.2 重载 Nginx 配置)

[3. 测试PHP与数据库连通性](#3. 测试PHP与数据库连通性)

[4. 访问验证](#4. 访问验证)

[六. 基于LAMP环境上线WordPress](#六. 基于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 清理安装环境

bash 复制代码
#用于完全卸载 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用户

bash 复制代码
#这两个操作选择其中一个就可以拉

[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包

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

4.4 安装编译工具

bash 复制代码
[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 解压

bash 复制代码
[root@localhost ~]# tar xzvf mysql-boost-5.7.27.tar.gz -C /usr/local/

4.6 编译安装

cd 解压的mysql目录

bash 复制代码
[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 默认的存储引擎,支持外键

bash 复制代码
[root@localhost mysql-5.7.27]# make && make install

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

注:如果安装出错,想重新安装:

不用重新解压,只需要删除安装目录中的缓存文件CMakeCache.txt

4.7 初始化

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

bash 复制代码
[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 配置环境变量

bash 复制代码
[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

bash 复制代码
[root@mysql-server ~]# cd /usr/local/mysql
[root@mysql-server mysql]# ./bin/mysqld_safe --user=mysql &

#启动之后再按一下回车!即可后台运行

4.10 登录mysql

bash 复制代码
[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.27

Copyright (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方便登录用

bash 复制代码
[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

bash 复制代码
[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

重新加载系统服务

bash 复制代码
[root@localhost mysql]# systemctl daemon-reload

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

bash 复制代码
[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 MySQL
   Loaded: loaded (/etc/rc.d/init.d/mysqld; bad; vendor preset: disabled)
   Active: active (exited) since 六 2024-05-11 13:05:53 CST; 58s ago
     Docs: 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 创建需要的库

bash 复制代码
[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 distribution

Copyright (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安装环境

bash 复制代码
yum remove nginx -y
userdel -r nginx
rm -rf /etc/nginx*
rm -rf /var/lib/nginx*

2 创建Ngixn用户

bash 复制代码
[root@localhost ~]# useradd -s /sbin/nologin -M nginx

3 官网下载 Nginx 安装包

bash 复制代码
[root@localhost ~]# wget https://nginx.org/download/nginx-1.22.1.tar.gz

4 安装编译 Nginx 依赖包

bash 复制代码
[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 编译

bash 复制代码
[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 编译安装

bash 复制代码
[root@localhost nginx-1.22.1]#  make && make install

7 测试 Nginx 是否安装成功

bash 复制代码
[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 服务

bash 复制代码
[root@localhost ~]# /usr/sbin/nginx

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

bash 复制代码
[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 文件
bash 复制代码
[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
bash 复制代码
[root@localhost ~]# pkill nginx
[root@localhost ~]# systemctl daemon-reload 
[root@localhost ~]# systemctl start nginx
10.3 查看 Nginx 服务状态
bash 复制代码
[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 服务是否成功启动
bash 复制代码
[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 服务自动启动
bash 复制代码
[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. 清理环境,防止冲突

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

2. 安装编译环境依赖包

bash 复制代码
[root@localhost ~]# yum -y install gcc gcc-c++ glibc automake autoconf libtool make

3. 安装编译 PHP 依赖库

bash 复制代码
[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 源码包

bash 复制代码
[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
bash 复制代码
[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 编译

bash 复制代码
[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

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

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

5. 创建 php.ini 配置文件

bash 复制代码
[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配置文件

bash 复制代码
[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
bash 复制代码
# 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

bash 复制代码
[root@localhost php-fpm.d]# /usr/local/php7/sbin/php-fpm

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

bash 复制代码
[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 系统环境变量

bash 复制代码
[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. 重载环境变量

bash 复制代码
[root@localhost ~]# source /etc/profile

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

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

bash 复制代码
[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 配置

bash 复制代码
[root@localhost ~]# systemctl daemon-reload

13. 停止 php-fpm

bash 复制代码
[root@localhost ~]# pkill php-fpm

14. 用 systemctl 启动 php-fpm

bash 复制代码
[root@localhost ~]# systemctl start php-fpm.service

15. 设置 php-fpm 开机启动

bash 复制代码
[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 管理命令

bash 复制代码
[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 配置

bash 复制代码
[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 探测文件

bash 复制代码
[root@localhost nginx]# cd /usr/local/nginx/html/

#在这个文件里添加如下内容
[root@localhost html]# vim index.php

<?php
phpinfo();
?>

3. 验证 Nginx 关联 php-fpm

3.1 重启 php-fpm

bash 复制代码
[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 配置

bash 复制代码
[root@localhost nginx]# systemctl restart nginx
[root@localhost nginx]# systemctl status nginx
● nginx.service - nginx
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since 六 2024-05-11 16:36:02 CST; 4s ago
  Process: 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 process

5月 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与数据库连通性

bash 复制代码
[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目录里

bash 复制代码
[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请手动创建

bash 复制代码
[root@localhost ~]# cd /usr/local/nginx/html/

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

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

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

往期相关搭建快捷跳转:

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

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

基于LNMP部署wordpress-CSDN博客

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

相关推荐
podoor1 天前
wordpress不同网站 调用同一数据表
前端·wordpress
Web极客码8 天前
什么是站点内部搜索垃圾邮件攻击以及如何防范
开发语言·php·wordpress
podoor10 天前
把wordpress文章分享到微信 分享到QQ
wordpress·woocommerce
podoor12 天前
两种在wordpress网站首页调用woocommerce产品的方法
wordpress·woocommerce
冰淇淋烤布蕾13 天前
wordpress建立数据库连接失败 数据库删除恢复
数据库·安全·阿里云·oracle·腾讯云·wordpress
podoor13 天前
wordpress免费下载
wordpress
龙萱坤诺14 天前
分享一个使用智狐联创AI平台创建的WordPress分类广告插件
chatgpt·ai编程·wordpress
Web极客码15 天前
如何优化浏览器缓存
缓存·wordpress·.htaccess
Web极客码16 天前
在WordPress中使用AI的实用方法:专家级
人工智能·wordpress·网站
idiot_qi19 天前
Ubuntu 24.04部署Wordpress
linux·ubuntu·wordpress