以下所有经历均发生在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 ./*
参考链接: