在Ubuntu服务器上使用命令行部署WordPress的完整教程

想要在Ubuntu服务器上通过命令行快速部署WordPress网站,从环境搭建到访问配置一步到位?这篇教程将带你深入实践,掌握从零开始构建WordPress站点的完整流程。我们将使用Nginx作为Web服务器,PHP及必要扩展,MySQL作为数据库,并通过命令行完成所有配置。跟随以下步骤,部署WordPress将变得简单高效,避免常见陷阱。

环境准备

在开始之前,确保你拥有以下条件:

在Ubuntu服务器上使用命令行部署WordPress的完整教程

  • 一台运行Ubuntu的服务器(推荐Ubuntu 20.04 LTS或更高版本)
  • 服务器root用户或具有sudo权限的用户
  • 一个已解析到服务器IP的域名
  • WordPress网站文件(可以从wordpress.org下载最新版本)

核心原理解析

使用命令行部署WordPress涉及以下关键组件及其交互:

  1. Nginx:作为前端Web服务器,负责接收HTTP请求,并将动态请求(如PHP处理)转发给后端PHP处理器。
  2. PHP:作为服务器端脚本语言,处理WordPress核心文件、主题和插件的PHP代码。
  3. MySQL:作为关系型数据库管理系统,存储WordPress的所有数据,包括帖子、页面、用户信息等。
  4. WordPress:基于PHP的开源内容管理系统,通过上述组件协同工作,实现网站功能。

部署流程的核心是:搭建并配置Nginx、PHP、MySQL环境,然后下载WordPress文件并配置文件权限,最后通过Nginx设置虚拟主机,使浏览器能够访问并完成WordPress安装向导。

实践步骤详解

步骤一:安装Nginx

Nginx作为反向代理服务器,能够高效处理静态文件请求,并将动态请求交给PHP处理器。

  1. 更新软件源列表:确保获取最新软件包信息。

    sudo apt update
  2. 安装Nginx:使用apt install命令自动安装Nginx,并跳过确认提示。

    sudo apt install nginx -y
  3. 检查Nginx状态:验证Nginx是否正常启动。

    sudo systemctl status nginx

    输出显示active (running)表示启动成功;若显示inactive (dead),则需手动启动并设置开机自启:

    sudo systemctl start nginx
    sudo systemctl enable nginx
  4. 放行HTTP端口:允许外部访问Nginx的80端口。

    sudo ufw allow 'Nginx Full'
  5. 验证安装:在浏览器中访问服务器IP,若出现Welcome to nginx!页面,表示Nginx安装成功。

步骤二:安装PHP及扩展

WordPress需要PHP环境来执行动态页面渲染,必须安装PHP及必要的扩展。

  1. 安装PHP核心:安装PHP 8.1(推荐版本,可根据服务器情况调整)。

    sudo apt install php8.1 php8.1-fpm
  2. 安装必要扩展:WordPress运行需要以下扩展。

    sudo apt install php8.1-mysql php8.1-gd php8.1-mbstring php8.1-xml php8.1-curl

    其中:

    • mysql:连接MySQL数据库
    • gd:处理图像上传和编辑
    • mbstring:支持多字节字符集
    • xml:处理XML数据
    • curl:实现HTTP请求
  3. 重启PHP-FPM:使扩展生效。

    sudo systemctl restart php8.1-fpm
  4. 测试PHP:创建一个PHP文件测试环境。

    sudo nano /var/www//info.php
     输入以下内容
    
     保存并退出
    sudo systemctl reload nginx
     在浏览器访问 http://your_domain/info.php
     删除测试文件
    sudo rm /var/www//info.php

    若页面显示PHP信息,表示PHP环境配置成功。注意在生产环境应删除info.php文件。

步骤三:安装MySQL并创建数据库

WordPress需要数据库存储内容,安装MySQL并创建专用数据库。

  1. 安装MySQL

    sudo apt install mysql-server -y
  2. 安全加固:运行安全脚本修改默认密码、删除匿名用户、禁止远程root登录等。

    sudo mysql_secure_installation

    按提示操作:

    • 输入当前root密码(默认无密码)
    • 是否删除匿名用户:Y
    • 是否允许root远程登录:N
    • 是否删除测试数据库:Y
    • 是否修改root密码:Y(设置新密码)
  3. 登录MySQL

    sudo mysql -u root -p
  4. 创建WordPress数据库

    CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
    CREATE USER 'wordpressuser'@'localhost' IDENTIFIED BY 'your_strong_password';
    GRANT ALL PRIVILEGES ON wordpress. TO 'wordpressuser'@'localhost';
    FLUSH PRIVILEGES;
    EXIT;

    其中:

    • wordpress:数据库名
    • wordpressuser:数据库用户名
    • your_strong_password:设置强密码

步骤四:下载配置WordPress

下载WordPress文件,并配置文件权限。

  1. 创建WordPress目录:通常部署在/var/www//var/www/wordpress

    sudo mkdir /var/www/wordpress
    sudo chown -R $USER:$USER /var/www/wordpress
    sudo chmod -R 755 /var/www/wordpress
  2. 下载WordPress:使用wget获取最新版本。

    cd /tmp
    wget https://wordpress.org/latest.tar.gz
    tar -xzvf latest.tar.gz
    sudo mv wordpress/ /var/www/wordpress/
    sudo rm -rf /tmp/latest.tar.gz /tmp/wordpress
  3. 配置WordPress文件权限:确保Web服务器可读写WordPress核心文件。

    sudo chown -R www-data:www-data /var/www/wordpress
    sudo find /var/www/wordpress -type d -exec chmod 750 {} ;
    sudo find /var/www/wordpress -type f -exec chmod 640 {} ;
  4. 创建WordPress配置文件:复制示例文件并修改数据库信息。

    sudo cp /var/www/wordpress/wp-config-sample.php /var/www/wordpress/wp-config.php
    sudo nano /var/www/wordpress/wp-config.php

    修改以下配置:

    define( 'DB_NAME', 'wordpress' );
    define( 'DB_USER', 'wordpressuser' );
    define( 'DB_PASSWORD', 'your_strong_password' );
    define( 'DB_HOST', 'localhost' );

步骤五:配置Nginx虚拟主机

配置Nginx将特定域名请求转发到WordPress。

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

    sudo nano /etc/nginx/sites-available/wordpress
     输入以下内容
    server {
        listen 80;
        server_name your_domain www.your_domain;
    
        root /var/www/wordpress;
        index index.php index. index.htm;
    
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
    
        location ~ .php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
        }
    
        location ~ /.ht {
            deny all;
        }
    }
  2. 启用虚拟主机

    sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
    sudo rm /etc/nginx/sites-enabled/default
    sudo systemctl reload nginx
  3. 检查Nginx配置:确保无语法错误。

    sudo nginx -t

步骤六:完成安装

通过浏览器访问WordPress安装向导,完成初始设置。

  1. 访问安装页面:在浏览器输入域名。

    http://your_domain/
  2. 按照向导操作
    • 选择语言:中文(简体)
    • 数据库信息:
      • 数据库类型:MySQL
      • 数据库主机:localhost
      • 数据库用户:wordpressuser
      • 数据库密码:your_strong_password
      • 表前缀:可自定义
    • 安装WordPress
    • 创建管理员账户
  3. 登录WordPress后台:使用创建的账户信息登录。

    http://your_domain/wp-admin/

常见问题与排查

问题一:无法访问网站

现象:浏览器显示“无法打开此网站”或Nginx 404错误。

  • 检查Nginx状态
    sudo systemctl status nginx
  • 检查配置文件
    sudo nginx -t

    若报错,修改/etc/nginx/sites-available/wordpress文件中的rootserver_name路径。

  • 检查防火墙
    sudo ufw status

    确保端口80已放行。

  • 检查WordPress目录权限
    ls -l /var/www/wordpress

    应为drwxr-xr-x,所有者应为www-data

问题二:数据库连接失败

现象:WordPress安装向导提示“无法连接到数据库”。

  • 检查数据库用户密码:确保在wp-config.php中配置正确。
  • 检查数据库用户权限
    sudo mysql -u wordpressuser -p
    SHOW GRANTS FOR 'wordpressuser'@'localhost';
    EXIT;

    确保用户拥有所有权限。

  • 检查MySQL服务状态
    sudo systemctl status mysql

问题三:PHP-FPM错误

现象:访问WordPress时显示“500 Internal Server Error”。

  • 查看PHP-FPM日志
    sudo tail -n 50 /var/log/php8.1-fpm.log
  • 检查Nginx错误日志
    sudo tail -n 50 /var/log/nginx/error.log
  • 检查PHP扩展
    php -m

    确保安装了所有必要扩展。

问题四:安装向导无法加载

现象:浏览器显示空白页或404错误。

  • 检查Nginx配置中的try_files指令。
  • 检查WordPress目录是否可写
    sudo chown -R www-data:www-data /var/www/wordpress
    sudo chmod -R 755 /var/www/wordpress
  • 检查是否有PHP语法错误
    sudo php -l /var/www/wordpress/index.php

优化与维护

WordPress部署完成后,建议进行以下优化与维护操作:

  1. 更新WordPress核心:定期检查并更新到最新版本。
  2. 更新主题和插件:确保所有组件安全且功能正常。
  3. 配置SSL证书:使用Let's Encrypt免费获取SSL证书,实现HTTPS。

    sudo apt install certbot python3-certbot-nginx
    sudo certbot --nginx
  4. 设置固定链接:在WordPress后台设置 > 固定链接选择“文章名”结构。
  5. 配置缓存:安装如WP Super Cache或W3 Total Cache插件提升性能。
  6. 定期备份:使用插件或服务器备份工具定期备份网站文件和数据库。