一、基本环境初始化

1.1 防火墙与SELinux检查

查看当前监听端口
ss -tulanp

查看SELinux状态(应为disabled)
sestatus

查看firewalld状态(应为inactive)
systemctl status firewalld

查看iptables规则(默认策略应为ACCEPT)
iptables -vnL

1.2 创建LNMP源码目录

mkdir -pv /usr/local/src/lnmp
cd /usr/local/src/lnmp

将源码包上传至 /usr/local/src/lnmp 目录,并确认文件完整性

1.3 下载与版本选择

官方网址:http://nginx.org

Mainline version:开发版,不建议生产使用
Stable version:最新稳定版,推荐生产环境
Legacy versions:历史稳定版

二、 编译安装 Nginx

2.1 配置阿里云 Base 和 EPEL 源

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo

2.2 安装编译工具及依赖

yum -y install gcc gcc-c++ pcre-devel zlib-devel openssl-devel perl-devel

2.3 创建 Nginx 用户

useradd -M -s /sbin/nologin nginx
id nginx

2.4 预编译

cd /usr/local/src/lnmp
tar xf nginx-1.16.1.tar.gz
cd nginx-1.16.1
./configure --prefix=/usr/local/nginx \
  --user=nginx \
  --group=nginx \
  --with-http_stub_status_module \
  --with-http_ssl_module \
  --with-stream;echo $?

2.5 编译安装

make -j $(nproc) && make install;echo $?

2.6 启动、停止、重载 Nginx 服务

路径优化(软链接)

ln -sv /usr/local/nginx/sbin/nginx /usr/local/sbin/

配置文件语法检查

nginx -t

修改 worker 进程数(建议等于 CPU 核心数)

vim /usr/local/nginx/conf/nginx.conf
user  nginx;
worker_processes  auto;

启动服务并查看进程

nginx -t
nginx
ss -tulanp | grep nginx

或安装 net-tools 后使用

yum -y install net-tools
netstat -tulanp | grep nginx

 重载配置文件

nginx -s reload

systemd 服务脚本(CentOS 7.9)

cat > /usr/lib/systemd/system/nginx.service << 'EOF'
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF

2.7 备份配置文件

cp -av /usr/local/nginx/conf/nginx.conf /opt/nginx.conf.ori.hanyj.20260610

2.7.1 基于域名的虚拟主机(生产级配置)

 主配置文件 /usr/local/nginx/conf/nginx.conf(仅保留全局 + http 层)

user nginx;
worker_processes auto;

events {
    worker_connections 1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  logs/access.log  main;
    sendfile        on;
    keepalive_timeout  65;

    # 引入所有虚拟主机配置
    include /usr/local/nginx/vhosts/*.conf;

    # 默认 server 块(可选)
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.php index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

修改配置后务必执行 nginx -t 测试语法

2.7.2 虚拟主机配置示例

cd /usr/local/nginx/vhosts/
vim www.hanyj.com.conf
server {
    listen 80;
    server_name www.hanyj.com hanyj.com;
    access_log /usr/local/nginx/logs/www.hanyj.com_access.log main;
    error_log  /usr/local/nginx/logs/www.hanyj.com_error.log warn;
    root /data/www/hanyj;
    index index.php index.htm;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}
vim img.hanyj.com.conf
server {
    listen 80;
    server_name img.hanyj.com;
    access_log off;
    error_log /usr/local/nginx/logs/img.hanyj.com_error.log warn;
    root /data/www/img;
    index index.html;
    location / {
        try_files $uri $uri/ =404;
    }
    # 静态资源缓存
    location ~* \.(jpg|jpeg|png|gif|ico|svg|webp)$ {
        expires 30d;
        add_header Cache-Control "public, immutable";
        access_log off;
    }
}

2.7.3 创建站点目录与测试文件

mkdir -pv /data/www/{hanyj,img}
chown -R nginx:nginx /usr/local/nginx /data/www

 2.7.4 检查配置并重载

nginx -t
nginx -s reload

 2.7.5 本地 hosts 测试

echo "192.168.30.66 www.hanyj.com img.hanyj.com" >> /etc/hosts
ping www.hanyj.com
ping img.hanyj.com

2.7.6 浏览器访问验证

http://www.hanyj.com

http://img.hanyj.com

三、编译安装 MySQL

cd /usr/local/src/lnmp/
tar xf mysql-5.7.32-el7-x86_64.tar.gz
mv mysql-5.7.32-el7-x86_64 /usr/local/mysql
mkdir -pv /data
useradd -M -s /sbin/nologin mysql
chown -R mysql:mysql /data

配置文件 /etc/my.cnf

# 备份
cp -av /etc/my.cnf /opt/my.cnf_20260610.bak

vim /etc/my.cnf
[client]
socket = /tmp/mysql.sock

[mysql]
socket = /tmp/mysql.sock
default-character-set=utf8

[mysqld]
skip-name-resolve
port = 3306
basedir = /usr/local/mysql
datadir = /data/mysql
max_connections = 200
character-set-server = utf8
default-storage-engine = INNODB
lower_case_table_names = 1
max_allowed_packet = 16M

 初始化数据库

cd /usr/local/mysql/bin
./mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
./mysql_ssl_rsa_setup --datadir=/data/mysql

启动服务

cp -av /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

编辑 /etc/init.d/mysqld,修改 basedir 和 datadir

chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
service mysqld start

设置 root 密码

./mysqladmin -uroot password "123456"

创建 WordPress 数据库

./mysql -uroot -p123456
create database wordpress;
grant all on *.* to "root"@"127.0.0.1" identified by '123456';
quit;
service mysqld restart

 四、编译安装 PHP

4.1 安装 PHP 编译依赖

yum -y install \
epel-release make automake autoconf libtool \
libxml2-devel libjpeg-devel libpng-devel freetype-devel \
bzip2-devel curl-devel libxslt-devel \
sqlite-devel oniguruma-devel libzip-devel yum-utils
yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum-config-manager --enable remi
yum -y install libzip5-devel

4.2 预编译配置

cd /usr/local/src/lnmp
tar xf php-7.3.9.tar.gz 
cd php-7.3.9
./configure --prefix=/usr/local/php \
    --with-config-file-path=/usr/local/php/etc \
    --with-fpm-user=nginx \
    --with-fpm-group=nginx \
    --enable-fpm \
    --enable-mbstring \
    --enable-zip \
    --enable-bcmath \
    --enable-pcntl \
    --enable-mysqlnd \
    --with-mysqli=mysqlnd \
    --with-pdo-mysql=mysqlnd \
    --with-openssl \
    --with-curl \
    --with-gd \
    --with-jpeg \
    --with-freetype \
    --enable-gd-native-ttf \
    --with-zlib \
    --with-xsl;echo $?

4.3 编译安装

make -j $(nproc) && make install;echo $?

4.4 配置文件

复制 php.ini

cp php.ini-production /usr/local/php/etc/php.ini

复制 php-fpm 配置文件

cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

编辑 www.conf 确保用户和组为 nginx:

sed -i 's/^user = nobody/user = nginx/' /usr/local/php/etc/php-fpm.d/www.conf
sed -i 's/^group = nobody/group = nginx/' /usr/local/php/etc/php-fpm.d/www.conf

4.5 启动 php-fpm

/usr/local/php/sbin/php-fpm

查看进程

ps aux | grep php-fpm

 2.7.7 添加 systemd 管理(可选)

cat > /usr/lib/systemd/system/php-fpm.service << 'EOF'
[Unit]
Description=PHP FastCGI Process Manager
After=network.target

[Service]
Type=forking
PIDFile=/usr/local/php/var/run/php-fpm.pid
ExecStart=/usr/local/php/sbin/php-fpm
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable php-fpm

 2.7.8 验证 PHP 解析在 Nginx 虚拟主机配置中添加 PHP 支持(例如 www.hanyj.com.conf):

server {
    listen 80;
    server_name www.hanyj.com hanyj.com;
    access_log /usr/local/nginx/logs/www.hanyj.com_access.log main;
    error_log  /usr/local/nginx/logs/www.hanyj.com_error.log warn;
    root /data/www/hanyj;
    index index.php index.htm;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

重载 Nginx

nginx -t && nginx -s reload

五、安装 WordPress

5.1 下载并解压 WordPress

cd /usr/local/src/lnmp/
unzip wordpress-5.6-zh_CN.zip 
mv ./wordpress/* /data/www/hanyj/
chown -R nginx:nginx /data/www/hanyj

5.2 创建 WordPress 数据库(若未创建)

mysql -uroot -p'123456' -e "show databases;"
CREATE DATABASE wordpress;
GRANT ALL ON wordpress.* TO 'wordpress'@'localhost' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;

5.3 配置 WordPress

浏览器访问 http://www.hanyj.com,按安装向导填写数据库信息:
数据库名:wordpress
用户名:wordpress
密码:1
数据库主机:localhost
表前缀:wp_

完成后设置站点标题、管理员用户

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐