谁搞过ThinkPHP,nginx下要配置才能用infopath模式。找了一个网上的用不了呢
- 0次
- 2021-05-31 11:26:34
- idczone
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,不知道哪些不要。
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;
}
$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:
127.0.0.1:9000;
With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
你重写url试试
大哥,木有反应,还是不能用PATHINFO模式
为什么在nginx下使用PATHINFO呢?如果仔细设计URL的话,花时间写一下rewrite规则才是不错的选择,ThinkPHP用PATHINFO只是在当年看来是一个比较“潮”的feature。
当然,回答你的问题,在nginx下安装这个module,可以打开PATHINFO支持 http://wiki.nginx.org/HttpFastcgiModule
不是很懂。其实我看了REST的ULR,我觉得PATHINFO的好丑。
我忘了phpinfo模式的URL是什么样的了,你举个栗子?这个用url模式2是没问题的
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;
}
}
参考这个 http://wiki.nginx.org/PHPFcgiExample
你直接用我贴的,把new改成你php项目地址,然后先访问localhost看看行不,在访问localhost/Index/index,我那个是重写了URL的,还有你url模式是不是2?我都是用的这个
是2的。