typecho博客进入不了后台,提示404
今天安装lnmp非常顺利,安装typecho也非常顺利。但是打开首页后点文章无法查看文章内容。从网上搜了几个答案说是nginx伪静态、pathinfo等问题。于是找了很多方法还是不行,下面说说试过的方法
1:typecho常见问题中说:在某些老版本的php里面,可能还要打开php.ini里的cgi.fix_pathinfo改为cgi.fix_pathinfo = 1,好,我改,改了之后不行
2:有篇博客中说可以直接在conf/vhost/.....com.conf中改,(1)、确保有“include typecho.conf;”这么一行,并且没有被“#”号注释;
(2)、用“#”号注释“try_files $uri =404;”这一行;
(3)、取消“#include pathinfo.conf;”这一行前面的的“#”号;
按照这种方法做了还是不行。我又想是不是那个location那里不对,就改成了location ~ .*\.php(\/.*)*$,改来改去还是不行。
3来论坛搜索,军哥在一篇帖子中说只要1.2上直接include enable-php.conf;替换为include enable-php-pathinfo.conf;我又在上面的基础上改了这里。改到现在我只想说,正确的方法到底是什么呢,不过想搭个博客实在太过困难了吧。
希望有人能给出一套切实可行的方法。
我使用的lnmp是最新的1.2,使用的typecho程序是最新的1.0版本。
谢谢大家的帮助
最后附上我的vhost的nginx那个配置文件
server
{
listen 80;
#listen [::]:80;
server_name www.kuiblog.com kuiblog.com *.kuiblog.com;
index index.html index.htm index.php default.html default.htm default.php;
root/home/wwwroot/www.kuiblog.com;
include typecho.conf;
#error_page 404 /404.html;
#location ~ [^/]\.php(/|$)
location ~ .*\.php(\/.*)*$
{
# comment try_files $uri =404; to enable pathinfo
#try_files $uri =404;
fastcgi_passunix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
include pathinfo.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
access_log off;
} 自己顶。。。:lol 只需要include typecho.conf;
include php-pathinfo.conf;
即可
不需要额外的php的解析的代码
restart或reload nginx就会生效
cgi.fix_pathinfo不能改成1,必须是0 不建议用 /usr/local/nginx/conf/nginx.conf 这个配置文件,可以用 vhost 目录下从新配置
因为这个 include typecho.conf; 不能注销。
而且可以防止别人猜到。 我用的是lnmp1.3+typecho1.0(14.10.10)
我在我的vhost配置文件domain.name.com.conf(示例)中并没有发现直接的php相关设置,而是这样一句话:
include enable-php.conf;
php设置放在另一个配置文件enable-php.conf中了
enable-php.conf在/usr/local/nginx/conf目录下
把enable-php.conf修改为以下配置并重启nginx服务即可
location ~ [^/]\.php(/|$)
{
#try_files $uri =404;
fastcgi_passunix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
include pathinfo.conf;
}
回复 5# 的帖子
https://lnmp.org/faq/lnmp-vhost-add-howto.html#pathinfo回复 3# 的帖子
军哥,我和他一样也遇到了这个问题,不过我的lnmp是1.4的,其他版本也更新些……您回复说只需要include typecho.conf;
include php-pathinfo.conf;
即可
不需要额外的php的解析的代码
我就把其他的全部删掉了,所以我现在vhost里面的网站目录是这样的:
server
{
include typecho.conf;
include enable-php-pathinfo.conf;
access_log off;
}
其他的都删了,然后nginx.conf现在是这样的:
userroot;
worker_processes auto;
error_log/home/wwwlogs/nginx_error.logcrit;
pid /usr/local/nginx/logs/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;
events
{
use epoll;
worker_connections 51200;
multi_accept on;
}
http
{
include mime.types;
default_typeapplication/octet-stream;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 50m;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 256k;
gzip on;
gzip_min_length1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE .";
#limit_conn_zone $binary_remote_addr zone=perip:10m;
##If enable limit_conn_zone,add "limit_conn perip 10;" to server section.
server_tokens off;
access_log off;
server {typecho.conf}
listen 80 ;
server_name shujian.info;
root /home/wwwroot/www.shujian.info;
index index.html index.htm index.php;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php$1 last;
}
location ~ .*.php(/.*)*$ {
include fastcgi.conf;
fastcgi_pass127.0.0.1:9000;
set $path_info "";
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?.php)(/.+)$") {
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
}
access_log/home/wwwlogs/access.log;
}
include vhost/*.conf;
}
但是网站还是那样,就只能访问首页,后台和其他页面都进不去,而且首页并不是我的网站主域名而是http://yourdomain.com/build/index.php这样的,现在好绝望,弄了一天了……:Q
回复 7# 的帖子
自己不会改可以抄前面别人的帖子typecho需要开pathinfo,如果开伪静态需要在询问伪静态时输入typecho
页:
[1]