使用软件包版本
1.MySQL 5.7.44
2.Nginx 1.28.1
3.PHP 7.3.6
4.libzip 1.5.2
5.cmake 3.6.0
6.wordpress 6.9/4.9
1.编译安装MySQL
1.1MySQL类型

1.2编译安装MySQL
1.清理环境
yum remove mariadb mariadb-server mariadb-libs mariadb-devel -y
userdel -r mysql
rm -rf /etc/my*
rm -rf /var/lib/mysql
2.创建MySQL用户
[root@lnmp ~]# useradd -r mysql -M -s /bin/nologin
-r 创建系统目录
-M 不创建家目录
-s 登录Shell设置 /bin/nologin 禁止登录
3.从官网下载MySQL源码包
MySQL官网:MySQL




[root@lnmp ~]# yum -y install wget -下载wget
[root@lnmp ~]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.44.tar.gz
-使用wget安装MySQL.tar.gz包
4.安装编译工具
[root@lnmp ~]# yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make glibc automake autoconf cmake

5.解压
[root@lnmp ~]# tar xzvf mysql-boost-5.7.44.tar.gz -C /usr/local/
-解压到/usr/local
6.预编译(配置;最重要的一步)
[root@lnmp ~]# cd /usr/local/mysql-5.7.44/
-刚刚解压到这里了
MySQL主要目录

cmake命令作用于CMakeLists.txt文件
[root@lnmp mysql-5.7.44]# 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_READLINE=1 \
-DWITH_SSL=system \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1
参数详解(这是典型的生成环境MySQL编译选项)
基础路径配置
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql # 安装主目录 -DSYSCONFDIR=/etc # 配置文件目录(my.cnf位置) -DMYSQL_DATADIR=/usr/local/mysql/data # 数据文件目录 -DINSTALL_MANDIR=/usr/share/man # 手册页目录
Boost依赖(MySQL5.7+必需)
-DWITH_BOOST=boost/boost_1_59_0/ # 指定Boost库路径
网络与连接配置
-DMYSQL_TCP_PORT=3306 # MySQL服务端口(默认3306) -DMYSQL_UNIX_ADDR=/tmp/mysql.sock # Unix Socket文件路径
字符集配置(中文支持关键)
-DDEFAULT_CHARSET=utf8 # 默认字符集为UTF-8 -DEXTRA_CHARSETS=all # 安装所有字符集 -DDEFAULT_COLLATION=utf8_general_ci # 默认排序规则(不区分大小写)
功能模块控制
-DWITH_READLINE=1 # 启用命令行编辑功能 -DWITH_SSL=system # 使用系统OpenSSL库 -DWITH_EMBEDDED_SERVER=1 # 编译嵌入式库(libmysqld) -DENABLED_LOCAL_INFILE=1 # 允许LOAD DATA LOCAL INFILE -DWITH_INNOBASE_STORAGE_ENGINE=1 # 启用InnoDB存储引擎(默认已启用)
7.编译安装
[root@mysql-server mysql-5.7.27]# make -j 2 && make install
-j 使用几个处理器
make 编译
make install 安装
如果安装出错,想重新安装:
不用重新解压,只需要删除安装目录中的缓存文件CMakeCache.txt

8.初始化(一定记住最后的密码)
编译安装的MySQL启动之前,需要初始化,初始化一次就可以了
[root@mysql-server mysql-5.7.44]# cd /usr/local/mysql
[root@mysql-server mysql]# chown -R mysql:mysql /usr/local/mysql
[root@mysql-server mysql]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data ---初始化完成之后,一定要记住提示最后的密码用于登陆或者修改密码
2026-01-05T09:08:40.627625Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2026-01-05T09:08:40.772581Z 0 [Warning] InnoDB: New log files created, LSN=45790
2026-01-05T09:08:40.795801Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2026-01-05T09:08:40.863509Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 20c7de5c-ea16-11f0-ba7b-000c29e015d0.
2026-01-05T09:08:40.864334Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2026-01-05T09:08:41.081580Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
2026-01-05T09:08:41.081637Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
2026-01-05T09:08:41.081999Z 0 [Warning] CA certificate ca.pem is self signed.
2026-01-05T09:08:41.200616Z 1 [Note] A temporary password is generated for root@localhost: Cg>+foU!j6sM

9.配置环境变量
设置环境变量
[root@localhost mysql]# vim /etc/profile -加在最后面
MYSQL_HOME=/usr/local/mysql
PATH=$MYSQL_HOME/bin:$PATH
[root@localhost mysql]# source /etc/profile
[root@localhost mysql]# echo $PATH -查看当前系统的PATH环境变量
/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost mysql]# mysql --version
mysql Ver 14.14 Distrib 5.7.44, for Linux (x86_64) using EditLine wrapper

10修改配置文件
[root@mysql-server ~]# vim /etc/my.cnf --如果打开文件有内容将文件中所有内容注释掉,在添加如下内容
[client]
port = 3306
socket = /tmp/mysql.sock
default-character-set = utf8
[mysqld]
port = 3306
user = mysql
basedir = /usr/local/mysql #指定安装目录
datadir = /usr/local/mysql/data #指定数据存放目录
socket = /tmp/mysql.sock
character_set_server = utf8

11.启动MySQL
[root@mysql-server ~]# cd /usr/local/mysql
[root@mysql-server mysql]# ./bin/mysqld_safe --user=mysql &
启动之后再按一下回车!即可后台运行
[root@mysql-server ~]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1108/sshd
tcp6 0 0 :::3306 :::* LISTEN 24753/mysqld
tcp6 0 0 :::22 :::* LISTEN 1108/sshd
12.登录MySQL
[root@mysql-server mysql]# /usr/local/mysql/bin/mysql -uroot -p'GP9TKGgY9i/8' -刚刚记住的密码
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 4
Server version: 5.7.44 Source distribution
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
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> \q #退出
13.修改数据库密码
[root@localhost ~]# mysqladmin -uroot -p'Cg>+foU!j6sM' password 'root' -改为root
[root@localhost ~]# mysql -uroot -p'root'
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 7
Server version: 5.7.44 Source distribution
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
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>
14.配置Centos7快捷管理方式systemctl
[root@localhost mysql]# vim /usr/lib/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network-online.target
Wants=network-online.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
Type=simple
#主要关注这里
ExecStart=/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql
LimitNOFILE = 10000
Restart=on-failure
RestartPreventExitStatus=1
Environment=MYSQLD_PARENT_PID=1
PrivateTmp=false

15.重新加载系统配置文件
[root@localhost mysql]# systemctl daemon-reload
[root@localhost mysql]# systemctl restart mysqld
[root@localhost mysql]# netstat -tnlp|grep mysql
tcp6 0 0 :::3306 :::* LISTEN 80010/mysqld
2.编译安装Nginx
前提:关闭防火墙
2.1安装编译Nginx工具
[root@localhost ~]# yum -y install gcc gcc-c++ make zlib-devel pcre pcre-devel openssl-devel perl-devel perl-ExtUtils-Embed gd-devel

2.2官网下载Nginx安装包
Nginx官网:nginx


[root@youngfit ~]# wget https://nginx.org/download/nginx-1.28.1.tar.gz
2.3创建Nginx运行用户
[root@youngfit ~]# useradd -s /sbin/nologin -M nginx
-s 设置登录shell
-M 不创建家目录
2.4解压Nginx
[root@youngfit ~]# tar zxvf nginx-1.28.1.tar.gz -C /usr/local/
-解压到/usr/local/
2.5预编译Nginx(配置)
使用configure预编译,生成Makefile文件
[root@youngfit ~]# cd /usr/local/nginx-1.28.1/
[root@youngfit nginx-1.26.2]# ./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
参数详解
--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 # PID文件位置
1.用户配置

2.路径配置

3.日志配置

2.6编译
make作用于Makefile文件
[root@youngfit nginx]# make
编译后在解压后的目录的objs目录下生成可执行文件nginx
[root@youngfit nginx-1.28.1]# ls objs/
autoconf.err nginx ngx_auto_config.h ngx_modules.c src
Makefile nginx.8 ngx_auto_headers.h ngx_modules.o
2.7安装Nginx
[root@youngfit nginx]# make install
生成Nginx主目录
[root@youngfit nginx-1.28.1]# ls /usr/local/nginx
html run
2.8测试是否安装成功
[root@youngfit ~]# nginx -v
2.9启动Nginx
[root@youngfit ~]# nginx #启动
[root@youngfit ~]# nginx -s stop #关闭
[root@youngfit ~]# nginx -s reload #重新加载
[root@youngfit ~]# nginx -t #检测配置文件
2.10测试是否启动成功
[root@youngfit ~]# netstat -lntp | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 29740/nginx: master
2.11添加Nginx服务systemctl管理
[root@youngfit ~]# vim /usr/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

2.12以systemctl方式启动
[root@youngfit ~]# pkill nginx -杀死一组nginx进程
[root@youngfit ~]# systemctl daemon-reload
[root@youngfit ~]# systemctl enable --now nginx
2.13访问Nginx

3.编译安装PHP
3.0准备工作
3.0.1安装编译环境依赖包
[root@feig~]# yum -y install gcc gcc-c++ glibc automake autoconf libtool make

3.0.2创建安装目录
[root@feige ~]# mkdir -p /usr/local/php7
3.0.3安装编译 php 依赖库
[root@feige ~]# 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
3.0.4升级cmake(下载慢)
[root@feige ~]# yum remove cmake -y
[root@feige ~]# wget https://cmake.org/files/v3.6/cmake-3.6.0-Linux-x86_64.tar.gz #下载cmake安装包,解压后直接使用
[root@feige ~]# tar xzvf cmake-3.6.0-Linux-x86_64.tar.gz
[root@feige ~]# vim /etc/profile

[root@feige ~]# source /etc/profile #让环境变量生效
[root@feige ~]# cmake -version
cmake version 3.6.0
CMake suite maintained and supported by Kitware (kitware.com/cmake)
3.0.5下载 libzip(下载慢)
[root@feige ~]# wget https://libzip.org/download/libzip-1.5.2.tar.gz
[root@feige ~]# ll -h
-rw-r--r-- 1 root root 1.2M 1月 6 14:25 libzip-1.5.2.tar.gz
3.0.6安装 libzip
[root@feige ~]# tar -zxvf libzip-1.5.2.tar.gz
[root@feige ~]# cd libzip-1.5.2/
[root@feige libzip-1.5.2]# mkdir build
[root@feige libzip-1.5.2]# cd build
[root@feige build]# cmake ..
[root@feige build]# make install
3.1下载 PHP源码包(下载慢)
[root@feige ~]# wget https://www.php.net/distributions/php-7.3.6.tar.gz
[root@feige ~]# ll -h php-7.3.6.tar.gz
-rw-r--r-- 1 root root 19M 1月 6 14:30 php-7.3.6.tar.gz
3.2解压PHP
[root@feige ~]# tar xzvf php-7.3.6.tar.gz -C /usr/local/
-解压到/usr/local
3.3预编译(配置)
[root@feige 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 \
--with-zlib \
--enable-xml \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--enable-mbregex \
--enable-mbstring \
--enable-ftp \
--with-openssl \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--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
压缩
--enable-zip # 启用 zip压缩
--with-zlib # 启用对 zlib 支持 # xml
--enable-simplexml # 启用对 simplexml 支持
--with-libxml-dir # 启用对 libxml2 支持
--enable-debug # 开启 debug 模式

解决以上报错
[root@feige php-7.3.6 ]# vim /etc/ld.so.conf
# 添加如下几行
/usr/local/lib64
/usr/local/lib
/usr/lib
/usr/lib64
# 使配置生效
[root@feige php-7.3.6 ]# ldconfig -v
在重新执行./configure命令
3.4编译安装PHP
[root@feige php-7.3.6]# make -j 2 && make install
-j使用几个cpu
3.5创建 php.ini 配置文件(php.ini配置php解释器环境)

[root@feige php-7.3.6]# cp php.ini-production /usr/local/php7/etc/php.ini
[root@feige php-7.3.6]# vim /usr/local/php7/etc/php.ini #php的Session存储目录
移动到1371行
1371 session.save_path = "/tmp" #将注释打开
3.6设置php-fpm配置文件(php-fpm配置php服务环境)
[root@feige php-7.3.6]# cd /usr/local/php7/etc
[root@feige etc]# cp php-fpm.conf.default php-fpm.conf
[root@feige etc]# vim php-fpm.conf +17
pid = /var/run/php-fpm.pid #将注释取消并修改
# php-fpm连接文件
[root@feige etc]# cd /usr/local/php7/etc/php-fpm.d/
[root@feige php-fpm.d]# cp www.conf.default www.conf
查看以下内容是否正确
[root@feige php-fpm.d]# vim www.conf
user = nginx
group = nginx
listen = 127.0.0.1:9000
3.7启动php-fpm
[root@feige php-fpm.d]# /usr/local/php7/sbin/php-fpm
3.8检查 php-fpm 是否成功启动
[root@feige php-fpm.d]# ps aux | grep "php-fpm"
3.9配置php-fpm 系统环境变量
[root@feige ~]# vim /etc/profile

3.10重载环境变量
[root@feige ~]# source /etc/profile
[root@feige ~]# echo $PATH
3.11配置 php-fpm 开机自启动
[root@feige ~]# vim /usr/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
3.12其余操作
[root@feige ~]# systemctl daemon-reload
[root@feige ~]# pkill php-fpm
[root@feige ~]# systemctl start php-fpm
[root@feige ~]# systemctl enable php-fpm
3.13php-fpm 管理命令
[root@feige ~]# systemctl stop php-fpm # 停止服务
[root@feige ~]# systemctl restart php-fpm # 重新启动服务
[root@feige ~]# systemctl status php-fpm # 查看服务当前状态
[root@feige ~]# systemctl disable php-fpm # 开机关闭
4.Nginx配置支持PHP
4.1修改Nginx配置
[root@feige ~]# vim /etc/nginx/nginx.conf


[root@feige ~]# nginx -t
4.2添加php测试文件
[root@feige ~]# cd /usr/local/nginx/html/
[root@feige html]# vim index.php
<?php
phpinfo();
?>
4.3验证
[root@feige ~]# systemctl restart php-fpm.service
[root@feige ~]# ps -ef|grep php-fpm
root 24205 1 0 13:58 ? 00:00:00 php-fpm: master process (/usr/local/php7/etc/php-fpm.conf)
nginx 24206 24205 0 13:58 ? 00:00:00 php-fpm: pool www
nginx 24207 24205 0 13:58 ? 00:00:00 php-fpm: pool www
root 24209 24141 0 13:58 pts/0 00:00:00 grep --color=auto php-fpm
[root@feige ~]# systemctl reload nginx
[root@feige ~]# systemctl status nginx

LNMP环境编译完成
5.基于LNMP环境上线wordpress
5.0启动mysql,ngixn,php服务
[root@lnmp ~]# systemctl start mysqld.service nginx php-fpm
5.1准备wordpress资源
[root@feige ~]# tar xzvf wordpress-4.9.4-zh_CN.tar.gz
[root@feige ~]# rm -rf /usr/local/nginx/html/* -清空该目录
[root@feige ~]# cp -r wordpress/* /usr/local/nginx/html/ -将代码拷贝到网站发布目录中
[root@feige ~]# chmod -R 777 /usr/local/nginx/html/ -设置权限让nginx用户可以修改文件
5.2准备数据
[root@feige ~]# mysql -uroot -p'Cloud@2026'
mysql> create database wordpress;
quit退出
5.3测试访问


常见问题
如果不能创建wp-config.php请手动创建
[root@feige ~]# cd /usr/local/nginx/html/
[root@feige html]# vim wp-config.php ---将提示框中的信息粘贴进去
必做
由于我们用的php7.3的需要修改代码
[root@feige html]# vim /usr/local/nginx/html/wp-includes/pomo/plural-forms.php
移动到210行,将continue改为break。


