Debian12 上部署 LNMP 环境并安装 WordPress
发布于: 2024-09-06 19:33:45浏览量: 74次服务器:阿里云ECS 2H2G 3M
操作系统:Debian 12.6 64位
Nginx:1.22.1
MySQL:8.4.2
PHP:8.2
WordPress:6.5.5
管理工具:Xshell, Xftp, Navicat
记录一下使用 LNMP + WordPress 建站的过程,镜像源和一些常用工具阿里云的系统镜像已经配置好了,这里就不作详细说明了。
-
安装 MySQL
首先,我们先从 MySQL 官网下载安装包
cd /home
wget https://repo.mysql.com/mysql-apt-config_0.8.32-1_all.deb
dpkg -i mysql-apt-config_0.8.32-1_all.deb
在弹出的选项中直接选择 OK
再更新一下软件包列表
apt clean && apt update
开始安装 MySQL
apt install -y mysql-server
设置 root 用户的密码
MySQL 安装完成后,执行安全初始化脚本
sudo mysql_secure_installation
// 输入 root 用户的密码
Enter password for user root: ********
// 是否安装验证密码组件?
Would you like to setup VALIDATE PASSWORD component? No
// 是否更改 root 用户的密码
Change the password for root? No
// 是否删除 MySQL 自带的匿名用户
Remove anonymous users? Yes
// 是否禁止 root 用户远程登录
Disallow root login remotely? Yes
// 是否移除测试数据库
Remove test database and access to it? Yes
// 是否重新加载权限表
Reload privilege tables now? Yes
如果想要用 root 用户远程登录 MySQL 数据库,需要执行以下命令:
// 使用 root 用户登录 MySQL 数据库
mysql -u root -p
// 允许 root 用户远程登录
update mysql.user t set t.host = '%' where t.user = 'root';
// 刷新权限表
FLUSH PRIVILEGES;
// 退出
exit;
然后确保服务器的安全组策略允许 80, 443, 3306 端口的访问,接下来在本地测试一下能否连接数据库,我这里用的是 Navicat
现在需要手动新建一个数据库
数据库名称:wordpress
字符集:utf8mb4
排序规则:utf8mb4_0900_ai_ci
// MySQL 命令
ALTER DATABASE 'wordpress' CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_0900_ai_ci';
SSL 配置
我这里把证书(cert.pem)和私钥(cert.key)放在了 /home/l4kkS41/ssl
目录下(需要自己手动创建目录)
上传 WordPress
我这里用 Xftp 把 WordPress 放在了 /home/l4kkS41/WordPress
目录下(需要自己手动创建目录)
Nginx 安装和配置
// 安装 Nginx
apt install -y nginx
// 删除默认配置
rm /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
根据自己的情况修改 server_name
、root
、ssl_certificate
和 ssl_certificate_key
,最后把修改好的文件放在 /etc/nginx/conf.d
目录下
// wordpress.conf
server {
listen 80;
listen [::]:80;
server_name example.com;
return 301 https://$host$request_uri;
}
server {
listen 80;
listen [::]:80;
server_name example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
root /home/l4kkS41/WordPress;
server_name example.com;
index index.php index.html index.htm;
ssl_certificate /home/l4kkS41/ssl/cert.pem;
ssl_certificate_key /home/l4kkS41/ssl/cert.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305";
add_header X-Content-Type-Options "nosniff";
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header Referrer-Policy "no-referrer-when-downgrade";
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
location / {
try_files $uri $uri/ /index.php?$args;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location = /robots.txt { allow all; }
location ~* \.(7z|zip|rar|tar|gz|bak|conf|log|txt|sql)$ {
deny all;
}
autoindex off;
}
PHP 安装和配置
// 安装 PHP
apt install -y php-fpm php-curl php-imagick php-intl php-mbstring php-mysql php-xml php-zip
// 修改配置
vim /etc/php/8.2/fpm/pool.d/www.conf
// 把对应的配置修改为
listen = 127.0.0.1:9000
listen.allowed_clients = 127.0.0.1
目录权限
chown -R www-data:www-data /home/WordPress
chmod -R 755 /home
服务重启
// 重启 PHP 服务
systemctl restart php8.2-fpm
// 重载 nginx 配置
nginx -s reload
安装 WordPress
数据库名:wordpress
用户名:root
密码:********
数据库主机:localhost
表前缀:wp_
然后根据提示填写基本信息,最后点击「安装WordPress」,等待安装完成即可。