在不使用宝塔面板(aaPanel)等图形化管理工具的情况下,手动配置 Nginx + PHP-FPM + MySQL 运行 WordPress 是完全可行的,这也是 Linux 运维中非常标准且高效的部署方式。
以下是基于 Ubuntu/Debian 系统的完整手动部署步骤。如果你使用的是 CentOS/RHEL,软件包名称略有不同(如 php-fpm 改为 php-fpm,安装命令为 yum),但核心逻辑一致。
第一步:安装基础环境
首先更新系统并安装 Nginx、MySQL (MariaDB)、PHP 及其常用扩展。
# 更新软件源
sudo apt update && sudo apt upgrade -y
# 安装 Nginx
sudo apt install nginx -y
# 安装 MariaDB (MySQL 的开源分支,推荐)
sudo apt install mariadb-server mariadb-client -y
# 安装 PHP 及常用扩展 (WordPress 需要 gd, mbstring, xml, curl, zip 等)
sudo apt install php-fpm php-mysql php-gd php-mbstring php-xml php-curl php-zip php-intl php-bcmath -y
# 启动服务并设置开机自启
sudo systemctl enable --now nginx
sudo systemctl enable --now mariadb
sudo systemctl enable --now php8.1-fpm # 注意:根据实际安装的 PHP 版本调整,如 php7.4-fpm 或 php8.2-fpm
注意:请确认你安装的 PHP 版本名称。可以使用
dpkg -l | grep php-fpm查看具体版本号。
第二步:配置数据库
登录 MySQL 并创建 WordPress 专用的数据库和用户。
sudo mysql_secure_installation
# 按提示设置 root 密码,并选择 Y 删除匿名用户、禁止远程 root 登录等
# 进入 MySQL 命令行
sudo mysql -u root -p
在 MySQL 提示符下执行以下 SQL 语句(请将 your_password 替换为你自己的强密码):
-- 创建数据库
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 创建用户并授权
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
第三步:下载并解压 WordPress
# 切换到 Web 目录 (假设网站根目录为 /var/www/html)
cd /var/www/html
# 下载最新版 WordPress (去掉 .tar.gz 后缀以获取最新稳定版)
sudo wget https://wordpress.org/latest.tar.gz
# 解压
sudo tar -xzf latest.tar.gz
# 将文件移动到正确目录并设置权限
sudo mv wordpress/* .
sudo mv wordpress/.htaccess .
sudo rmdir wordpress
# 设置所有者为 www-data (Nginx 默认运行用户)
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
第四步:生成 wp-config.php
WordPress 需要配置文件来连接数据库。我们可以先复制示例文件,然后修改。
# 复制配置文件模板
sudo cp wp-config-sample.php wp-config.php
# 编辑配置文件
sudo nano /var/www/html/wp-config.php
找到并修改以下内容:
// 数据库名称
define( 'DB_NAME', 'wordpress' );
// 数据库用户名
define( 'DB_USER', 'wp_user' );
// 数据库密码
define( 'DB_PASSWORD', 'your_password' );
// 数据库主机 (通常不需要改,保持 localhost 即可)
define( 'DB_HOST', 'localhost' );
保存退出 (Ctrl+O, Enter, Ctrl+X)。
第五步:配置 Nginx 站点
这是最关键的一步。我们需要创建一个 Nginx 配置文件来处理 PHP 请求。
sudo nano /etc/nginx/sites-available/wordpress
粘贴以下配置内容(请根据你的域名修改 server_name):
server {
listen 80;
server_name your_domain.com www.your_domain.com; # 替换为你的域名或服务器 IP
root /var/www/html;
index index.php index.html index.htm;
# 防止直接访问 wp-config.php
location ~* .(git|svn|env|log|sql)$ {
deny all;
}
# 处理 WordPress 伪静态规则
location / {
try_files $uri $uri/ /index.php?$args;
}
# 处理 PHP 脚本
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock; # 注意:端口需与你安装的 PHP 版本匹配
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
# 安全限制
fastcgi_hide_header X-Powered-By;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
}
# 优化静态资源缓存
location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
# 日志记录
access_log /var/log/nginx/wordpress_access.log;
error_log /var/log/nginx/wordpress_error.log;
}
重要检查点:
- PHP 版本路径:确保
fastcgi_pass中的路径与你的 PHP 版本一致。- 如果是 PHP 8.1:
/run/php/php8.1-fpm.sock - 如果是 PHP 8.2:
/run/php/php8.2-fpm.sock - 如果不确定,可以查看
/etc/php/8.x/fpm/pool.d/www.conf中的listen = ...行。
- 如果是 PHP 8.1:
- 启用站点:
sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/ - 测试配置并重启 Nginx:
sudo nginx -t sudo systemctl reload nginx
第六步:完善安全与性能配置
1. 设置文件权限
确保 Nginx 用户有权限写入上传目录(如 wp-content/uploads)。
sudo chown -R www-data:www-data /var/www/html/wp-content/uploads
sudo chmod -R 755 /var/www/html/wp-content/uploads
2. 配置防火墙 (UFW)
如果你开启了防火墙,允许 HTTP (80) 和 HTTPS (443)。
sudo ufw allow 'Nginx Full'
# 或者只允许 80 和 443
# sudo ufw allow 80/tcp
# sudo ufw allow 443/tcp
sudo ufw enable
3. 配置 SSL (Let’s Encrypt)
生产环境强烈建议开启 HTTPS。这里推荐使用 Certbot。
# 安装 certbot 和 nginx 插件
sudo apt install certbot python3-certbot-nginx -y
# 申请证书 (将 domain 替换为你的域名)
sudo certbot --nginx -d your_domain.com -d www.your_domain.com
Certbot 会自动修改 Nginx 配置并重定向 HTTP 到 HTTPS。
第七步:完成安装
现在打开浏览器,访问你的域名(例如 http://your_domain.com)。
- 你会看到 WordPress 的安装向导界面。
- 按照提示填写网站标题、管理员账号、密码和邮箱。
- 点击“安装 WordPress”。
安装完成后,你可以登录后台进行主题和插件的定制。
常见问题排查
- 502 Bad Gateway: 通常是 PHP-FPM 没启动,或者 Nginx 配置的
fastcgi_pass路径不对。检查systemctl status php*-fpm和 Nginx 错误日志/var/log/nginx/error.log。 - 无法上传图片: 检查
wp-content/uploads文件夹的权限,确保www-data拥有写权限。 - 页面显示中文乱码: 确保数据库字符集是
utf8mb4,且 Nginx 和 PHP 配置中未强制覆盖编码。 - 无法连接数据库: 检查
wp-config.php中的密码是否正确,以及 MySQL 是否正在运行。
通过以上步骤,你就成功构建了一个高性能、轻量级的 Nginx + PHP + MySQL WordPress 环境,完全脱离了宝塔面板的依赖。
PHPWP博客