今天小编给大家分享一下Nginx中怎么配置pathinfo模式的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
缘由
很久不使用apache了,渐渐对apache感到陌生,因为朋友有个zendframework框架从apache移到Nginx下,需要pathinfo模式支持。
网上海搜
于是开始搜索Nginx+pathinfo相关文章,一开以为很容易就会配置好。因为搜索后发现有大量文章介绍Nginx开启pathinfo模式,感觉不是什么难事。但是经过几个小时下来,还是没有配置好。并且大量文章的内容都极其相似,基本都是转载的。
开始有点急了!因为一天过去了没有配好。
继续摸索
没办法,继续搜索。为了验证方便,我用a.com下载thinkPHP框架搭了个环境。并且加了useraction.class.PHP控制器类,在类里加了一个app方法并输出一行文字。
于是,我开始不断地改写Nginx.conf文件重启Nginx,不断的刷新a.com/index.PHP/user/app 地址。结果要么是地址损坏提示、502、access defind.
又是一天过去了,开始感觉有点彷徨。
最后坚持
按理说我感觉应该有Nginx+thinkPHP的先例,只是我没有搜索到答案而已。突然间感觉网上好迷茫,一个小小的问题寻求不到解答。今晚,又试着使用Nginx thinkPHP关键字搜索,我一下点到十多页以后,找到一处代码
location / {
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.PHP/$1 last;
break;
}
}
location ~ \.PHP {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.PHP;
include fcgi.conf;
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;
}
居然能访问了,终于松了一口气,实在太不容易了。
贴出Nginx.conf代码:
user www www;
worker_processes 2;
worker_cpu_affinity 01 10;
error_log /data1/logs/Nginx_error.log crit;
pid /usr/local/webserver/Nginx/Nginx.pid;
worker_rlimit_nofile 65535;
events
{
use epoll;
worker_connections 65535;
}
http
{
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;
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 128k;
server
{
listen 80;
server_name a.com;
index index.PHP;
root /data0/htdocs/a.com/www;
location / {
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.PHP/$1 last;
break;
}
}
location ~ \.PHP {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.PHP;
include fcgi.conf;
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;
}
}
}
以上就是“Nginx中怎么配置pathinfo模式”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程之家行业资讯频道。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。