起因,原博客搭建毒瘤宝塔面板的Dockers内,一月份就已经准备在现服务器上重新搭建一遍网站,将博客迁移过来。
然后……拖延症晚期……
接着大概在三月份左右,图床自用的图床挂掉了,导致网站内部分图片也挂掉了,但是当时忘记网站图片使用的是图床上的图片,且一直咕咕咕,导致没有发现网站图片挂了。前两天在群里被群友提醒网站出事了才想起来。
然后就顺手把网站迁移了。
本次使用阿里云的轻量云服务器,Linux发行版为RockyLinux8.6。
部署LNMP(Linux、Nginx、MySQL/MariaDB、PHP)
Nginx
安装Nginx
sudo yum install epel-release -y
sudo yum install nginx -y
启动并启用Nginx
sudo systemctl start nginx
sudo systemctl enable nginx
检查Nginx状态
sudo systemctl status nginx
MariaDB
安装
sudo yum install mariadb-server mariadb -y
启动并启用Maria DB
sudo systemctl start mariadb
sudo systemctl enable mariadb
安全配置MariaDB
sudo mysql_secure_installation
按照提示设置root密码、删除匿名用户、禁止root远程登录等。
PHP
安装PHP及其Nginx模块
sudo yum install php php-fpm php-mysqlnd -y
sudo yum install php-mysqli php-mbstring php-gd php-json php-curl -y
编辑PHP-FPM配置文件,将用户和组更改为Nginx
sudo nano /etc/php-fpm.d/www.conf
找到以下行并修改:
user = nginx
group = nginx
启动并启用PHP-FPM
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
创建数据库
进入数据库操作
mysql -u root -p
进入数据库后,创建一个数据库,并设定用户名(your_username),密码(your_password),数据库名(your_database_name)
CREATE DATABASE your_database_name;
CREATE USER 'your_username'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_username'@'localhost';
FLUSH PRIVILEGES;
EXIT;
配置SSL证书
安装Certbot
sudo yum install certbot python3-certbot-nginx -y
获取并安装 SSL 证书
其中your_domain.com改为你的域名
sudo certbot --nginx -d your_domain.com
按照提示操作,Certbot 会自动修改 Nginx 配置文件以启用 HTTPS,并重启 Nginx 服务。
配置Nginx
创建网站文件夹,可自行更改为其他目录
mkdir /home/typecho
创建站点配置文件
sudo nano /etc/nginx/conf.d/typecho.conf
typecho.conf的内容
server {
listen 80;
server_name andyarno.top;
# 重定向 HTTP 请求到 HTTPS
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name andyarno.top;
root /home/typecho; #网站根目录
index index.php index.html index.htm;
ssl_certificate /etc/letsencrypt/live/andyarno.top/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/andyarno.top/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
try_files $uri $uri/ /index.php?$args;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /home/typecho; #网站根目录
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# 配置静态资源
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
access_log off;
}
# 配置上传目录
location /usr/uploads {
alias /home/typecho/usr/uploads;
autoindex off;
sendfile on;
sendfile_max_chunk 1m;
}
}
重新加载nginx配置
sudo systemctl reload nginx
创建一个info.php检验是否配置成功
将命令中的/home/typecho替换成自己的网站目录
echo "<?php phpinfo(); ?>" | sudo tee /home/typecho/info.php
访问IP/info.php,若可以看到PHP信息页面,则配置成功。
安装typecho
cd /home/typecho
sudo wget https://github.com/typecho/typecho/releases/latest/download/typecho.zip
unzip typecho.zip
rm -f typecho.zip
sudo chown -R nginx:nginx /home/typecho
sudo chmod -R 755 /home/typecho
访问网站,根据网站指引安装typecho