用FinalShell远程连接(ssh)阿里云(ecs)服务器搭建lnmp(linux+nginx+mysql+php)环境并部署workpress个人博客网站
2026/8/29 3:56:28 网站建设 项目流程

linux  version:Rocky linux 9.7  

nginx version: nginx/1.20.1

mysql  Ver 8.0.46 for Linux on x86_64 (MySQL Community Server - GPL)
 

php    version:PHP 8.0.30

一、环境准备与连接

1. 使用 FinalShell 连接ecs服务器

  • 打开 FinalShell,点击“新建 SSH 连接”

  • 填写:名称(随意)、主机(服务器公网 IP)、端口 22、用户名 root、密码

  • 点击连接,进入终端

2. 更新系统

bash

dnf update -y

一般建议在新部署服务器时先执行一次全面更新,之后根据安全公告和实际需要定期更新。dnf update -y 中的 -y 自动确认,适合在非交互脚本中使用,但生产环境更新前最好先备份或建立快照。

二、安装 Nginx

bash

dnf install -y nginx systemctl enable nginx systemctl start nginx

验证:浏览器访问 http://服务器IP,能看到 Nginx 欢迎页即成功。

三、安装 MySQL 8.0(官方仓库)

1. 添加 MySQL Yum 仓库

bash

dnf install -y https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm

2. 安装 MySQL 服务器

bash

dnf install -y mysql-community-server

3. 启动并设置开机自启

bash

systemctl enable mysqld systemctl start mysqld

4. 获取临时密码

bash

grep 'temporary password' /var/log/mysqld.log

复制输出的临时密码。

5. 修改 root 密码

bash

mysql -u root -p

输入临时密码登录,然后执行:

sql

ALTER USER 'root'@'localhost' IDENTIFIED BY '你的强密码'; FLUSH PRIVILEGES; EXIT;

ps:

这里改完退出MySQL模式后,可改密码策略:

1. 使用临时密码登录 MySQL

bash

mysql -u root -p

输入临时密码。

2.查看当前密码策略

sql

SHOW VARIABLES LIKE 'validate_password%';

输出类似:

text

+--------------------------------------+--------+ | Variable_name | Value | +--------------------------------------+--------+ | validate_password.check_user_name | ON | | validate_password.dictionary_file | | | validate_password.length | 8 | | validate_password.mixed_case_count | 1 | | validate_password.number_count | 1 | | validate_password.policy | MEDIUM | | validate_password.special_char_count | 1 | +--------------------------------------+--------+

3. 调整密码策略为最低要求(或直接禁用)

可以降低策略等级和长度要求:

sql

SET GLOBAL validate_password.policy = LOW; SET GLOBAL validate_password.length = 4; SET GLOBAL validate_password.mixed_case_count = 0; SET GLOBAL validate_password.number_count = 0; SET GLOBAL validate_password.special_char_count = 0;
  • policy = LOW 只检查长度;

  • length = 4 允许密码长度至少 4 位,123456 有 6 位,满足;

  • 将大小写、数字、特殊字符数量要求都设为 0,则不再强制包含这些字符。

注意:在 MySQL 8.0 中,变量名使用点号(.),如 validate_password.policy,而非旧版的下划线(validate_password_policy)。


4. 修改 root 密码为 123456

sql

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; FLUSH PRIVILEGES;

5. 验证

退出后重新登录测试:

bash

mysql -u root -p123456

6. 让设置永久生效(可选)

上述设置仅在 MySQL 运行期间有效,重启后会恢复默认。若希望永久生效,可以在 MySQL 配置文件 /etc/my.cnf 的 [mysqld] 段添加:

ini

validate_password.policy=LOW validate_password.length=4 validate_password.mixed_case_count=0 validate_password.number_count=0 validate_password.special_char_count=0

保存后重启 MySQL 服务:

bash

systemctl restart mysqld

⚠️ 安全警告

将数据库 root 密码设为 123456 极其危险,强烈不建议在生产环境使用。即使只是个人测试服务器,也建议使用复杂密码并妥善保管。如果坚持使用简单密码,请务必确保服务器防火墙和安全组已限制 MySQL 端口(3306)仅本机访问,不要对公网开放。

6. 创建 WordPress 数据库和用户

bash

mysql -u root -p

输入新密码,执行:

sql

CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'wpuser'@'localhost' IDENTIFIED BY '你的数据库用户密码'; GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost'; FLUSH PRIVILEGES; EXIT;

若以后 PHP 连接 MySQL 报认证错误,可执行:

sql

ALTER USER 'wpuser'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的数据库用户密码';

四、安装 PHP 8 及扩展

bash

dnf install -y php php-fpm php-mysqlnd php-gd php-xml php-mbstring php-json php-curl php-zip php-intl systemctl enable php-fpm systemctl start php-fpm

使用 FinalShell 修改 PHP-FPM 运行用户

  1. 在 FinalShell 左侧文件管理器中,导航到 /etc/php-fpm.d/

  2. 右键 www.conf,选择“编辑”

  3. 找到:

    text

    user = apache group = apache

    修改为:

    text

    user = nginx group = nginx
  4. 保存文件(Ctrl+S)

  5. 回到终端执行:

    bash

    systemctl restart php-fpm

五、配置 Nginx 虚拟主机

1. 创建站点目录

bash

mkdir -p /var/www/wordpress

2. 使用 FinalShell 创建并编辑配置文件

  1. 在 FinalShell 文件管理器中,进入 /etc/nginx/conf.d/

  2. 右键空白处 → 新建文件,命名为 wordpress.conf

  3. 右键该文件 → 编辑,粘贴以下内容(将 server_name 改为你的域名或 IP,若没有域名写 _):

    nginx

    server { listen 80; server_name _; root /var/www/wordpress; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/run/php-fpm/www.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { expires max; log_not_found off; } location ~ /\.ht { deny all; } }
  4. 保存文件

3. 测试并重载 Nginx

bash

nginx -t systemctl reload nginx

六、下载并配置 WordPress

1. 下载 WordPress

bash

cd /var/www/wordpress wget https://wordpress.org/latest.tar.gz tar -xzf latest.tar.gz --strip-components=1 rm -f latest.tar.gz

2. 设置权限

bash

chown -R nginx:nginx /var/www/wordpress find /var/www/wordpress -type d -exec chmod 755 {} \; find /var/www/wordpress -type f -exec chmod 644 {} \;

3. 使用 FinalShell 配置 wp-config.php

1. 进入 WordPress 目录

在终端中执行:

bash

cd /var/www/wordpress

2.复制配置文件

bash

cp wp-config-sample.php wp-config.php

3. 使用 vi 编辑器修改配置文件

执行:

bash

vi wp-config.php

这时会进入 vi 编辑器,全程键盘操作。

vi 基本操作:

  1. 按 / 键进入搜索模式,输入 DB_NAME 然后回车,光标会跳到第一个匹配处。

  2. 按 n 键跳转到下一个匹配项,直到定位到 define( 'DB_NAME', 'database_name_here' ); 这一行。

  3. 按 i 键进入插入模式(屏幕底部会出现 -- INSERT --)。

  4. 使用方向键移动光标,将 'database_name_here' 修改为 'wordpress'

  5. 按 Esc 键退出插入模式。

  6. 重复上述步骤修改 DB_USER 和 DB_PASSWORD

    • 搜索 DB_USER,将 'username_here' 改为 'wpuser'

    • 搜索 DB_PASSWORD,将 'password_here' 改为您的数据库用户密码(例如 '你的强密码')。

  7. 同样修改 DB_HOST 为 'localhost'(通常默认已是,但确认一下)。

  8. 按 Esc 确保退出插入模式。

  9. 输入 :wq 然后按回车,保存并退出。

4. 替换安全密钥(可选但强烈建议)

ps:

为什么要替换?

具体作用:

  1. 加密 Cookie:当用户登录 WordPress 后,服务器会生成一个包含用户身份信息的 Cookie。这些密钥用于对该 Cookie 进行哈希和加密,确保 Cookie 无法被篡改或伪造。

  2. 防止会话劫持:如果没有这些随机密钥,攻击者可能更容易猜测或构造有效的登录 Cookie,从而冒充已登录用户。

  3. 增强密码存储安全性:虽然 WordPress 密码本身使用哈希存储,但密钥用于生成更复杂的认证令牌,间接提升了整体安全性。

为什么必须更换默认的占位符?

  • WordPress 默认配置文件中的密钥是空占位符(如 'put your unique phrase here'),如果保持原样,所有使用该默认配置的站点将共享相同的“密钥”,这使得攻击者可以轻易伪造 Cookie 并入侵任何未修改密钥的站点。

  • 更换为随机、唯一的密钥后,你的站点就拥有了独立的加密指纹,大幅提高安全性。

其他好处:

  • 强制用户重新登录:如果网站曾经被入侵或怀疑 Cookie 泄露,更换密钥会使所有现有登录 Cookie 失效,用户必须重新登录,从而切断攻击者的会话。


总结:更换安全密钥是 WordPress 安全配置的基本步骤,确保你的站点使用独一无二的加密密钥,防止 Cookie 伪造和会话劫持。强烈建议在安装时或首次配置时完成这一步。

>>

您可以继续使用 vi 替换密钥,但更简单的方法是使用命令行直接生成并替换。在终端执行以下命令(会自动从 WordPress 官方获取密钥并替换到配置文件中):

bash

curl -s https://api.wordpress.org/secret-key/1.1/salt/ >> wp-config.php

但这样会把密钥追加到文件末尾,并非替换原有占位符。更好的做法是先用 vi 删除原有的密钥占位行(通常是 8 行 define('AUTH_KEY', 'put your unique phrase here'); 等),然后执行上述命令追加。或者使用 sed 命令替换,但比较复杂。简单起见,您可以手动用 vi 编辑:搜索 AUTH_KEY,逐行删除占位内容并粘贴从网页复制的新密钥。
不过既然要求全键盘,我们可以通过以下命令自动完成替换(利用 curl 和 sed):

bash

# 备份原文件 cp wp-config.php wp-config.php.bak # 下载密钥并存储到临时文件 curl -s https://api.wordpress.org/secret-key/1.1/salt/ > /tmp/salt.txt # 使用 sed 删除原有的 8 行密钥定义,并在相同位置插入新密钥 sed -i '/AUTH_KEY/d; /SECURE_AUTH_KEY/d; /LOGGED_IN_KEY/d; /NONCE_KEY/d; /AUTH_SALT/d; /SECURE_AUTH_SALT/d; /LOGGED_IN_SALT/d; /NONCE_SALT/d' wp-config.php sed -i "/define( 'DB_COLLATE', '' );/r /tmp/salt.txt" wp-config.php

以上命令会删除所有旧密钥行,并在 DB_COLLATE 行之后插入新的密钥行。完成后可查看确认:

bash

grep -E 'AUTH_KEY|SECURE_AUTH_KEY|LOGGED_IN_KEY|NONCE_KEY|AUTH_SALT|SECURE_AUTH_SALT|LOGGED_IN_SALT|NONCE_SALT' wp-config.php

5. 验证文件权限

确保配置文件的属主和权限正确:

bash

chown nginx:nginx wp-config.php chmod 640 wp-config.php

通过以上纯命令行操作,您已经完全避免了鼠标,成功配置了 wp-config.php。如果后续还需要编辑其他文件,同样可以使用 vi 或 nano(更简单的编辑器,使用 Ctrl+O 保存,Ctrl+X 退出)。


七、配置 SELinux 和防火墙

bash

# SELinux 设置 setsebool -P httpd_can_network_connect 1 setsebool -P httpd_can_network_connect_db 1 restorecon -Rv /var/www/wordpress # 防火墙开放端口 ps: 这里可能没安装防火墙:

解决方案:

1. 检查 firewalld 是否安装

bash

rpm -q firewalld

如果未安装,先安装:

bash

dnf install -y firewalld

2. 启动 firewalld 并设置开机自启

bash

systemctl start firewalld systemctl enable firewalld

3. 重新添加端口规则

bash

firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload

4. 验证规则

bash

firewall-cmd --list-services

应该能看到 http 和 https


补充说明:

  • 为什么 firewalld 没有运行? 可能在系统安装时没有启用,或者被其他防火墙工具(如 iptables)替代。Rocky Linux 9 默认使用 firewalld,但可能被禁用。

  • 如果不想使用 firewalld,可以跳过这一步,因为阿里云安全组已经提供了网络层过滤,只要安全组放行了 80/443 端口,外部就能访问。但系统防火墙(firewalld)建议保持开启,以增加一层防护。

  • 如果已经开启了 firewalld 但仍然无法访问,请检查阿里云安全组规则是否放行 80/443 端口。

>> firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload

别忘了在阿里云控制台的安全组中放行 80 和 443 端口。


八、完成 WordPress 安装

浏览器访问 http://你的服务器IP 或域名,按照向导填写:

  • 站点标题

  • 管理员用户名

  • 密码

  • 邮箱
    点击“安装 WordPress”即可。


九、后续优化建议

  • 启用 HTTPS:使用 Certbot 申请免费 SSL 证书。

  • 定期备份:备份数据库和网站文件。

  • 安全加固:修改 SSH 端口、禁用密码登录、限制登录 IP 等。

现在,您的 WordPress 个人博客已成功运行在阿里云 Rocky Linux 9.7 服务器上,数据库使用 MySQL,Web 服务器使用 Nginx,PHP 采用 PHP-FPM。FinalShell 让文件编辑和命令执行变得非常便捷,祝您使用愉快!

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询