谁搞过ThinkPHP,nginx下要配置才能用infopath模式。找了一个网上的用不了呢

2013-11-28 11:19:48 +08:00
 coolicer
location / {
index index.html index.htm index.php;
root /home/www/php;
try_files $uri $uri/ =404;
}
location ~.*\.php$ {
root /home/www/php;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

---------------------------以上是现在的配置----------------------


#这段是网上说开启的
location /App/ { #App是我的项目目录
index index.php;
if (!-e $request_filename) {
rewrite ^/App/(.*)$ /App/index.php/$1 last;
break;
}
}

location ~ .+\.php($|/) {
set $script $uri;
set $path_info "/";
if ($uri ~ "^(.+\.php)(/.+)") {
set $script $1;
set $path_info $2;
}

fastcgi_pass fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php?IF_REWRITE=1;
include /APMServ/nginx/conf/fastcgi_params;
fastcgi_param PATH_INFO $path_info;
fastcgi_param SCRIPT_FILENAME $document_root/$script;
fastcgi_param SCRIPT_NAME $script;
}
#这段是网上说开启的



现在有几个Location,不知道哪些不要。
3848 次点击
所在节点    NGINX
9 条回复
ooh
2013-11-28 11:59:28 +08:00
server {
listen 80;
server_name 127.0.0.1;

root /home/www/new/;
index index.html index.htm index.php;

location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=$1 last;
}
# try_files $uri $uri/ /index.php;
}

location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
#
# # With php5-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
你重写url试试
coolicer
2013-11-28 13:54:11 +08:00
@ooh 大哥,木有反应,还是不能用PATHINFO模式
vvtommy
2013-11-28 14:17:34 +08:00
为什么在nginx下使用PATHINFO呢?如果仔细设计URL的话,花时间写一下rewrite规则才是不错的选择,ThinkPHP用PATHINFO只是在当年看来是一个比较“潮”的feature。

当然,回答你的问题,在nginx下安装这个module,可以打开PATHINFO支持 http://wiki.nginx.org/HttpFastcgiModule
coolicer
2013-11-28 14:27:28 +08:00
@vvtommy 不是很懂。其实我看了REST的ULR,我觉得PATHINFO的好丑。
ooh
2013-11-28 17:03:54 +08:00
@coolicer 我忘了phpinfo模式的URL是什么样的了,你举个栗子?这个用url模式2是没问题的
coolicer
2013-11-28 17:26:14 +08:00
@ooh http://localhost/app/index.php/Index/index

我这样启动不了:

server {
listen 8080 default_server;
server_name localhost;
index index.html index.htm index.php;
root /home/www/php;
location / {
try_files $uri $uri/ =404;
if(!-e $request_filename){
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}
location ~\.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
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$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
include /etc/nginx/fastcgi_params;
}
}
qingting
2013-11-28 17:56:30 +08:00
ooh
2013-11-28 19:38:30 +08:00
@coolicer 你直接用我贴的,把new改成你php项目地址,然后先访问localhost看看行不,在访问localhost/Index/index,我那个是重写了URL的,还有你url模式是不是2?我都是用的这个
coolicer
2013-11-29 09:25:35 +08:00
@ooh 是2的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/90949

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX