wordpress6.8.2手动部署
手动部署参考文档
手动部署LNMP环境(Linux、Nginx、MySQL和PHP)_云服务器 ECS(ECS)-阿里云帮助中心
搭建lnmp框架环境
环境 ubuntu22.04 阿里云服务器2g2核40g
1.使用Nginx官方源安装Nginx。
#更新系统已安装软件并更新包管理工具
sudo apt update -y
#Nginx安装前必要环境
sudo apt install -y curl gnupg2 ca-certificates lsb-release ubuntu-keyring
#导入官方Nginx签名密钥
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
#设置apt仓库
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
#安装nginx
sudo apt install -y nginx
2.更新软件包列表并安装MySQL服务器。
sudo apt update -y && sudo apt install -y mysql-server
3.修改MySQL服务器root用户的密码和身份认证插件。<newpwd>替换为新的密码。
执行命令,提示输入密码,直接回车就可以了
sudo mysql -uroot -p -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '<newpwd>';" -e "FLUSH PRIVILEGES;"
4.安装PHP。
可以通过sudo apt search php查看所有支持安装的PHP版本,安装其他版本需要修改命令中对应版本号(例如:安装PHP8.1需修改命令sudo apt install -y php8.1 php8.1-fpm php8.1-mysql)。
我们这里安装php8.4
#安装software-properties-common包,并添加PPA仓库ppa:ondrej/php
sudo apt update && sudo apt install -y software-properties-common && sudo add-apt-repository -y ppa:ondrej/php
#安装PHP 8.4及相关组件,包括FPM和MySQL扩展
sudo apt install -y php8.4 php8.4-fpm php8.4-mysql
5.验证LNMP环境。
a.查询php-fpm配置文件默认监听地址,<version>需要替换为您的PHP版本(例:PHP8.4需要将<version>替换为8.4)。
sudo grep '^listen =' /etc/php/8.4/fpm/pool.d/www.conf

如果返回sock文件地址说明默认监听sock文件。
如果返回127.0.0.1:9000说明默认监听本地9000端口。
b.使用tee命令编辑/etc/nginx/conf.d/default.conf文件添加PHP转发规则,需要替换为您的监听地址(如果是sock文件需要在地址前方增加unix:)
#移除默认站点配置
sudo rm -f /etc/nginx/sites-enabled/*
#写入配置文件
sudo tee /etc/nginx/conf.d/default.conf <<-'EOF'
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
location / {
index index.php index.html index.htm;
}
location ~ .php$ {
root /usr/share/nginx/html;
fastcgi_pass unix:/run/php/php8.4-fpm.sock;#这里要修改为上面查询到的目录
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
EOF
c.重启Nginx服务使修改后的配置文件生效。
sudo systemctl restart nginx
d.使用tee命令在路径/usr/share/nginx/html下新建test.php 的 PHP 文件,并添加用于测试数据库连接的代码。(<username>替换为数据库用户名,<password>替换为数据库密码)。
sudo tee /usr/share/nginx/html/test.php <<-'EOF'
<?php
$servername = "localhost";
$username = "<username>"; ##修改为数据库用户名
$password = "<password>"; ##修改为数据库新设置的密码
$conn = new mysqli($servername, $username, $password);
if ($conn->connect_error) {
die("fail: " . $conn->connect_error);
}
echo "success\n";
?>
EOF
e.在本地物理机上使用浏览器访问http://ECS实例公网IP/test.php,返回success说明PHP代理设置成功并成功连接MySQL数据库。
部署wordpress
确认安全组放行80 22端口,且绑定公网IP
前面我们已经搭建了lnmp环境,现在可以准备安装wordpress了
1.配置wordpress数据库
a.运行以下命令,进入MySQL数据库。
mysql -u root -p
b.运行以下命令,为WordPress网站创建一个名称为wordpress的数据库。
create database wordpress;
c.运行以下命令,创建一个新用户user管理WordPress数据库,新用户密码为PASSword123.。 #可以自行更改密码
create user 'user'@'localhost' identified by 'PASSword123.';
d.运行以下命令,赋予用户对数据库wordpress的全部权限。
grant all privileges on wordpress.* to 'user'@'localhost';
e.运行以下命令,使配置生效。
flush privileges;
exit; ##退出数据库
2.下载WordPress,并移动至网站根目录。
a.运行以下命令,进入Nginx网站根目录,下载WordPress压缩包。
cd /usr/share/nginx/html
sudo wget https://cn.wordpress.org/wordpress-6.8.2-zh_CN.zip
b.运行以下命令,安装unzip命令,解压文件
sudo apt install unzip -y
sudo unzip wordpress-6.8.2-zh_CN.zip
c.运行以下命令,将WordPress安装目录下的wp-config-sample.php文件复制到wp-config.php文件中,并将wp-config-sample.php文件作为备份。
cd /usr/share/nginx/html/wordpress
sudo cp wp-config-sample.php wp-config.php
3.修改WordPress配置文件。
a.编辑wp-config.php文件
sudo vim wp-config.php
找到下述内容,并进行修改
// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
/** WordPress数据库的名称 */
define('DB_NAME', 'wordpress');
/** MySQL数据库用户名 */
define('DB_USER', 'user');
/** MySQL数据库密码 */
define('DB_PASSWORD', 'PASSword123.');
/** MySQL主机 */
define('DB_HOST', 'localhost');
4.修改Nginx配置文件。
sudo vi /etc/nginx/conf.d/default.conf
在server大括号内,将root后的内容替换为WordPress根目录。
本示例中WordPress的根目录为/usr/share/nginx/html/wordpress。

重新启动nginx服务
sudo systemctl restart nginx
5.安装并登录WordPress网站。
- 在本地物理机上使用浏览器访问
http://ECS实例公网IP,进入WordPress安装页面。
后续内容补充
问题:
1.wordpress无法安装插件
原因:wordpress文件权限不够
sudo chown -R www-data:www-data /usr/share/nginx/html/wordpress
sudo chmod -R 755 /usr/share/nginx/html/wordpress
sudo find /usr/share/nginx/html/wordpress -type d -exec chmod 755 {} \;
sudo find /usr/share/nginx/html/wordpress -type f -exec chmod 644 {} \;
2.当上传主题文件时,文件安装网页直接跳转无法访问
原因:PHP 资源限制
a.修改wordpress对应nginx配置文件
vim /etc/nginx/conf.d
在 `server { ... }` 区块中任意位置(通常放在 `server_name` 下方)加入这一行:
client_max_body_size 64M; ##可根据自身情况调节
b.检查配置语法并重载 Nginx
sudo nginx -t
sudo systemctl reload nginx
c.同步调整 PHP 限制
sudo vim /etc/php/8.4/fpm/php.ini
找到并修改:
upload_max_filesize = 64M
post_max_size = 64M
保存后重启 PHP-FPM:
sudo systemctl restart php8.2-fpm
3.发布文章字数较多时,文章发布失败
原因:数据库max_allowed_packet值太小
a.修改数据库配置文件
vim /etc/mysql/mysql.conf.d/mysqld.cnf

4.使用makrdown相关插件时,网站无法访问了
原因:PHP Fatal error: Uncaught Error: Call to undefined function MarkupMarkdown\Parsedown\mb_encode_numericentity()
```
a.需要安装扩展模块 mbstring
sudo apt install php8.4-mbstring -y
sudo systemctl restart php8.4-fpm
```
原因:PHP Fatal error: Uncaught Error: Call to undefined function MarkupMarkdown\Parsedown\mb_encode_numericentity() in /usr/share/nginx/html/wordpress/wp-content/plugins/markup-markdown/MarkupMarkdown/Parsedown/Extra.php:493
b.主题与插件发生冲突,删除插件或更换主题,我这里是删除插件
##进入到wordpress插件目录,删除插件目录
cd /usr/share/nginx/html/wordpress/wp-content/plugins/
rm -rf import-markdown