2023年8月

源于上周去检查车祸后的肺部慢性肺炎,突然奇想去进行一次洗牙,其实当初洗牙的目的是为了美白,但预约完毕后,发现主要用于处理牙垢。

上周已抽血化验,这周二直接杀过去就可以,还是上次的医生。

洗牙过程整体还行,在未开始前存在害怕,洗牙过程对原本敏感的牙齿有影响,明显能够感觉到痛,而其它的,基本可以出于无感,洗牙过程会出血,洗好以后牙齿有异样的感觉。

就医,特别是当躺在手术床上,任由别人进行处置时,内心是害怕的,此时人和动物是没差别的,完全可以当成是兽,医生也可以是兽医,只是对待方式不一致。


为了记录一些自己的事情,再使用了notion、wolai以及其他一些工具后,还是习惯于搭建自己的博客,故才有了这些记录。建议切换到root用户进行操作。

一、Nginx环境搭建

此部分内容可参考上一篇文章:Nginx配置和SSL证书配置(ACME)

二、PHP环境搭建

此步仅需安装PHP环境搭建,此处安装Mysql和SQLite3两类扩展

apt install -y php7.4-cli php7.4-fpm php7.4-cgi php7.4-mysql php7.4-curl php7.4-json php7.4-mbstring php7.4-imagick php7.4-xml php7.4-zip php7.4-opcache php7.4-sqlite3

三、上传typecho文件即可

下载压缩包并解压到/var/www/html文件夹即可。

鉴于近期1M的华盛顿小鸡访问速度太慢,申请了Azure的机器(Debian)来重新部署,因此需要搭建一套Typecho,首先要做的就是完成基础Nginx的部署和SSL证书的访问。以下操作建议切换至root,避免权限问题。

一、Nginx环境搭建。

目标:通过IP或者域名能够以80端口打开Nginx初始页面

1、更新系统环境

apt update

2、自动化安装Nginx

apt install nginx

3、此时已能正常打开页面(index.html)

二、配置SSL证书并自动更新

该章节内容主要基于Githubhttps://github.com/acmesh-official/acme.sh进行执行,适当根据需要做了部分调整。

1、执行acme.sh,将email后的邮箱调整为自己邮箱

curl https://get.acme.sh | sh -s [email protected]

执行完毕该脚本后,可看到①当前目录下生成了.acme.sh/;②自动创建了cronjob定任务, 每天 0:00 点自动检测所有的证书并更新。

2、生成证书,本初主要采用手动DNS方式

Ⅰ、调用发行命令获取CDN(Cloudflare)所需配置信息,将mydomain.com调整为自己的域名。并在Cloudflare添加一条TXT记录(见下图1、图2)。若出错则执行source ~/.bashrc

acme.sh --issue --dns -d mydomain.com --yes-I-know-dns-manual-mode-enough-go-ahead-please

1692373773344383.png

图1

1692373887236508.png

图2


Ⅱ、Cloudflare配置完并保存后,执行renew命令,则可生成证书

acme.sh --renew -d mydomain.com --yes-I-know-dns-manual-mode-enough-go-ahead-please

Ⅲ、至此证书申请环节已完成,放置在域名文件夹下

三、Nginx配置SSL

1、将上一步生成的证书拷贝到Nginx目录下。新建文件夹并执行命令。

touch /etc/nginx/ssl_key/
acme.sh --install-cert -d example.com --key-file /etc/nginx/ssl_key/key.pem --fullchain-file /etc/nginx/ssl_key/cert.pem --reloadcmd "systemctl force-reload nginx"

2、修改ngxin配置文件。此处需注意默认配置文件的defaul情况。此处采用新建配置文件形式。

cd /etc/nginx/conf.d/
touch my_blog.conf

3、调整配置文件内容,本配置以php为准,因用于搭建typecho。

server {
    # 监听HTTP默认的80端口
    listen 80;
    # 如果80端口出现访问该域名的请求
    server_name myexample.com;
    # 将请求改写为HTTPS(这里写你配置了HTTPS的域名)
	rewrite ^(.*)$ https://www.leaou.com;
}

server {
	listen 443 ssl;#设置SSL功能
	server_name leaou.com www.leaou.com;  #localhost修改为证书绑定的域名
	root /var/www/html;
	index index.php;
		
	ssl_certificate /etc/nginx/ssl_key/cert.pem;   #证书的文件名
	ssl_certificate_key /etc/nginx/ssl_key/key.pem;   #证书的密钥文件名
	ssl_session_timeout 5m;
	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;  #加密套件
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;   #配置协议
	ssl_prefer_server_ciphers on;   

	access_log /var/log/nginx/leaou.com_access.log;
	error_log /var/log/nginx/leaou.com_error.log;

	client_max_body_size 64M;
		
    location = /favicon.ico {
		log_not_found off;
		access_log off;
    }

	location = /robots.txt {
		allow all;
       	log_not_found off;
       	access_log off;
	}

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        try_files $uri =404;
        include /etc/nginx/fastcgi_params;
        fastcgi_read_timeout 3600s;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 128k;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_index index.php;
    }
	
    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        expires max;
        log_not_found off;
    }
}

4、重启Nginx即可

systemctl restart nginx

至此已完成Nginx的配置和正常SSL的证书访问,之后也可通过Cloudflare再次进行配置。