1. 需求与目标
1.1 目标与范围
在从零到上线的流程中,明确目标是第一要务。WordPress 部署在 LAMP 环境中要求你理解 Linux、Apache、MySQL 以及 PHP 的协作机制,确保站点在初期就具备可扩展性与安全基线。
本节聚焦于搭建一套可落地的 WordPress 站点:稳定性、可维护性、可扩展性为原则,避免盲目追求炫技而牺牲效率。
1.2 功能边界与非功能需求
功能边界包括主题、插件、站点语言、媒体容量等,务必与服务器容量相匹配。
非功能需求涵盖性能目标、可用性、备份策略、安保等级与合规性。与团队沟通,制定上线时的 SLA、恢复时间目标 RTO 与数据保留策略。
2. 环境准备与安装 LAMP
2.1 选择服务器与操作系统
选择稳定的发行版与硬件资源,是从零到上线的基础。推荐使用 Ubuntu 22.04 LTS/24.04 LTS,因为长期支持和丰富的软件包。
服务器的硬件要点包括:≥ 1GB RAM(小型站点而言,推荐 2GB+)、充足的磁盘 I/O,以及网络带宽。预留备用电源和快照能力以提高上线成功率。
2.2 安装 Apache、MySQL、PHP
初始化后,按顺序安装 LAMP 组件。Apache 作为 HTTP 服务器、MySQL/MariaDB 作为数据库、PHP 作为执行脚本语言。以下示例以 Ubuntu 为例:
sudo apt update
sudo apt install -y apache2 mysql-server php php-mysql libapache2-mod-php php-xml php-curl php-gd php-mbstring
sudo systemctl enable --now apache2
sudo systemctl enable --now mysql
为了简化后续配置,开启常用 Apache 模块:rewrite、ssl、headers。
sudo a2enmod rewrite
sudo a2enmod headers
sudo systemctl restart apache2
2.3 配置 PHP 与 Apache 集成
确保 PHP 与 Apache 的集成正常工作,修改 PHP 配置以提升兼容性与安全性,如禁用危险函数、调整时区。
sudo sed -i 's/display_errors = On/display_errors = Off/' /etc/php/*/apache2/php.ini
sudo sed -i 's/;date.timezone =/date.timezone = "Asia/Shanghai"/' /etc/php/*/apache2/php.ini
sudo systemctl restart apache2
验证 PHP 处理能力:创建 info.php,公开访问以确认信息。
3. WordPress 安装与配置
3.1 数据库创建与 wp-config.php
在 MySQL/MariaDB 中创建专用数据库和用户,是确保 WordPress 正常运行的关键步骤。使用独立数据库账号并赋予最小权限有助于降低潜在风险。
sudo mysql -u root -p
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY '强安装密码';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
获得数据库信息后,准备 wp-config.php。将数据库信息写入 wp-config.php,确保表前缀随机化以增强安全性。
3.2 下载 WordPress、设置文件权限
从 WordPress 官方源获取最新版本,解压并放置在 Web 根目录。统一权限为 www-data,以确保 Web 服务器能读写。
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz
sudo rsync -avP wordpress/ /var/www/html/wordpress/
sudo chown -R www-data:www-data /var/www/html/wordpress
sudo find /var/www/html/wordpress -type d -exec chmod 755 {} \;
sudo find /var/www/html/wordpress -type f -exec chmod 644 {} \;
在浏览器中首次访问,WordPress 安装向导会引导你完成站点信息设置。
3.3 配置 Apache 虚拟主机
为 WordPress 创建专属虚拟主机,避免与其他站点冲突。使用 ServerName、DocumentRoot、Directory 指令进行精确配置。
sudo nano /etc/apache2/sites-available/wordpress.conf
# 内容示例
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/html/wordpress
Options FollowSymLinks
AllowOverride All
Require all granted
</VirtualHost>
启用站点并重载 Apache:启用站点并禁用默认站点,确保域名解析指向服务器 IP。
sudo a2ensite wordpress
sudo a2dissite 000-default
sudo systemctl reload apache2
4. 安全性、性能与上线前检查
4.1 权限与 SELinux/AppArmor
合理的权限和安全策略是上线后的第一道防线。避免将整个 Web 目录设为 777,优先使用 755 对目录、644 对文件的权限策略。
若系统启用 SELinux 或 AppArmor,务必进行相应策略配置,确保 WordPress 能读写必要的目录。
4.2 启用 HTTPS 与 Let’s Encrypt
为确保数据传输安全,为站点启用 SSL/TLS,使用 Let’s Encrypt 免费证书,并在 Nginx/Apache 中正确配置重定向。
sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d example.com -d www.example.com
证书到期前自动续签是上线后稳定运行的关键。你应安排定期续签任务。
4.3 性能优化与缓存
合理的缓存策略可以显著提升 WordPress 的响应速度。启用页面缓存、数据库缓存、浏览器缓存,并适度开启 GZIP 压缩。
# 示例:启用 mod_expires 及 mod_headers
sudo a2enmod expires headers
sudo systemctl reload apache2
另外,常见的优化点包括:优化数据库表、使用对象缓存、开启静态资源版本化等。
4.4 上线前检查清单
在正式上线前,务必通过清单逐项核对。避免公开调试信息、关闭调试模式、检查站点性能。
常见检查项包括:域名解析、证书有效性、站点可用性、媒体资源加载、插件兼容性、备份计划。
5. 运维、监控与日志
5.1 备份策略
制定全面的备份策略,包括数据库与文件系统的备份。数据库每天备份、网站文件每周备份,并将备份保存在异地或云端。
# 简单示例:每日备份数据库
mysqldump -u wp_user -p'强安装密码' wordpress > /backups/wordpress_$(date +%F).sql
# 同步网站文件
rsync -avz /var/www/html/wordpress /mnt/backup/wordpress_$(date +%F)
5.2 监控与日志
上线后要持续监控站点健康状况。监控指标包括 CPU、内存、磁盘、请求错误率、数据库慢查询。
# 使用 top、htop、iostat 等工具
htop
iostat -xz 1
# 结合日志分析
tail -f /var/log/apache2/error.log
5.3 自动化部署与更新
实现版本控制和自动化部署,可以提高迭代效率并降低人为错误。使用 Git、CI/CD 流水线、WordPress 自动更新插件时要注意安全性与兼容性。
示例:通过 Git 将自定义主题和插件纳入版本控制,搭配 SSH 部署到服务器。
# 演示:从远端仓库拉取并部署主题
git clone git@github.com:yourorg/wordpress-theme.git /var/www/html/wordpress/wp-content/themes/your-theme


