CentOS 8.2 搭建WordPress完整教程

iqor 2026-1-12 95 1/12

欢迎来到我的教程充电站,学不会算我的,学会了算你的~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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安装(数据库信息已预配置)

- THE END -

iqor

1月12日21:06

最后修改:2026年1月12日
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论