在CentOS 8.2中如何为WordPress配置Apache和MySQL?

下面以 CentOS 8.2 为例,给出一个从零开始为 WordPress 配置 Apache + MySQL(MariaDB)的完整流程。假设你使用的是默认安装的 CentOS 8.2,并已拥有 root 或 sudo 权限。

说明:

  • CentOS 8 已停止官方支持,生产环境建议升级到 Rocky Linux / AlmaLinux 或使用其他长期支持版本。
  • 以下命令基于 dnf 包管理器,适用于 CentOS 8。

一、安装 Apache、MariaDB 和 PHP

1. 更新系统并安装必要工具

sudo dnf update -y
sudo dnf install -y epel-release
sudo dnf install -y vim wget curl git

2. 安装 Apache、MariaDB 和 PHP 相关模块

# 安装 Apache
sudo dnf install -y httpd

# 安装 MariaDB(CentOS 8 默认使用 MariaDB)
sudo dnf install -y mariadb-server mariadb

# 安装 PHP 及常用扩展(Apache + PHP-FPM 两种模式均可,这里用 mod_php)
sudo dnf install -y php php-mysqlnd php-gd php-xml php-mbstring 
    php-curl php-json php-intl php-opcache php-zip

3. 启动并设置开机自启

sudo systemctl enable --now httpd
sudo systemctl enable --now mariadb

检查状态:

systemctl status httpd
systemctl status mariadb

二、配置 MariaDB(数据库与用户)

1. 初始化安全设置

sudo mysql_secure_installation

按提示操作:

  • 设置 root 密码(强烈建议设置)
  • 删除匿名用户
  • 禁止 root 远程登录
  • 删除测试数据库
  • 重新加载权限表

2. 创建 WordPress 数据库和用户

进入 MySQL 命令行:

mysql -u root -p

在 MySQL 中执行(将 your_password 替换为你自己的强密码):

CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'your_password';

GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost';

FLUSH PRIVILEGES;

EXIT;

三、下载并部署 WordPress

1. 创建网站目录

sudo mkdir -p /var/www/html/wordpress
sudo chown -R apache:apache /var/www/html/wordpress
sudo chmod -R 755 /var/www/html/wordpress

2. 下载 WordPress

cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz
cp -r wordpress/* /var/www/html/wordpress/
rm -rf wordpress latest.tar.gz

3. 设置权限(可选但推荐)

sudo chown -R apache:apache /var/www/html/wordpress
sudo find /var/www/html/wordpress -type f -exec chmod 644 {} ;
sudo find /var/www/html/wordpress -type d -exec chmod 755 {} ;

WordPress 需要写入权限的目录(如 wp-content/uploads):

sudo chown -R apache:apache /var/www/html/wordpress/wp-content
sudo chmod -R 775 /var/www/html/wordpress/wp-content

四、配置 Apache 虚拟主机

1. 创建虚拟主机配置文件

sudo vi /etc/httpd/conf.d/wordpress.conf

内容示例(根据你的域名修改):

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/html/wordpress

    <Directory /var/www/html/wordpress>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog logs/example.com-error_log
    CustomLog logs/example.com-access_log common
</VirtualHost>

保存退出后,确保 /var/log/httpd/ 有写权限:

sudo touch /var/log/httpd/example.com-error_log
sudo touch /var/log/httpd/example.com-access_log
sudo chown apache:apache /var/log/httpd/example.com-*.log

2. 启用 rewrite 模块(WordPress 需要)

sudo a2enmod rewrite   # CentOS 8 没有 a2enmod,直接用 httpd 自带模块
# 实际上只需确保 httpd.conf 中 LoadModule rewrite_module 被启用
# 默认已启用,可检查:
grep "^LoadModule.*rewrite" /etc/httpd/conf/httpd.conf

如果未启用,编辑 /etc/httpd/conf/httpd.conf,取消该行注释:

LoadModule rewrite_module modules/mod_rewrite.so

3. 重启 Apache

sudo systemctl restart httpd

五、配置 PHP 时区等(可选但推荐)

编辑 /etc/php.ini

sudo vi /etc/php.ini

找到并修改:

date.timezone = Asia/Shanghai

保存后重启 Apache:

sudo systemctl restart httpd

六、访问 WordPress 安装页面

在浏览器中访问:

http://你的服务器IP 或 http://example.com

根据提示进行安装:

  • 语言选择
  • 数据库名:wordpress
  • 用户名:wordpress
  • 密码:前面设置的 your_password
  • 主机:localhost
  • 表前缀:默认 wp_ 即可
  • 站点标题、管理员账号等

安装完成后,即可正常登录后台。


七、防火墙配置(SELinux 视情况调整)

1. 开放 HTTP/HTTPS 端口

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

2. SELinux(CentOS 默认开启)

如果遇到问题(如无法访问、上传失败),可以临时关闭测试:

sudo setenforce 0

若确认是 SELinux 问题,更推荐配置策略而不是直接关闭。例如:

sudo setsebool -P httpd_can_network_connect 1
sudo setsebool -P httpd_unified 1

如需长期稳定,建议学习 SELinux 规则,而不是简单关闭。


八、后续建议

  1. 启用 HTTPS:使用 Let’s Encrypt(certbot)配置 SSL。
  2. 定期备份:数据库 + 文件目录。
  3. 安全加固:限制登录尝试、使用安全插件、及时更新 WP/主题/插件。
  4. 性能优化:缓存插件、对象缓存(Redis/Memcached)、CDN 等。

如果你希望我提供:

  • 一键脚本版安装步骤,或
  • 使用 Docker 部署 WordPress + Apache + MySQL 的方案,

可以告诉我你的具体需求(是否要公网访问、是否需要 HTTPS、是否允许使用容器等)。

云服务器