Deprecated: Function create_function() is deprecated in /www/wwwroot/zhouzexin.cn/usr/plugins/AntiSpam/Plugin.php on line 131
博客搬回Linode,解决iptables错误以及Typecho的404伪静态问题 - zhouZExin 's Blog
记录 创建于2014年06月21日 [1,351]
博客搬回Linode,解决iptables错误以及Typecho的404伪静态问题

前段时间觉得Digitalocean的VPS不给力了,速度变慢了许多。碰巧Linode推出了每月10美金的低端主机,觉得还是用回Linode比较好。

Digitalocean的VPS是我去年8月份左右挖掘的,每月5美金的价格非常吸引人,而且当时的稳定性和速度也非常不错。但今年3月份以来,开始出现访问速度变慢,服务器每晚固定时间段连接不上的情况(VPN)。直到前几天viekee跟我说最近Do不行了,考虑换回Linode

viekee的意见是先测几天Linode美国和日本服务器的速度和稳定性。其实我有点按捺不住,我有个习惯就是不喜欢在手头上留太多待办的事,碰巧前几天是周末,直接就绑信用卡买了。

配置Centos系统和lnmp环境我已经非常熟悉了,本以为最多不超过两小时就能把事情搞掂,但这天发生两个问题。

首先是VPN的问题:

同样是Centos6.5系统,Linode这边安装一键VPN会无法使用。查看了一下,发现报错是这样的:

[root@zhouzexin.cn ~]# service iptables start
Flushing firewall rules:                                   [  OK  ]
Setting chains to policy ACCEPT: security raw nat mangle fi[FAILED]
Unloading iptables modules:                                [  OK  ]
Applying iptables firewall rules:                          [  OK  ]

就是那行的FAILED,导致VPN无法使用。
经爬文得知这个问题主要是iptables版本和内核对不上导致的。而Linode使用的是自己修改过的内核。

解决方法:
这个问题的修复需要在/etc/init.d/iptables,找到set_policy函数,在case "$i" in与raw)之间添加一个security选项,如下所示:

 for i in $tables; do
     echo -n "$i "
     case "$i" in
        security)
            $IPTABLES -t security -P INPUT $policy \
                && $IPTABLES -t security -P OUTPUT $policy \
                && $IPTABLES -t security -P FORWARD $policy \
                || let ret+=1
             ;;
         raw)
             $IPTABLES -t raw -P PREROUTING $policy \
                 && $IPTABLES -t raw -P OUTPUT $policy \
                 || let ret+=1
             ;;

随后重启pptpd服务:

service pptpd stop
service pptpd start

当然你比较懒不想记这些代码的,可以直接reboot服务器。

备注:一键VPN的参考资料最大化利用起你的VPS——在Centos6.X上一键搭建VPN

然后是Typecho的伪静态问题:

这个问题跟lnmp1.1-full版有关(怎么感觉lnmp每个版本都有问题?之前1.0的问题则是导致wordpress的主题列表不显示):
Typecho安装好以后,可以访问Typecho博客的首页,但是当你点击任何一个连接以后则跳出404错误。

这个问题让我很头疼:我刚用typecho不久,对typecho的了解不够深,而且网上也很难查到相关的解决方法!但我想到这或许跟伪静态有关系:因为第一次安装typecho的时候我没有对vhost设置伪静态,然后出现了404。但这次我在vhost上设置了typecho,为什么还会404呢?搞了很久,未果。当时我还以为自己怀疑的方向错了呢!休息的时候跟viekee聊了一下,他说lnmp1.1的伪静态似乎有bug,在论坛看到有人讨论。

于是我开始调查这个bug,终于找到解决方法:

在/usr/local/nginx/conf/vhost/里,找到你使用中的域名.conf,能看到location部分是这样的:

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

要注销掉第四行,取消注释倒数第二行,如下面所示:

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

改完保存,重启lnmp:

/root/lnmp restart

懒鬼可以直接reboot吧。

这次问题就记录到这里。搬家相关资料可查阅:记录「VPS搬家」需要注意的详细事项,其实typecho的搬家方法是跟wordpress通用的(其实绝大部分网站都通用)。

这已经是最后一篇文章
谈谈我在ClashofClans中使用过的阵形
这已经是最新一篇文章
Typecho实现全站式Ajax的方法
添加新评论
登录管理
︿