已经记不得这个博客是哪年开始做的了,也懒得去翻第一篇文章
当时有一键脚本,跳过了很多坑,依托百度谷歌的帮助,摇摇摆摆建立起了自己的博客
现在2024年了,因为oneinstack投毒事件,不敢再用一键脚本了,全部自己手搓,花了两天时间,在这过程中,chatgpt给了巨大的帮助,谢谢你。
下边是当时做的随手笔记,敏感信息一律xxx代替了
一,dd新系统,安装php-fpm和nginx
二,参考oneinstack的目录结构,建立/data/www目录存储博客文件,并把www目录设定为www-data组和用户,
用这个命令:chown -R www-data:www-data /data/www
www-data这个用户是安装nginx后自动生成的
三,安装mysql,
apt install mysql-server
systemctl start mysql
systemctl status mysql
mysql_secure_installation
安装位置:MySQL 的程序文件位于 /usr/sbin/ 和 /usr/bin/。
数据存储位置:MySQL 的数据库数据通常存储在 /var/lib/mysql/。
配置文件:主要配置文件位于 /etc/mysql/。
四,登录mysql
mysql -u root -p
提示输入密码,由于mysql刚才配置的时候默认使用了auth_socket用户认证插件,不需要密码也能登录
所以进入mysql后,还需要将用户认证插件改为mysql_native_password才能设置密码,而且wordpress也需要用密码连接mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxx';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxx';
新建一个wordpress的数据库:
CREATE DATABASE wordpress_db;
新建一个这个数据库的用户名和密码:
CREATE USER 'wordpress_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxx';
CREATE USER 'wordpress_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxx';
然后授予权限:
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wordpress_user'@'localhost';
FLUSH PRIVILEGES;
五,下载wordpress,编辑wp-config.php
unzip latest.zip -d ./iwilz.comcp wp-config-sample.php wp-config.php
nano wp-config.php
填入数据库名称账号密码
chown -R www-data:www-data /data/www
(因为刚才的操作是在root用户下)
六,编辑nginx
抄作业的时候,记得:
server {
listen 80 default_server;
listen [::]:80 default_server;
这个“defualt_server”一定要改掉,系统可以共享端口,但是不能有两个以上的default_server
可以改为:
server {
listen 80;
listen [::]:80;
ln -s /etc/nginx/sites-available/iwilz.com /etc/nginx/sites-enabled/
走到这一步,可能网站还是无法访问,比如出现http 500错误
排查步骤:
1,检查权限,再次执行chown -R www-data:www-data /data/www
2,其实这里边有个误会,我对比了oneinstack的设置,www这个目录本身,还是root的
3,最后发现,原来是浏览器默认使用了https连接,但是我网站还没配置好https,强制使用http连接就可以连上了(可以使用火狐)
七,查漏补缺
打开网站提示缺少mysqli
apt install php8.3-mysqli
用上面这个命令装好,后边还陆陆续续发现其他缺乏的插件,都装上:apt install php-curl
apt install php-xml
apt install php-gd
然后重启nginx和php
sudo systemctl restart php8.3-fpm
sudo systemctl restart nginx
八,用acme.sh安装证书
curl https://get.acme.sh | sh -s email=me@home.com
acme.sh --issue -d iwilz.com --webroot /data/www/iwilz.com/
~/.acme.sh/acme.sh --issue -d iwilz.com --webroot /data/www/iwilz.com/
~/.acme.sh/acme.sh --install-cert -d iwilz.com \
--key-file /data/cert/iwilz.com/key.pem \
--fullchain-file /data/cert/iwilz.com/cert.pem \
--reloadcmd "service nginx force-reload"
手动修改iwilz.com.conf
添加:
listen 443 ssl;
listen [::]:443 ssl;
ssl_certificate /data/cert/iwilz.com/cert.pem;
ssl_certificate_key /data/cert/iwilz.com/key.pem;
# 推荐的 SSL 配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers HIGH:!aNULL:!MD5;
八,开始配置wordpress
胖宝
admin
xxx
还原备份的时候,出现错误:出现 PHP 致命错误 ( Error): Undefined constant "CURLOPT_VERBOSE"
那是因为缺少cURL扩展,可通过以下命令安装
apt install php-curl
九,备份当前系统
dd if=/dev/sda bs=4M | gzip | ssh root@1.2.3.4 "cat > /root/oracle_backup.img.gz"
十,排错
此站点遇到了致命错误。
咋整?
WordPress 的调试模式可以通过编辑 wp-config.php 文件启用:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors', 0);
启用后,所有的错误和警告将被记录在 wp-content/debug.log 文件中。
查看debug.log后发现是有一个xml扩展没有装,而且之前的主题跟现在的php有冲突,之前的主题版本太老了:Kratos-2.7.3
删掉这个主题,然后通过https://iwilz.com/wp-admin进入后台
然后上传文件,提示太大,还需要更改:
1. 修改 Nginx 配置
编辑 Nginx 的配置文件(通常位于 /etc/nginx/nginx.conf 或单独的站点配置文件中,如 /etc/nginx/sites-available/your-site.conf):
在 http、server 或 location 区块中,添加或修改以下指令来增加允许的最大上传大小:
client_max_body_size 64M;
你可以根据需要调整 64M 为更大的值。
我是改的nginx.conf,没有更改自己网站的conf
2. 修改 PHP 配置
编辑 PHP 的配置文件(通常位于 /etc/php/8.3/fpm/php.ini 和 /etc/php/8.3/cli/php.ini 中):
sudo nano /etc/php/8.3/fpm/php.ini
upload_max_filesize = 64M
post_max_size = 64M
点击wordpress站点后,首页正常,但是点击文章链接出现了404 Not Found,我估计还得改个设置,叫什么伪静态设置,才能正常出现页面
1. 配置 Nginx 伪静态规则
首先,编辑你的网站的 Nginx 配置文件(位于 /etc/nginx/sites-available/your-site.conf):
sudo nano /etc/nginx/sites-available/your-site.conf
在 server 区块的 location / 部分,添加以下配置:
location / {
try_files $uri $uri/ /index.php?$args;
}
这个配置会让 Nginx 尝试按照请求的路径查找文件,如果找不到,则将请求转发给 index.php,WordPress 会处理请求并显示正确的页面。
2. 设置 WordPress 固定链接
接下来,在 WordPress 后台设置中启用固定链接:
登录到你的 WordPress 管理后台。
进入 设置 > 固定链接。
选择你想要的固定链接结构(例如“文章名称”)。
保存更改。
补充:
1,还有opcache我后来也装了
2,wp-config.php我设置了缓存
这两个都是当时在排错的时候以为性能不足加上去的,哪知根本就不是这个原因而是因为主题不兼容新版php的原因。
文章评论