yestop 发表于 2016-6-2 17:55:49

nginx虚拟目录绑定并可执行php问题。

想把xxx.com/test   这个路径映射到/home/wwwroot/default/目录下并能执行php可是网上的配置都不能在lnmp里面生效。
比如
location /test/ {

         alias/home/wwwroot/default;
            index         index.php;
         

            location ~ .php$ {
                expires      epoch;
                fastcgi_pass   unix:/tmp/php-cgi.sock;
                fastcgi_indexindex.php;
                include      fastcgi.conf;
                fastcgi_paramSCRIPT_FILENAME    /home/wwwroot/default$fastcgi_script_name;
            }

            location ~ .(jpg|jpeg|gif|png|ico)$ {
                access_logoff;
                expires   33d;
            }

      }



该如何配置呢?

yestop 发表于 2016-6-2 18:59:27

location /test {
alias /home/wwwroot/test/;
index index.html index.php;
}

location ~ /test/.+\.php$ {
rewrite /test/(.+\.php) /$1 break;
fastcgi_passunix:/tmp/php-cgi.sock;
fastcgi_indexindex.php;
fastcgi_paramSCRIPT_FILENAME/home/wwwroot/test/$fastcgi_script_name;
includefastcgi_params;
}
用了军哥的这个配置也不行,html可以解析,但是无法识别php,提示No input file specified.

licess 发表于 2016-6-2 20:16:59

参考:https://bbs.vpser.net/viewthread.php?tid=13616&page=1&fromuid=3#pid41706

如果alias目录不在 该虚拟主机的root 目录内,必须要同时必须要删掉该虚拟主机目录下的.user.ini

yestop 发表于 2016-6-3 08:41:33

还是一样放在alias下面的html可以解析,而放在alias下php显示404。alias下并没有ini文件。

licess 发表于 2016-6-3 09:13:15

回复 4# 的帖子

上面的就是完整的例子不行肯定你那边配置有问题

上面也没说是alias目录,上面说的是虚拟主机目录

yestop 发表于 2016-6-3 09:34:52

我server没有root   /目录是反向代理过去的其他所有的都是lnmp1.2自带的没改过

你看下现在的配置 test这个目录 html可以执行 但是访问 php404server{
listen 80;
server_name xxx.com www.xxx.com;



location ^~ /test/ {
alias /home/wwwroot/default/test/;
include enable-php2.conf;
}



location / {
proxy_connect_timeout 300s;
proxy_send_timeout   900;
proxy_read_timeout   900;
proxy_buffer_size    32k;
proxy_buffers   4 32k;
proxy_busy_buffers_size 64k;
proxy_redirect   off;
proxy_hide_headerVary;
proxy_set_header   Accept-Encoding 'gzip';
proxy_set_header   Host   $host;
proxy_set_header   Referer $http_referer;
proxy_set_header   Cookie $http_cookie;
proxy_set_header   X-Real-IP$remote_addr;
proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8081;

}

location /static/ {
   root /root/static/;
}

}

yestop 发表于 2016-6-3 10:56:10

error.log显示。directory index of " " is forbidden

licess 发表于 2016-6-3 15:33:30

回复 7# 的帖子

你重启nginx了没,上面的配置绝对没问题

如果没index文件及index的设置肯是403 forbidden

yestop 发表于 2016-6-3 17:40:41

回复 8# 的帖子

奇了怪了 alias下面放了index.php和index.html
访问 www.xxx.com/test/index.php 提示404
访问 www.xxx.com/test/index.html可以成功

也就是说无法找到php并进行解析,其他的文件都可以访问。
不知道nginx里面用什么log可以看php有没有成功执行呢?

军哥救我。。

[ 本帖最后由 yestop 于 2016-6-3 18:00 编辑 ]

licess 发表于 2016-6-4 11:53:28

回复 9# 的帖子

你发的配置我测试过正常解析php

8楼说了,不只是有index文件就行

yestop 发表于 2016-6-4 22:35:26

好吧,虽然不是特别明白但 index文件我设置了,问题是我完整地址访问index.php现在是404error,而能完整地址访问index.html,文件都在同一个alias下。
页: [1]
查看完整版本: nginx虚拟目录绑定并可执行php问题。