前言
前面用 Docker-Compose 部署了 WordPress ,用起来不顺手,于是来试试 Typecho
很多东西有之前的文档作为基础了,所以这次不详细展开了,主要记录 docker-compose.yml
文件和 nginx的配置文件
,完整的过程可以参考:Docker-Compose 快速部署 WordPress
开始
1、创建目录
1
| mkdir typecho && cd typecho && touch docker-compose.yml && mkdir volumes
|
2、修改 yml 文件
docker-compose.yml
的内容需要自己修改,尝试的话用下面默认的也行
(目前 php-fpm
我只找到了这个镜像的 php 默认用户是 www-data
,其它的大部分都是Daemon
用户,即守护进程,那么在配置网站目录权限的时候还要给其它用户一个写的权限,要不安装的时候提示上传目录无法写入,下载第三方主题也要修改一下其它用户的写权限)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| version: '3.9'
networks: typecho:
services: mysql: image: mysql:5.7 container_name: mysql volumes: - ./volumes/mysql:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: typecho MYSQL_USER: typecho MYSQL_PASSWORD: typecho networks: - typecho
php: image: tsund/php:7.2.3-fpm restart: always networks: - typecho volumes: - ./volumes/typecho:/var/www/html environment: - TZ=Asia/Shanghai depends_on: - mysql
nginx: depends_on: - php image: nginx container_name: nginx volumes: - ./volumes/typecho:/var/www/html - ./volumes/nginx/conf.d:/etc/nginx/conf.d networks: - typecho ports: - '80:80' - '443:443' restart: always
|
3、配置 Nginx
先前台运行一次容器
当屏幕不再有输出的时候 Ctrl + C
停止运行,开始配置 Nginx
1
| cd volumes/nginx/conf.d/ && mkdir certs && touch typecho.conf
|
编辑 typecho.conf
文件,需要修改域名为自己的域名
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| server { listen 80; listen [::]:80; # 自己的域名 server_name example.com; # 自己的域名 rewrite ^(.*) https://example.com$1 permanent; } server { listen 443 ssl http2; listen [::]:443 ssl http2;
# 自己的域名 server_name example.com;
root /var/www/html; index index.php;
access_log /var/log/nginx/typecho_access.log main;
# SSL证书和key的绝对路径,只需要修改最后的文件名 # 对应的就是宿主机 /volumes/nginx/conf.d/certs 目录下的文件 ssl_certificate /etc/nginx/conf.d/certs/example.com.crt; ssl_certificate_key /etc/nginx/conf.d/certs/example.com.key;
ssl_session_cache shared:SSL:1m; 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;
if (!-e $request_filename) { rewrite ^(.*)$ /index.php$1 last; }
location ~ .*\.php(\/.*)*$ { fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
}
|
4、配置 SSL
SSL 证书放到 /volumes/nginx/conf.d/certs
目录下
具体可以参考:使用 acme.sh 快速申请 SSL 证书
5、下载 Typecho
官网地址:http://typecho.org/download
在 /typecho/volumes/typecho
目录下下载
1
| wget https://github.com/typecho/typecho/releases/latest/download/typecho.zip && unzip typecho.zip && rm -f typecho.zip LICENSE.txt
|
设置 typecho 目录的权限
1
| chown -R www-data:www-data typecho
|
运行
访问网站
1、配置
2、修改后台地址
修改 config.inc.php
文件
找到 define('__TYPECHO_ADMIN_DIR__', '/admin/');
这行
1 2 3 4 5 6 7 8 9
|
define('__TYPECHO_ADMIN_DIR__', '/admin/');
define('__TYPECHO_ADMIN_DIR__', '/blog/');
|
3、删除安装目录
1
| rm -rf install install.php
|
4、关闭 XMLRPC 接口
如果不使用第三方客户端,仅仅使用网页后台写作的话,关闭 XMLRPC 接口
在网站后台:设置—>基本—>XMLRPC 接口,选择关闭