以下所有经历均发生在Linux系统环境下,笔者并没有使用Windows服务器的经验,故此无法与大家讨论相关问题。
如有疑问,请善用搜索引擎

首先是数据库问题:

1.在确定服务器上文件权限可用的情况下,可以选择Sqlite数据库,方便快捷,这个选项没有遇到什么问题;

2.选择Mysql时,在确定信息填写正确的情况下,发现总是提示数据库连接失败,localhost和域名都不生效

  • 原因:默认数据库typecho没有创建,我一直以为这个步骤是代码里可以实现的。
  • 解决方法:到数据库控制面板提前创建好该数据库即可。

注:不一定非要使用typecho作为数据库名称,只要填写的和你想要使用的数据库一致即可。


Nginx配置问题

1.安装完成后,跳转登录页面发现404问题,默认安装过后typecho的网站路径是这样的:

http://yoursite.com/index.php/archive/postid/
  • 原因:Nginx的伪静态规则没有配置好,需要支持 path-info
  • 解决方法:如果使用的是lnmp.org的一键包,将 include enable-php.conf; 替换为 include enable-php-pathinfo.conf;

附上两个enable-php的配置文件,手动安装Nginx后是没有这两个文件的,需要使用的时候新建一份放到与nginx.conf同目录下即可,内容很简单:

enable-php.conf

        location ~ [^/]\.php(/|$)
        {
            try_files $uri =404;
            fastcgi_pass  unix:/tmp/php-cgi.sock;
            fastcgi_index index.php;
            include fastcgi.conf;
        }

enable-php-pathinfo.conf

        location ~ [^/]\.php(/|$)
        {
            fastcgi_pass  unix:/tmp/php-cgi.sock;
            fastcgi_index index.php;
            include fastcgi.conf;
            include pathinfo.conf;
        }

pathinfo.conf

fastcgi_split_path_info ^(.+?\.php)(/.*)$;
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO       $path_info;
try_files $fastcgi_script_name =404;

参考链接:Github Issue #543


永久链接问题

这个问题和上一个问题相关。

作为强迫症受不了链接URL中的index.php,只喜欢纯净的目录形式的链接/a/b/c/

进入到:

http://yoursite.com/admin/ -> 设置 -> 永久链接

是否使用地址重写功能 选项启用即可,如果提示你的服务器不支持,勾选上刚刚出现的勾选框强制开启即可;

接下来,还需要修改一下配置,否则访问文章页面又会出现404问题;

编辑你的站点配置文件:

server {
    ...

    include enable-php.conf;
    #include enable-php-pathinfo.conf;    //这行用'#'注释掉

    if (-f $request_filename/index.html){
        rewrite (.*) $1/index.html break;
    }
    if (-f $request_filename/index.php){
        rewrite (.*) $1/index.php;
    }
    if (!-f $request_filename){
        rewrite (.*) /index.php;
    }

    ...
}

这里因为增加了新的rewrite规则,所以不需要enable-php-pathinfo.conf的配置了,应该换为最初的enable-php.conf,具体原理看一看配置就可以了。

权限读写问题

本人一直以来会很细心的注意到这点,但混迹于各种技术群的时候,发现到许多同学不会在意这点,他们往往是买了机器后,要么是运营商给了什么用户就用什么用户,要么就是全程root用户。

而使用一些“一键安装”脚本时,脚本又会默认以一个新建用户www来运行web服务器,例如著名的lnmp一键安装,这就会导致下载博客程序后,文件所属信息可能是发布者所用机器的用户,又或者是操作者的root用户,引发了web服务器程序的读写权限问题,所以建议大家一定要注意一下这点。

例如:如果你的web服务器是以www的用户身份运行的,执行以下操作:

cd `your_blog_install_path`
chown -R www:www ./*

参考链接: