kui1992 发表于 2015-10-21 14:43:03

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;
    }

kui1992 发表于 2015-10-21 15:21:01

自己顶。。。:lol

licess 发表于 2015-10-22 08:17:21

只需要include typecho.conf;
include php-pathinfo.conf;
即可
不需要额外的php的解析的代码
restart或reload nginx就会生效
cgi.fix_pathinfo不能改成1,必须是0

raisinli 发表于 2015-10-26 17:33:48

不建议用 /usr/local/nginx/conf/nginx.conf 这个配置文件,可以用  vhost 目录下从新配置

因为这个 include typecho.conf;  不能注销。

而且可以防止别人猜到。

yx17 发表于 2017-2-4 14:06:47

我用的是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;
      }

licess 发表于 2017-2-4 15:49:11

回复 5# 的帖子

https://lnmp.org/faq/lnmp-vhost-add-howto.html#pathinfo

underworld 发表于 2018-2-17 22:50:46

回复 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

licess 发表于 2018-2-18 17:57:34

回复 7# 的帖子

自己不会改可以抄前面别人的帖子
typecho需要开pathinfo,如果开伪静态需要在询问伪静态时输入typecho
页: [1]
查看完整版本: typecho博客进入不了后台,提示404