首页 > 服务器技术 > Linux > LNMP1.1/1.2安装后typecho打开后台和页面404问题解决
2016
05-10

LNMP1.1/1.2安装后typecho打开后台和页面404问题解决

LNMP1.1/1.2安装后typecho打开后台和页面404问题解决 - 第1张  | 百天部落
大家可能建站的时候使用的是typecho平台,或者有些从Worepress和Emlog搬到typecho平台来的,安装完生产环境后可能首先会遇到一个问题,就是页面打开错误404,以及后台登录输完账号密码之后也是404不进去。因为typecho使用的是静态化地址,所以你需要配置伪静态才能进行下一步,(这里可能会有一个问题,有的站长原来用的是wordpress或emlog,服务器已经采用了伪静态化,但是为什么还要设置呢,-.- 你要知道他们的伪静态设置方法是有所区别的,所以对症下药)

出现404错误这是因为nginx的设置时没有注意支持pathinfo导致的,也就是说typecho需要pathinfo支持,你需要开启pathinfo

1.如果你是采用LNMP1.1或者1.2安装的环境,而且设置了虚拟主机Vhost,那么

在/usr/local/nginx/conf/vhost/下找到你的typecho站点配置文件(文件名类似xxxxx.conf),然后:
1、确保有“include typecho.conf;”这么一行,并且没有被“#”号注释;
2、用“#”号注释try_files $uri =404;”这一行;
3、取消“#include pathinfo.conf;”这一行前面的的“#”号;
修改正确的话,typecho站点conf配置文件看起来如下:

1
2
3
4
5
6
7
8
9
10
11
    include typecho.conf;  
    #error_page   404   /404.html;  
    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;  
        }

说明:这里只是我的一个环境下的程序路径重启命令,可能跟你的不一样
重启nginx:
#/usr/local/nginx/sbin/nginx -s reload (推荐采用第一种方式重启nginx)
# service nginx restart
或者重启lnmp也行:
# lnmp restart (如果你是用lnmp一键安装的环境就用这个命令,在根目录下执行,这个最方便)

2.如果你是采用LNMP1.1或者1.2安装的环境,没有设置虚拟主机vhost,只是单站点运行,那么

找到/usr/local/nginx/conf/nginx.conf   把nginx配置文件进行修改即可

1、在nginx配置文件中找到server_name并在下方添加if语句这段代码,作用是是rewrite开启伪静态
2、在你的nginx配置中找到include enable-php.conf;将它替换为include enable-php-pathinfo.conf;
3、在/usr/local/php/etc/php.ini 中找到cgi.fix_pathinfo并开启 改为1 cgi.fix_pathinfo = 1,如果第二步修改完后重启nginx之后站点正常了,就没有必要执行这一步了
修改正确的话,nginx局部配置文件看起来如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
server {
listen 80;
server_name XXX;
 
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php$1 last;
}
 
include enable-php-pathinfo.conf;
 
location ~ .*\.(php|php5)?$ {
#fastcgi_pass remote_php_ip:9000;
fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
}

说明:这里只是我的一个环境下的程序路径重启命令,可能跟你的不一样
重启nginx:
#/usr/local/nginx/sbin/nginx -s reload (推荐采用第一种方式重启nginx)
# service nginx restart
重启PHP
#/usr/local/php/sbin/php-fpm restart
或者重启lnmp也行:
# lnmp restart (如果你是用lnmp一键安装的环境就用这个命令,在根目录下执行,这个最方便)

 

最后编辑:
作者:Wien
这个作者貌似有点懒,什么都没有留下。