目录

  1. 准备工作
  2. 第一步:安装 LAMP/LEMP 栈
    • 选择 1:安装 Apache (LAMP)
    • 选择 2:安装 Nginx (LEMP)
  3. 第二步:创建 WordPress 数据库
  4. 第三步:下载并配置 WordPress
  5. 第四步:设置文件权限
  6. 第五步:通过 Web 完成安装
  7. 后续步骤:安全加固与优化
    • 设置防火墙

      linux wordpress教程
      (图片来源网络,侵删)
    • 禁用 root 登录 (SSH)

    • 定期更新

    • 安装缓存插件 (如 WP Rocket/W3 Total Cache)

    • 配置 SSL (Let's Encrypt)

      linux wordpress教程
      (图片来源网络,侵删)
  8. 常见问题与故障排除

准备工作

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

  1. 一台 Linux 服务器:推荐使用 Ubuntu 22.04 LTS 或 Debian 11,本教程将以 Ubuntu 22.04 为例,你可以使用任何云服务商(如阿里云、腾讯云、AWS、Vultr、DigitalOcean)或本地虚拟机。
  2. 一个域名my-awesome-blog.com,你需要将域名的 DNS A 记录指向你服务器的公网 IP 地址。
  3. 服务器的 SSH 访问权限:你需要通过 SSH 客户端(如 PuTTY, MobaXterm, 或 macOS/Linux 自带的终端)连接到你的服务器。
  4. sudo 权限:你使用的登录用户需要有 sudo 权限,以便安装软件和修改系统文件。

第一步:安装 LAMP/LEMP 栈

WordPress 需要一个 Web 服务器、一个数据库和一个 PHP 运行环境,LAMP 代表 Linux, Apache, MySQL, PHP,而 LEMP 则是用 Nginx 替代了 Apache,两者都可以,Nginx 通常在高并发场景下性能更好。

选择 1:安装 Apache (LAMP)

Apache 是最成熟、最兼容的 Web 服务器。

# 1. 更新软件包列表
sudo apt update
# 2. 安装 Apache2
sudo apt install apache2 -y
# 3. 检查 Apache 是否运行
sudo systemctl status apache2
# 如果看到绿色的 "active (running)" 字样,说明安装成功。
# 4. (可选) 在浏览器中访问你的服务器 IP,应该能看到 Apache 的默认欢迎页面。

选择 2:安装 Nginx (LEMP)

Nginx 是一个轻量级、高性能的反向代理和 Web 服务器。

linux wordpress教程
(图片来源网络,侵删)
# 1. 更新软件包列表
sudo apt update
# 2. 安装 Nginx
sudo apt install nginx -y
# 3. 检查 Nginx 是否运行
sudo systemctl status nginx
# 如果看到绿色的 "active (running)" 字样,说明安装成功。
# 4. (可选) 在浏览器中访问你的服务器 IP,应该能看到 Nginx 的默认欢迎页面。

安装 MySQL/MariaDB 数据库

MySQL 和其分支 MariaDB 是最常用的 WordPress 数据库,MariaDB 是 MySQL 的完全替代品,性能更好。

# 安装 MariaDB (推荐) 或 MySQL
sudo apt install mariadb-server mariadb-client -y
# 安全配置 MariaDB
sudo mysql_secure_installation

mysql_secure_installation 是一个交互式脚本,会引导你完成以下操作:

  1. 设置 root 密码(务必记住!)
  2. 移除匿名用户
  3. 禁止 root 用户远程登录
  4. 移除测试数据库
  5. 重新加载权限表 对于每一步,都直接按 Y 然后回车即可。

安装 PHP 和必需的扩展

WordPress 是用 PHP 编写的,需要安装 PHP 及其一些扩展。

# 1. 安装 PHP 和常用扩展
# Ubuntu 22.04 默认 PHP 版本是 8.1,对 WordPress 来说非常合适。
sudo apt install php libapache2-mod-php php-mysql php-fpm php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip -y
# 如果你使用的是 Nginx (LEMP),你需要单独安装 php-fpm 并启动它
# sudo systemctl start php8.1-fpm
# sudo systemctl enable php8.1-fpm

第二步:创建 WordPress 数据库

为了安全,我们不应该使用 root 用户来管理 WordPress,我们将创建一个专用的数据库和用户。

  1. 登录到 MySQL/MariaDB 控制台

    sudo mysql -u root -p
    # 输入你在上一步设置的 root 密码
  2. 在 MySQL 控制台中执行以下命令

    -- 创建一个名为 'wordpress_db' 的数据库,你可以自定义名字。
    CREATE DATABASE wordpress_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    -- 创建一个名为 'wordpress_user' 的用户,并设置密码 'your_strong_password',请务必替换成你自己的强密码!
    CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'your_strong_password';
    -- 将新创建的数据库 'wordpress_db' 的所有权限授予 'wordpress_user' 用户
    GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wordpress_user'@'localhost';
    -- 刷新权限,使更改生效
    FLUSH PRIVILEGES;
    -- 退出 MySQL 控制台
    EXIT;

第三步:下载并配置 WordPress

现在我们下载 WordPress 文件到服务器并准备配置。

  1. 下载 WordPress

    # 进入网站根目录,对于 Apache,通常是 /var/www/html;对于 Nginx,通常是 /var/www/html。
    cd /var/www/html
    # 下载最新的 WordPress 压缩包
    sudo wget https://wordpress.org/latest.tar.gz
    # 解压
    sudo tar -xzvf latest.tar.gz
    # 解压后,wordpress 文件夹被创建,我们将它的内容移动到 html 目录,并删除压缩包
    sudo mv wordpress/* .
    sudo rm -rf latest.tar.gz wordpress
  2. 创建 wp-config.php 文件 WordPress 提供了一个示例配置文件 wp-config-sample.php,我们需要复制它并修改。

    sudo cp wp-config-sample.php wp-config.php
  3. 编辑 wp-config.php 文件 使用你喜欢的文本编辑器(如 nanovim)来编辑这个文件。

    sudo nano wp-config.php

    找到以下部分,并用你在第二步中创建的数据库信息替换:

    /** WordPress 数据库的名称 */
    define('DB_NAME', 'wordpress_db');
    /** MySQL 数据库用户名 */
    define('DB_USER', 'wordpress_user');
    /** MySQL 数据库密码 */
    define('DB_PASSWORD', 'your_strong_password');
    /** MySQL 主机 */
    define('DB_HOST', 'localhost');

    高级安全设置(推荐): 在文件底部,你会看到 AUTH_KEY 等安全密钥,不要自己编造,直接访问 WordPress 秘密密钥生成器 获取一组新的、随机的密钥,然后替换掉文件中的默认值,这可以大大提高你网站的安全性。

    编辑完成后,按 Ctrl + X,然后按 Y,最后按 Enter 保存并退出。

第四步:设置文件权限

Web 服务器(Apache/Nginx)需要能够读取和写入 WordPress 的文件,我们需要修改文件的所有者和权限。

  1. 设置所有者/var/www/html 目录下的所有文件和文件夹的所有者设置为 Web 服务器的用户,对于 Ubuntu,Apache 和 Nginx 的用户都是 www-data

    sudo chown -R www-data:www-data /var/www/html/
  2. 设置权限 设置正确的文件和目录权限。

    # 设置目录权限为 755
    sudo find /var/www/html/ -type d -exec chmod 755 {} \;
    # 设置文件权限为 644
    sudo find /var/www/html/ -type f -exec chmod 644 {} \;
  3. 特别设置 wp-config.php 的权限 这个文件包含敏感信息,应该有更严格的权限。

    sudo chmod 600 /var/www/html/wp-config.php

第五步:通过 Web 完成安装

所有的后端工作都已完成,剩下的就是通过浏览器进行图形化安装了。

  1. 在你的浏览器中访问你的域名或服务器 IP 地址,

    • http://your_server_ip
    • http://your_domain.com
  2. 你会看到 WordPress 的欢迎界面,选择你的语言,然后点击“继续”。

  3. 在接下来的页面中,填写以下信息:

    • :你的网站名称。
    • 用户名:你想要的管理员用户名(不要用 admin,以防暴力破解)。
    • 密码:设置一个强密码,你也可以使用密码生成器生成的密码。
    • 你的电子邮箱:管理员邮箱。
    • 搜索引擎可见性:对于新站,可以勾选“阻止搜索引擎索引此网站”,直到你准备好正式上线。
  4. 点击“安装 WordPress”。

  5. 几秒钟后,安装完成!点击“登录”按钮,使用你刚刚设置的用户名和密码登录你的 WordPress 后台。

恭喜!你的 WordPress 网站已经成功运行在 Linux 服务器上了!

后续步骤:安全加固与优化

安装完成只是开始,为了网站的安全和性能,还有一些重要的工作要做。

设置防火墙

如果你启用了 UFW (Uncomplicated Firewall),只开放必要的端口。

# 允许 SSH 连接 (确保你不会把自己锁在外面)
sudo ufw allow OpenSSH
# 允许 HTTP (80) 和 HTTPS (443) 流量
sudo ufw allow 'Apache Full'  # 如果使用 Apache
# sudo ufw allow 'Nginx Full' # 如果使用 Nginx
# 启用防火墙
sudo ufw enable
# 输入 'y' 确认

禁用 root 登录 (SSH)

为了安全,建议禁止直接使用 root 用户通过 SSH 登录。

  1. 编辑 SSH 配置文件:
    sudo nano /etc/ssh/sshd_config
  2. 找到 PermitRootLogin yes 这一行,将其修改为 PermitRootLogin no
  3. 保存并退出,然后重启 SSH 服务:
    sudo systemctl restart sshd

定期更新

保持你的服务器软件和 WordPress 核心及插件更新至关重要,你可以设置自动更新。

# 安装 unattended-upgrades
sudo apt install unattended-upgrades -y
# 配置自动更新
sudo dpkg-reconfigure -plow unattended-upgrades
# 在弹出的界面中选择 'Yes'

安装缓存插件

缓存可以极大地提升网站的加载速度,推荐使用 WP Rocket、W3 Total Cache 或 LiteSpeed Cache。

配置 SSL (Let's Encrypt)

让你的网站通过 HTTPS 运行是现代网站的标配,这既安全又能提升 SEO。

# 安装 Certbot
sudo apt install certbot python3-certbot-apache -y # 如果用 Apache
# sudo apt install certbot python3-certbot-nginx -y # 如果用 Nginx
# 自动获取和安装 SSL 证书
sudo certbot --apache # 自动配置 Apache
# sudo certbot --nginx # 自动配置 Nginx
# 按照提示输入你的邮箱和同意条款,Certbot 会自动完成所有配置。

Certbot 还会设置一个自动续期任务,确保你的 SSL 证书不会过期。


常见问题与故障排除

  • 问题:访问网站时显示 "403 Forbidden" 错误。

    • 原因:文件权限或所有者不正确。
    • 解决:重新执行第四步的 chownchmod 命令。
  • 问题:访问网站时显示 "Internal Server Error" 或 "Error establishing a database connection"。

    • 原因:数据库连接信息错误、数据库服务未启动或 PHP-FPM 配置问题。
    • 解决
      1. 检查数据库服务状态:sudo systemctl status mariadbsudo systemctl status mysql
      2. 仔细检查 wp-config.php 文件中的 DB_NAME, DB_USER, DB_PASSWORD, DB_HOST 是否正确。
      3. 如果使用 Nginx,确保 PHP-FPM 服务正在运行,Nginx 的配置文件中 fastcgi_pass 指向正确的 PHP-FPM socket(通常是 /run/php/php8.1-fpm.sock)。
  • 问题:网页样式或部分功能无法正常显示。

    • 原因:通常是 .htaccess 文件问题(Apache)或 Nginx 配置未正确处理 WordPress 的伪静态规则。
    • 解决
      • Apache:通常不需要额外配置,.htaccess 文件会被自动读取。
      • Nginx:你需要修改 Nginx 的站点配置文件,添加 WordPress 的伪静态规则,搜索 try_files $uri $uri/ /index.php?$args; 并确保它被包含在 location / 块中,修改后需要 sudo systemctl reload nginx

这份教程涵盖了从零到一搭建一个功能完善、基本安全的 WordPress 网站的全过程,祝你建站顺利!