nginx配置,为何两个配置一模一样的server,一个能解析php,一个不能解析php呢?
程序员文章站
2024-01-25 21:53:34
...
解决了,我将执行文件由info.php修改为i.php之后就ok了,我想,可能是浏览器缓存。。。。。
下面有两个sever块,第二个就是复制第一个sever,只是将目录位置由dev修改为test,出现了这样的结果:
- 第一个sever全部正常,能够解析html,也能解析php
-
第二个sever只能解析html,遇到.php的页面弹出下载窗口
http {
include mime.types;
default_type application/octet-stream;sendfile on; tcp_nopush on; keepalive_timeout 65; 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; gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; server { listen 80; server_name dev.com; fastcgi_intercept_errors on; location / { index index.html index.htm index.php; root /Library/WebServer/public_html/dev; } location ~ .*\.(php|php5)?$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include /usr/local/etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME /Library/WebServer/public_html/dev/$fastcgi_script_name; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 1h; } error_page 400 401 402 403 404 /40x.html; location = /40x.html { root /Library/WebServer/public_html/dev/; } error_page 500 502 503 504 /50x.html; location = /50x.html { #root html; root /Library/WebServer/public_html/dev/; } } server { listen 80; server_name test.com; location / { index index.html index.htm index.php; root /Library/WebServer/public_html/test; } location ~ .*\.(php|php5)?$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include /usr/local/etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME /Library/WebServer/public_html/test/$fastcgi_script_name; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 1h; } error_page 400 401 402 403 404 /40x.html; location = /40x.html { root /Library/WebServer/public_html/dev/; } error_page 500 502 503 504 /50x.html; location = /50x.html { #root html; root /Library/WebServer/public_html/dev/; } } log_format access '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_forwarded_for'; access_log /usr/local/var/log/nginx/access.log access;
}
回复内容:
解决了,我将执行文件由info.php修改为i.php之后就ok了,我想,可能是浏览器缓存。。。。。
下面有两个sever块,第二个就是复制第一个sever,只是将目录位置由dev修改为test,出现了这样的结果:
- 第一个sever全部正常,能够解析html,也能解析php
-
第二个sever只能解析html,遇到.php的页面弹出下载窗口
http {
include mime.types;
default_type application/octet-stream;sendfile on; tcp_nopush on; keepalive_timeout 65; 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; gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; server { listen 80; server_name dev.com; fastcgi_intercept_errors on; location / { index index.html index.htm index.php; root /Library/WebServer/public_html/dev; } location ~ .*\.(php|php5)?$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include /usr/local/etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME /Library/WebServer/public_html/dev/$fastcgi_script_name; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 1h; } error_page 400 401 402 403 404 /40x.html; location = /40x.html { root /Library/WebServer/public_html/dev/; } error_page 500 502 503 504 /50x.html; location = /50x.html { #root html; root /Library/WebServer/public_html/dev/; } } server { listen 80; server_name test.com; location / { index index.html index.htm index.php; root /Library/WebServer/public_html/test; } location ~ .*\.(php|php5)?$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include /usr/local/etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME /Library/WebServer/public_html/test/$fastcgi_script_name; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 1h; } error_page 400 401 402 403 404 /40x.html; location = /40x.html { root /Library/WebServer/public_html/dev/; } error_page 500 502 503 504 /50x.html; location = /50x.html { #root html; root /Library/WebServer/public_html/dev/; } } log_format access '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_forwarded_for'; access_log /usr/local/var/log/nginx/access.log access;
}
解决了,我将执行文件由info.php修改为i.php之后就ok了,我想,可能是浏览器缓存。。。。。
应该是SCRIPTFILENAME 设置的问题
你看include /usr/local/etc/nginx/fastcgiparams 这个文件里的SCRIPT_FILENAME是什么
下一篇: CSS布局定位基础