欢迎来到我的教程充电站,学不会算我的,学会了算你的~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CentOS 8.2 搭建WordPress完整教程(PHP 8.3 + 域名iqor.xin + SSL)
前置说明:
-
系统:阿里云CentOS 8.2
-
域名:iqor.xin
-
SSL证书路径:/opt/iqor.xin.pem、/opt/iqor.xin.key
-
统一密码:1Asdfghjkl0.
-
PHP版本:8.3(全兼容WordPress最新版本)
-
核心修复:数据库语法错误、Nginx配置冲突、413上传限制、响应慢优化
第一步:环境初始化与依赖安装
1. 备份现有yum仓库配置
说明:避免原有仓库配置干扰,先备份再替换
cd /etc/yum.repos.d/
mkdir -p backup
mv *.repo backup/
2. 配置阿里云CentOS-Vault仓库
说明:适配CentOS 8.2的官方归档仓库,保证依赖下载正常
cat > /etc/yum.repos.d/CentOS-Vault.repo << 'EOF'
[baseos-vault]
name=CentOS-8 - Base (Vault)
baseurl=https://mirrors.aliyun.com/centos-vault/8.2.2004/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
[appstream-vault]
name=CentOS-8 - AppStream (Vault)
baseurl=https://mirrors.aliyun.com/centos-vault/8.2.2004/AppStream/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
[extras-vault]
name=CentOS-8 - Extras (Vault)
baseurl=https://mirrors.aliyun.com/centos-vault/8.2.2004/extras/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
EOF
3. 安装EPEL仓库
dnf install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
4. 安装Remi仓库
说明:提供PHP 8.3的安装源,添加--nodeps避免依赖冲突
wget https://rpms.remirepo.net/enterprise/remi-release-8.rpm
rpm -ivh --nodeps remi-release-8.rpm
5. 清理并重建yum缓存
dnf clean all
dnf makecache
dnf distro-sync -y
6. 启用PHP 8.3模块流
dnf module enable -y php:remi-8.3
7. 安装PHP 8.3及扩展
说明:包含WordPress运行所需的全部核心扩展
dnf install -y php php-fpm php-mysqlnd php-gd php-xml php-mbstring php-json php-opcache php-redis php-zip php-curl
8. 安装Nginx和MariaDB
dnf install -y nginx mariadb-server mariadb
9. 验证PHP版本
说明:输出8.3.x即为启用成功
php -v
10. 启动服务并设置开机自启
systemctl start php-fpm && systemctl enable php-fpm
systemctl start nginx && systemctl enable nginx
systemctl start mariadb && systemctl enable mariadb
11. 关闭SELinux
说明:临时关闭+永久关闭,避免权限拦截WordPress运行
setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
12. 开放防火墙端口
说明:开放80(HTTP)和443(HTTPS)端口
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --reload
第二步:数据库配置(修复EXIT语法错误)
1. 初始化MariaDB并设置密码
说明:自动执行初始化,替换为统一密码1Asdfghjkl0.
mysql_secure_installation <<EOF
y
1Asdfghjkl0.
1Asdfghjkl0.
y
y
y
y
EOF
2. 创建WordPress数据库和用户
说明:移除错误EXIT语句,创建utf8mb4编码的数据库(兼容emoji)
mysql -uroot -p1Asdfghjkl0. <<EOF
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY '1Asdfghjkl0.';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EOF
3. 验证数据库创建结果
mysql -uroot -p1Asdfghjkl0. -e "SHOW DATABASES LIKE 'wordpress';"
mysql -uroot -p1Asdfghjkl0. -e "SELECT user, host FROM mysql.user WHERE user='wpuser';"
第三步:PHP-FPM配置优化(适配PHP 8.3)
1. 修改PHP-FPM运行用户为nginx
说明:统一运行用户,避免权限不匹配问题
sed -i 's/user = apache/user = nginx/g' /etc/php-fpm.d/www.conf
sed -i 's/group = apache/group = nginx/g' /etc/php-fpm.d/www.conf
sed -i 's/listen.owner = apache/listen.owner = nginx/g' /etc/php-fpm.d/www.conf
sed -i 's/listen.group = apache/listen.group = nginx/g' /etc/php-fpm.d/www.conf
2. 优化PHP-FPM进程管理
说明:改为ondemand模式,减少资源占用,提升响应速度
sed -i 's/pm = dynamic/pm = ondemand/' /etc/php-fpm.d/www.conf
sed -i 's/pm.max_children = 50/pm.max_children = 30/' /etc/php-fpm.d/www.conf
sed -i 's/pm.start_servers = 5/pm.max_spare_servers = 10/' /etc/php-fpm.d/www.conf
sed -i 's/pm.min_spare_servers = 5/pm.process_idle_timeout = 10s;/' /etc/php-fpm.d/www.conf
3. 修改PHP 8.3上传限制
说明:解决413请求实体过大错误,同时优化OPcache(适配PHP 8.3 JIT)
cp /etc/php.ini /etc/php.ini.bak
cat > /etc/php.ini << 'EOF'
; ====== 基础配置 ======
short_open_tag = On
expose_php = Off
max_execution_time = 300
max_input_time = 300
memory_limit = 128M
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
display_errors = Off
display_startup_errors = Off
log_errors = On
error_log = /var/log/php-fpm/php_errors.log
date.timezone = Asia/Shanghai
; ====== 文件上传配置(解决413错误) ======
file_uploads = On
upload_max_filesize = 64M
post_max_size = 65M
max_file_uploads = 20
; ====== OPcache优化(适配PHP 8.3,参数微调更适配8.3) ======
[opcache]
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=20000 # PHP8.3支持更大缓存数
opcache.max_wasted_percentage=5
opcache.use_cwd=1
opcache.validate_timestamps=1
opcache.revalidate_freq=2
opcache.save_comments=1
opcache.jit=1255 # PHP8.3新增JIT编译,提升性能
opcache.jit_buffer_size=64M
EOF
4. 重启PHP-FPM使配置生效
systemctl restart php-fpm
第四步:下载并配置WordPress
1. 创建网站根目录
说明:设置专属目录并赋予nginx权限
mkdir -p /var/www/iqor.xin
chown -R nginx:nginx /var/www/iqor.xin
2. 下载并解压WordPress
cd /var/www/iqor.xin
wget https://cn.wordpress.org/wordpress-6.4.3-zh_CN.tar.gz
tar -zxvf wordpress-6.4.3-zh_CN.tar.gz --strip-components=1
rm -f wordpress-6.4.3-zh_CN.tar.gz
3. 设置文件权限
说明:确保nginx可读写,避免安装/运行时权限错误
chown -R nginx:nginx /var/www/iqor.xin
chmod -R 777 /var/www/iqor.xin
4. 生成WordPress配置文件
说明:替换数据库名、用户名、密码为已配置的值
cp /var/www/iqor.xin/wp-config-sample.php /var/www/iqor.xin/wp-config.php
sed -i "s/database_name_here/wordpress/g" /var/www/iqor.xin/wp-config.php
sed -i "s/username_here/wpuser/g" /var/www/iqor.xin/wp-config.php
sed -i "s/password_here/1Asdfghjkl0./g" /var/www/iqor.xin/wp-config.php
5. 添加WordPress安全密钥
说明:删除默认密钥,添加自定义密钥(需替换为实际随机字符串)
sed -i '/AUTH_KEY/d' /var/www/iqor.xin/wp-config.php
sed -i '/SECURE_AUTH_KEY/d' /var/www/iqor.xin/wp-config.php
sed -i '/LOGGED_IN_KEY/d' /var/www/iqor.xin/wp-config.php
sed -i '/NONCE_KEY/d' /var/www/iqor.xin/wp-config.php
sed -i '/AUTH_SALT/d' /var/www/iqor.xin/wp-config.php
sed -i '/SECURE_AUTH_SALT/d' /var/www/iqor.xin/wp-config.php
sed -i '/LOGGED_IN_SALT/d' /var/www/iqor.xin/wp-config.php
sed -i '/NONCE_SALT/d' /var/www/iqor.xin/wp-config.php
cat >> /var/www/iqor.xin/wp-config.php << 'EOF'
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');
EOF
第五步:Nginx配置(修复配置冲突+性能优化)
1. 覆盖Nginx主配置
说明:优化性能参数,解决默认配置结构冲突问题
cat > /etc/nginx/nginx.conf << 'EOF'
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# ====== 性能优化配置 ======
worker_rlimit_nofile 65535;
events {
worker_connections 10240;
multi_accept on;
use epoll;
}
http {
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 /var/log/nginx/access.log main;
# 缓存优化
open_file_cache max=10000 inactive=60s;
open_file_cache_valid 60s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
# 压缩优化(减少传输体积)
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
# 连接优化
keepalive_timeout 65;
keepalive_requests 1000;
tcp_nodelay on;
tcp_nopush on;
include /etc/nginx/mime.types;
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;
}
EOF
2. 创建站点配置
说明:包含SSL配置、413错误修复、静态缓存、PHP 8.3解析适配
cat > /etc/nginx/conf.d/iqor.xin.conf << 'EOF'
server {
listen 80;
server_name iqor.xin www.iqor.xin;
# 强制跳转到HTTPS
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name iqor.xin www.iqor.xin;
# 解决413上传错误
client_max_body_size 64M;
# SSL证书配置
ssl_certificate /opt/iqor.xin.pem;
ssl_certificate_key /opt/iqor.xin.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384;
ssl_session_timeout 10m;
ssl_session_cache shared:SSL:10m;
# 网站根目录
root /var/www/iqor.xin;
index index.php index.html index.htm;
# 禁止访问隐藏文件
location ~ /\. {
deny all;
}
# WordPress固定链接支持
location / {
try_files $uri $uri/ /index.php?$args;
}
# PHP解析配置(适配PHP 8.3)
location ~ \.php$ {
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
}
# 静态文件缓存(提升响应速度)
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 7d;
add_header Cache-Control "public, immutable";
}
# 日志配置
access_log /var/log/nginx/iqor.xin_access.log;
error_log /var/log/nginx/iqor.xin_error.log;
}
EOF
3. 检查配置并重启Nginx
说明:先验证语法正确性,再重启生效
nginx -t && systemctl restart nginx
第六步:域名解析与最终验证
1. 域名解析配置(阿里云控制台)
说明:登录阿里云域名控制台操作,等待5-10分钟生效
-
找到
iqor.xin→ 解析管理; -
添加A记录:
-
主机记录:
@→ 记录值:服务器公网IP; -
主机记录:
www→ 记录值:服务器公网IP;
-
2. 验证部署结果
# 检查服务状态
echo "=== 服务状态检查 ==="
systemctl status nginx --no-pager
systemctl status php-fpm --no-pager
systemctl status mariadb --no-pager
# 验证PHP上传配置
echo -e "\n=== PHP上传配置检查 ==="
php -i | grep -E "upload_max_filesize|post_max_size"
# 验证PHP 8.3 OPcache配置
echo -e "\n=== PHP 8.3 OPcache检查 ==="
php -i | grep -E "opcache.enable|opcache.jit"
# 验证Nginx压缩
echo -e "\n=== Nginx压缩检查 ==="
curl -k -I -H "Accept-Encoding: gzip" https://localhost | grep "Content-Encoding"
3. 访问站点
说明:浏览器访问https://iqor.xin,按向导完成WordPress安装(数据库信息已预配置)
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://iqor.xin/2026/01/12/hello-world/
共有 0 条评论