作者声明:在本文发布时间,本人完整测试了以下所有指令均可正常使用,所有服务能够成功部署。但软件更新迭代速度较快,如软件配置与本文存在差异,以其官方手册为准。

在Ubuntu24.04上部署LNMP并安装WordPress

LNMP系统架构:

  • Linux:操作系统————Ubuntu24.04
  • Nginx:Web服务器————Nginx1.24.0
  • MySQL:数据库————MySQL8.0.45
  • PHP:后端运行环境————PHP8.3

1 安装前的准备

使用root用户登录服务器,如果没有root权限,需要在命令前加上sudo

1 更新软件源

1
apt update

2 更新软件包并应用安全更新

1
apt upgrade

注意:

时再次执行apt update我们可能发现还有软件包可以升级

但是执行apt upgrade或apt dist-upgrade会提示这些软件包会被保持原版本

此时我们可以执行apt list --upgradable列出这些软件包并执行apt install 软件包名来将这些软件包强制更新至最新

2 安装PHP

1
apt install php-fpm php-mysql php-gd php-curl php-xml php-mbstring php-zip php-intl php-imagick -y

3 安装并配置NGINX

1 安装NGINX

1
apt install nginx -y

2 通过浏览器访问服务器外网ip显示nginx界面

注意:阿里云等服务器厂商需要在安全组中放行入方向的80端口

3 新建站点配置文件

1
cp /etc/nginx/sites-available/default /etc/nginx/sites-available/example.com

注意:此处example.com可以是准备使用的域名或者网站的名字,任意皆可

4 删除默认配置文件的软链

1
rm -rf /etc/nginx/sites-enabled/default

5 创建新配置文件的软链使其生效

1
ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com

6 配置example.com配置文件

1
vim /etc/nginx/sites-available/example.com

按insert键开始编辑,按esc键结束输入,输入:wq并回车保存并退出

修改网站根目录

1
root /var/www/html; -> root /var/www/example.com;

修改网站名称

1
server_name _; -> server_name example.com;

使nginx支持php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
index index.html index.htm index.nginx-debian.html; -> index index.php index.html index.htm index.nginx-debian.html;

#location ~ \.php$ {
#          include snippets/fastcgi-php.conf;
#
#          # With php-fpm (or other unix sockets):
#          fastcgi_pass unix:/run/php/php7.4-fpm.sock;
#          # With php-cgi (or other tcp sockets):
#          fastcgi_pass 127.0.0.1:9000;
#}

->

location ~ \.php$ {
          include snippets/fastcgi-php.conf;
#
#          # With php-fpm (or other unix sockets):
          fastcgi_pass unix:/run/php/php8.3-fpm.sock;
#          # With php-cgi (or other tcp sockets):
#          fastcgi_pass 127.0.0.1:9000;
}

注意:此处的fastcgi_pass unix:/run/php/php7.4-fpm.sock;修改成fastcgi_pass unix:/run/php/php8.3-fpm.sock;

需要与我们安装的php版本相符,通过ls /run/php查看

7 刷新nginx配置文件

1
nginx -s reload

8 测试

1
2
mkdir /var/www/example.com
tee /var/www/example.com/index.php <<< '<?php phpinfo();?>'

刷新网页出现如下页面说明php生效

注意:测试完成必须删除index.php

1
rm /var/www/example.com/index.php

4 安装并配置mysql

1 安装mysql

1
apt install mysql-server -y

2 登录mysql

1
mysql

mysql的root用户默认通过auth_socket登录,此时不需要输入密码或任意密码都可以正常登入mysql数据库,这是因为auth_socket插件利用了Linux的socket机制来验证用户,依赖于当前用户已经获得了足够的权限

1
SELECT user, host, plugin FROM mysql.user WHERE user='root';

执行以上sql语句验证

如果我们想使用密码登录,可以执行以下sql语句

1
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '<your_strong_password>';

注意:请将<your_strong_password>替换为强密码

输入exit;退出

此时可以使用mysql -uroot -p命令,输入密码登录

3 进行安全性配置

1
mysql_secure_installation

输入mysql的root用户密码(如果之前设置了密码)

是否开启密码检查组件(检查密码的强度)

输入y启用

密码验证策略

输入0代表密码最小长度必须大于等于8个字符

输入1代表密码最小长度必须大于等于8个字符并且是数字,字母,特殊字符混合的

输入2代表密码最小长度必须大于等于8个字符并且是数字,字母,特殊字符混合的,密码不能包含在弱密码字典中

此处我们输入2

是否修改mysql的root用户密码(如果使用auth_socket不会出现此项)

输入n不修改

是否删除匿名用户

输入y删除

是否禁止root用户远程登录

输入y禁止

是否删除测试数据库

输入y删除

最后输入y重新载入配置文件

4、为wordpress新建数据库

登录数据库

创建wordpress数据库

1
create database wordpress;

新建wordpress用户密码

1
create user 'wordpress'@'localhost' identified by '<your_strong_password>';

赋予用户对数据库wordpress的全部权限。

1
grant all privileges on wordpress.* to 'wordpress'@'localhost';

刷新权限使其生效

1
flush privileges;

退出

1
exit;

5 安装wordpress

1 下载wordpress文件

1
curl -L -A "Mozilla/5.0" -o latest-zh_CN.zip https://cn.wordpress.org/latest-zh_CN.zip

2 解压缩

1
2
apt install unzip
unzip latest-zh_CN.zip

3 将wordpress文件复制到网站根目录

1
cp -a wordpress/. /var/www/example.com/

4 更改网站根目录的用户权限

1
2
chown -R www-data:www-data /var/www/example.com
chmod -R 755 /var/www/example.com

5 刷新网页进入wordpress安装界面(如果刷新后报错http500可能是php-mysql没有安装)

点击现在开始

填写数据库名,数据库用户名和密码,点击提交

填写信息并点击安装wordpress

安装成功后即可登录仪表盘对网站进行编辑,输入服务器公网ip可以查看网站主页

6 安装后的配置

安装完wordpress后很多人都希望更换一个漂亮的主题,但是在我们上传主题的时候很有可能会出现以下报错,这是因为请求文件太大导致的nginx报错。

1 修改nginx配置文件

1
vim /etc/nginx/nginx.conf

在http中添加一行

1
client_max_body_size 16m;
1
nginx -s reload

修改php配置文件

1
vim /etc/php/8.3/fpm/php.ini
1
2
post_max_size = 8M -> post_max_size = 16M
upload_max_filesize = 2M -> upload_max_filesize = 16M

在vim中按下/即可进入查找模式,输入要查找的字符串并按下回车。 vim会跳转到第一个匹配。按下n查找下一个

重启php-fpm

1
systemctl restart php8.3-fpm.service

再次上传主题文件即可上传成功

7 总结

至此,我们完成了:

  • LNMP环境搭建
  • 数据库配置
  • WordPress部署
  • 文件上传限制优化

现在我们已经拥有一个完整可用的WordPress站点。