温馨提示×

如何在Ubuntu上部署WordPress

小樊
40
2025-12-24 21:48:20
栏目: 智能运维

在 Ubuntu 上部署 WordPress 的标准流程

本指南提供在 Ubuntu 22.04/24.04 上使用 LAMP(Apache + MySQL + PHP) 部署 WordPress 的完整步骤,包含防火墙放行、目录权限、数据库创建与安装向导。若你偏好 Nginx + PHP‑FPM,文末也给出可选方案与关键配置片段。


一 准备与系统更新

  • 更新系统并安装常用工具
    • 执行:sudo apt update && sudo apt upgrade -y
  • 放行 HTTP/HTTPS 访问
    • UFW:sudo ufw allow 'Apache Full' && sudo ufw enable
    • 云厂商安全组/防火墙:放行 TCP 80/443(示例:Oracle Cloud 在默认安全列表添加入站规则,源 0.0.0.0/0,端口 80

二 安装与配置 LAMP 组件

  • 安装 Apache
    • 执行:sudo apt install apache2 -y
    • 启动并开机自启:sudo systemctl start apache2 && sudo systemctl enable apache2
    • 验证:浏览器访问 http://<服务器IP>/ 出现 Apache 欢迎页
  • 安装 MySQL
    • 执行:sudo apt install mysql-server -y
    • 启动并开机自启:sudo systemctl start mysql && sudo systemctl enable mysql
    • 安全初始化:sudo mysql_secure_installation(设置 root 密码、移除匿名用户、禁止远程 root 登录等)
  • 安装 PHP 与常用扩展
    • 执行:sudo apt install php libapache2-mod-php php-mysql php-curl php-gd php-xml php-mbstring php-xmlrpc php-zip php-soap php-intl -y
    • 调整默认首页优先级(index.php 优先):编辑 /etc/apache2/mods-enabled/dir.conf,将 index.php 移到最前,保存后重启 Apache:sudo systemctl restart apache2
  • 可选 升级到 PHP 8.3(Ubuntu 20.04/更高版本)
    • 执行:sudo apt install software-properties-common -y && sudo add-apt-repository ppa:ondrej/php -y && sudo apt update
    • 安装:sudo apt install php8.3 php8.3-fpm php8.3-mysql php8.3-xml php8.3-curl php8.3-mbstring php8.3-zip php8.3-gd -y
    • 启动:sudo systemctl start php8.3-fpm && sudo systemctl enable php8.3-fpm
    • 说明:若使用 PHP‑FPM,需启用 Apache 的 proxy、proxy_fcgi、rewrite 模块并在虚拟主机中用 SetHandler “proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost/” 代理 PHP 请求

三 创建数据库与用户

  • 登录数据库:sudo mysql -u root -p
  • 执行 SQL(请替换强密码):
    • CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    • CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'StrongPassword!';
    • GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
    • FLUSH PRIVILEGES;
    • EXIT;
  • 说明:生产环境不建议使用 root 直连应用;字符集使用 utf8mb4 以支持完整 Unicode(含表情)

四 部署 WordPress 文件与权限

  • 下载并解压到站点目录
    • 执行:cd /tmp && curl -LO https://wordpress.org/latest.tar.gz && tar xzvf latest.tar.gz
    • 复制:sudo cp -a /tmp/wordpress/. /var/www/html/wordpress
  • 生成并编辑配置文件
    • 执行:sudo cp /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php
    • 修改数据库信息(wp-config.php):
      • define('DB_NAME', 'wordpress');
      • define('DB_USER', 'wpuser');
      • define('DB_PASSWORD', 'StrongPassword!');
      • define('DB_HOST', 'localhost');
  • 设置目录权限(Apache 运行用户通常为 www-data
    • 执行: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 {} \;
  • 可选 使用 Apache 虚拟主机(推荐)
    • 新建:sudo nano /etc/apache2/sites-available/wordpress.conf
    • 示例:
      <VirtualHost *:80>
          ServerAdmin webmaster@example.com
          DocumentRoot /var/www/html/wordpress
          ServerName your-domain.com
          ServerAlias www.your-domain.com
      
          <Directory /var/www/html/wordpress/>
              Options FollowSymLinks
              AllowOverride All
              Require all granted
          </Directory>
      
          ErrorLog ${APACHE_LOG_DIR}/wordpress.error.log
          CustomLog ${APACHE_LOG_DIR}/wordpress.access.log combined
      </VirtualHost>
      
    • 启用站点与重写模块:sudo a2ensite wordpress.conf && sudo a2enmod rewrite && sudo systemctl reload apache2
  • 访问安装向导
    • 浏览器访问 http://<服务器IP或域名>/,按向导完成站点标题、管理员账号等设置

五 安全加固与常见问题

  • 安全与运维
    • 获取免费 SSL 证书并配置 HTTPS(如 Let’s Encrypt/Certbot),强制全站 HTTPS
    • 删除测试文件:sudo rm /var/www/html/info.php(如曾创建)
    • 定期更新 WordPress 核心、主题、插件;使用强密码与两步验证;限制插件/主题来源
    • 备份策略:定期备份 /var/www/html/wordpress 与数据库(如 mysqldump
  • 常见问题排查
    • 403/404:检查虚拟主机 DocumentRoot 与目录权限,确认启用 AllowOverride Allmod_rewrite
    • 数据库连接失败:核对 wp-config.phpDB_NAME/DB_USER/DB_PASSWORD/DB_HOST,确认数据库与用户已创建并授权
    • 500 错误:查看 /var/log/apache2/error.log;若使用 PHP‑FPM,同时查看 /var/log/php8.3-fpm.log
    • 端口未放行:确认 UFW/云安全组 已放行 80/443,云实例需配置 VCN 入站规则(端口 80

附 Nginx + PHP‑FPM 方案简要

  • 安装与启用
    • Nginx:sudo apt install nginx -y
    • PHP‑FPM(示例为 PHP 8.3):sudo apt install php8.3-fpm php8.3-mysql php8.3-curl php8.3-gd php8.3-mbstring php8.3-xml php8.3-zip -y
  • 站点配置示例(/etc/nginx/sites-available/wordpress)
    server {
        listen 80;
        server_name your-domain.com;
        root /var/www/html/wordpress;
        index index.php index.html;
    
        location / {
            try_files $uri $uri/ /index.php?$args;
        }
    
        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php8.3-fpm.sock;
        }
    
        location ~* \.(gif|jpg|jpeg|png|webp)$ { expires 86400; }
        location ~* \.(htm|html|css|js)$   { expires 2592000; }
    }
    
  • 启用站点:sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/ && sudo rm -f /etc/nginx/sites-enabled/default && sudo nginx -t && sudo systemctl reload nginx

0