下面以 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 规则,而不是简单关闭。
八、后续建议
- 启用 HTTPS:使用 Let’s Encrypt(certbot)配置 SSL。
- 定期备份:数据库 + 文件目录。
- 安全加固:限制登录尝试、使用安全插件、及时更新 WP/主题/插件。
- 性能优化:缓存插件、对象缓存(Redis/Memcached)、CDN 等。
如果你希望我提供:
- 一键脚本版安装步骤,或
- 使用 Docker 部署 WordPress + Apache + MySQL 的方案,
可以告诉我你的具体需求(是否要公网访问、是否需要 HTTPS、是否允许使用容器等)。
CLOUD技术笔记