Nginx网站服务-LNMP(CentOS7.9测试环境)
一、基本环境初始化
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_
完成后设置站点标题、管理员用户

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



所有评论(0)