仓酷云
标题:
来谈谈:Windows下Nginx + PHP5 的安装与设置办法
[打印本页]
作者:
谁可相欹
时间:
2015-1-16 14:06
标题:
来谈谈:Windows下Nginx + PHP5 的安装与设置办法
对于开发环境的选择尽量要轻量级和高度可定制,航空母舰级别的工具往往会让你迷惑不解;
安装PHP5
起首,从http://www.php.net/downloads.php下载最新的PHP5.3Windows版本,解压至C:php5,把紧缩包中的php.ini-recommended,改名为php.ini,然后翻开修正几个选项:
.
代码以下:
error_reporting=E_ALL
display_errors=On
extension_dir="C:php5ext"
;静态扩大,能够依据必要往失落extension后面的正文;
;如加载PDO,MySQL
extension=php_pdo.dll
extension=php_pdo_mysql.dll
;CGI设置
cgi.fix_pathinfo=1
PHP加载扩大必要注重依附性,好比php_exif.dll必要php_mbstring.dll,你必需要把php_mbstring.dll放在php_exif.dll后面才干加载乐成。有些扩大依附分外的dll文件,如PHP5.0+,php_mysqli.dll依附libmysql.dll,而php_oci8.dll,你则必要安装Oracle8的客户端。假如你对这些依附性不是太懂得,能够参考一下安装包中的install.txt文件。
依附文件的搜刮按次:起首是php.exe地点的目次,假如是ISAPI形式,那末会搜刮WebServer的启动地位,好比Apache的bin目次;其次是WindowsPATH情况变量中的目次。这里不要复制任何文件到Windows目次中,有需要的话,能够把C:php5加到PATH中,便于今后PHP的晋级。
安装Nginx
从v0.7.52入手下手,Nginx入手下手公布Windows版本的Nginx,你能够在其官方网站下面下载:
http://nginx.net
假如必要老版本的NginxforWindows,能够在KevinWorthington的网站下面找找。
我利用的是0.8.29,下载好今后,解压开释文件到C:
ginx。
那末怎样设置Nginx,使其能够和PHP协同事情?
设置PHPFastCGI
Nginx必要和FastCGIServer共同才干处置哀求,有两种体例运转PHPFastCGIServer,一种就是利用PHP内置的FastCGI办理器:
C:/php5/php-cgi.exe-b127.0.0.1:9000-cC:/php5/php.ini
别的一种体例是利用第三方工具,好比PHP-FPM、cgi-fcgi等。明显!要在Windows中利用这些工具是件极为疾苦的事变,你大概必要Cygwin之类的器材才行,切实其实有人这么做了,固然我以为那是自寻懊恼。
下一步,修正Nginx,将php哀求转发至PHPFastCGIServer:
.
代码以下:
#passthePHPscriptstoFastCGIserverlisteningon127.0.0.1:9000
location~^(.+.php)(.*)${
rootD:/public_html;
fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
includephp.conf;
}
root也就是$document_root指的是你的phpscripts根目次,设置为你的网站根目次。在Windows下,必要注重的是root的路径,最好利用"/"作为路径分开符,而不是Windows默许的"",不然简单出成绩,好比,这个路径:D:public_html est,就不会起感化,Nginx会抛出500毛病,缘故原由是 est中 被剖析为制表符。固然再加上一个反斜杠本义也是能够的,如:D:public_html est。
php.conf设置文件:
.
代码以下:
#毗连到本机9000端口,这里的端口是指PHPFastCGIServer开启的端口,
#请与php-cgi.exe开启的端口坚持分歧
#当Nginx收到php文件的哀求时,会主动转发到PHPFastCGIServer
fastcgi_pass127.0.0.1:9000;
fastcgi_indexindex.php;
#Nginx默许是不撑持CGIPATH_INFO,SCRIPT_NAME的值也不尺度(糅合了PATH_INFO)
#上面的两行指令,能够从SCRIPT_NAME中剥离出PATH_INFO
fastcgi_split_path_info^(.+.php)(.*)$;
fastcgi_paramPATH_INFO$fastcgi_path_info;
includefastcgi_params;
创立一个自力的php.conf保留设置,地道是为了精简nginx.conf,团体习气罢了,也能够全体写在主设置文件中。
修正php.ini,设置cgi.fix_pathinfo=1,这十分主要,PHP会修改SCRIPT_FILENAME为实在的文件地点,不然PHP将没法找到必要处置的php文件。
一些其他的设置,主服务器:
.
代码以下:
#默许开启的历程数
worker_processes1;
error_loglogs/error.log;
#error_loglogs/error.lognotice;
#error_loglogs/error.loginfo;
#pidlogs/nginx.pid;
events{
#一个历程所处置的最年夜毗连数下限,
#当地开辟,不必要默许的1024,这里改成64
worker_connections64;
}
当某个目次上面不存在默许index.phpindex.html等首页文件时,Nginx会抛出403ERROR,假如你必要排列此目次,则能够在http{…}中到场以下命令:
.
代码以下:
autoindexon;
autoindex_exact_sizeon;
autoindex_localtimeon;
OK,整合到一同
创立start_nginx.bat,用于同时启动PHPFastCGI和Nginx:
.
代码以下:
@echooff
REMWindows下有效
REMsetPHP_FCGI_CHILDREN=5
REM每一个历程处置的最年夜哀求数,或设置为Windows情况变量
setPHP_FCGI_MAX_REQUESTS=1000
echoStartingPHPFastCGI...
RunHiddenConsoleC:/php5/php-cgi.exe-b127.0.0.1:9000-cC:/php5/php.ini
echoStartingnginx...
C:/nginx/nginx.exe
RunHiddenConsole.exe是一个用来埋没DOS窗口的小程序,能够在这里下载。
start_nginx.bat开启后,也会有DOS窗口,可是能够平安的关失落,其实不会封闭Nginx和php-cgi.exe。
一样stop_nginx.bat,用来封闭:
.
代码以下:
@echooff
echoStoppingnginx...
taskkill/F/IMnginx.exe>nul
echoStoppingPHPFastCGI...
taskkill/F/IMphp-cgi.exe>nul
exit
到这里基础设置终了了。
有些人号称用过十几种甚至几十种linux,向人谈论起来头头是到,好像懂的很多。
作者:
仓酷云
时间:
2015-1-18 11:03
现在的linux操作系统如redhat,难点,红旗等,都是用这么一个内核,加上其它的用程序(包括X)构成的。
作者:
小妖女
时间:
2015-1-22 07:26
学习Linux,应该怎样学,主要学些什么,一位Linux热心学习者,一段学习Linux的风云经验,历时十二个小时的思考总结,近十位网络Linux学习者权威肯定,为您学习Linux指明方向。
作者:
小女巫
时间:
2015-1-30 23:44
Linux只是个内核!这点很重要,你必须理解这一点。只有一个内核是不能构成一个操作系统的。
作者:
若相依
时间:
2015-2-6 17:10
即便是非英语国家的人发布技术文档,Linux也都首先翻译成英语在国际学术杂志和网络上发表。
作者:
老尸
时间:
2015-2-17 13:55
放手去搞。尽量不要提问,运用搜索找答案,或者看wiki,从原理上理解操作系统的本质,而不是满足于使用几个技巧。尽量看英文资料。
作者:
兰色精灵
时间:
2015-3-5 19:57
工具书对于学习者而言是相当重要的。一本错误观念的工具书却会让新手整个误入歧途。目前国内关于Linux的书籍有很多不过精品的不多。
作者:
柔情似水
时间:
2015-3-12 14:34
学习Linux系统在服务中的配置方法及使用方法。Linux在服务器中应用相当广,应对常用的apache,samba,ftp等服务器基本配置清楚了解。[重点,应巩固学习]
作者:
爱飞
时间:
2015-3-19 23:03
如果你有庞大而复杂的测试条件,尽量把它剪裁得越小越好。可能你会遇到这种情况,对于一个问题会出现不同内容回答,这时你需要通过实践来验证。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2