Docker搭建Typecho博客

admin
2022-02-27 / 0 评论 / 733 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2022年03月11日,已超过944天没有更新,若内容或图片失效,请留言反馈。

博客一直使用firekylin搭建,最近看着typecho活跃度还可以,于是本周末用docker重新搭建了博客。

一、环境说明

操作系统:CentOS7.6

技术:Docker、MySQL、PHP、Nginx

使用工具:Xftp 7、Xshell 7、Notepad++

博客系统:Typecho

二、安装步骤

  1. Docker环境搭建
  2. Docker安装MySQL
  3. Docker安装PHP
  4. Docker安装Nginx

三、遇到问题

  1. 安装mysql、php、nginx时,映射文件路径错误,导致安装好后,找不到文件。
  2. Nginx配置时映射路径错误、80端口自动转发443端口,导致http访问一直追加路径。
  3. 证书路径放置错误。
  4. Typecho初始化安装时,提示"对不起,无法连接数据库,请先检查数据库配置再继续进行安装"。

四、解决方案

  1. 通过docker log 容器,查看日志,一步步解决。
  2. 添加异常提示代码:, $e->getMessage()
  3. instal.php第56行,添加ob_start();
  4. ip地址错误,默认localhost,docker安装时,需要改成公网ip或局域网ip。
  5. 未创建typecho数据库。

Nginx配置文件:

server {
    listen 443 ssl http2 reuseport;
    server_name yanxizhu.com  www.yanxizhu.com;
    root /var/www/html/yanxizhu.com;
    index index.php;
    
    ssl on;
    ssl_certificate /etc/nginx/conf.d/自己证书.crt;
    ssl_certificate_key /etc/nginx/conf.d/自己证书key.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;

    access_log /var/log/nginx/typecho_access.log main;

    if (!-e $request_filename) {
        rewrite ^(.*)$ /index.php$1 last;
    }

    location ~ .*\.php(\/.*)*$ {
        include        fastcgi_params;
        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;
        fastcgi_index  index.php;
        fastcgi_pass   phpfpm:9000;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
    }
}
server {
    listen       80;
    server_name  yanxizhu.com  www.yanxizhu.com;
    rewrite ^(.*) https://yanxizhu.com$1 permanent;
}
6

评论 (0)

取消