问题0
nginx配置
location /subscribe/
{
root /test/www/;
#rewrite ^/subscribe/(.*)$ /subscribe/index.php?file=$1
fastcgi_param SCRIPT_FILENAME /test/www/subscribe/index.php;
fastcgi_pass 127.0.0.1:9000;
#fastcgi_pass unix:/usr/local/php5.5/var/sock/php-cgi.sock;
fastcgi_index index.php;
include fastcgi_params;
access_log /test/logs/subscribe.log main;
}
1.rewrite ^/subscribe/(.*)$ /subscribe/index.php?file=$1 这个是说在遇到含有/subscribe/的请求时,进行重定向
比如请求/subscribe/list 将此次请求指向index.php 并将file=list作为参数传递过去
2.fastcgi_param SCRIPT_FILENAME /test/www/subscribe/index.php;这里是给一个fastcgi参数(SCRIPT_FILENAME)赋值
多说一句:SCRIPT_FILENAME表明目标进程要执行哪个php脚本,这样赋值后的意思是在遇到含有/subscribe/的请求时让其访问index.php文件
3.include fastcgi_params; 包含fastcgi_params文件中的变量
4.document_uri 同 uri:不带请求参数的当前URI,$uri不包含主机名;request_uri 带有参数的当前uri,不含主机名;
问题1
要在虚机上搭一个站点(jk.svnmanager.fang.com),以便能在windows主机上访问
在虚机上安装好了nginx(apt-get install nginx)
在nginx.conf中搭建好了站点,在etc/hosts中硬解好了地址
然后在windows的hosts文件中也硬解好了地址
在浏览器中访问的时候,总是报404错误
解决
查看站点的访问站点(jk.svnmanager.fang.com)的访问记录能查到所有的访问记录
去nginx的报错日志error.log中查看发现总报错
13357#0: *106 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.225.1, server: jk.svnmanager.fang.com
, request: "GET /createSvnCase.api?returntype=1¶m={%22SecurityKey%22:%2276d027cb%22,%22SvnCaseName%22:%22test01%22} HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000",host: "jk.svnmanager.fang.com"
上网调查发现是linux机器上少装了一个php-fpm的东西,因为我装的是php5,所以装了一个php5-fpm(apt-get install php5-fpm)
装好后启动了一下服务service php5-fpm start
ok,问题解决!
PS:若安装好nginx后nginx启动不了,可以查看是否是80端口被占(netstat -anl | grep "80"),若被占使用命令sudo fuser -k 80/tcp释放80端口,执行命令
/usr/sbin/nginx -c /etc/nginx/nginx.conf
/usr/sbin/nginx -s reload
启动nginx
问题2.
ubuntu 12.04版本上apt-get install php默认的是php5.3需升级至5.5
解决
apt-get install python-software-properties
add-apt-repository ppa:ondrej/php5
apt-get update && sudo apt-get dist-upgrade
apt-get install php5
升级后又出现了问题1中的错误,此时php5-fpm已经安装,
指令php -v 和 php5-fpm -v 均能出现相应结果
排查问题方法:输入下图命令查看是否有划线处,如果没有说明没有启动fastcgi
如何启动?
1.找到php-fpm.conf 在其中的listen处改成listen=127.0.0.1:9000
2.重启php即可