设为首页 收藏本站
查看: 720|回复: 0

[经验分享] 转载:配置Windows下Nginx + PHP 开发环境

[复制链接]

尚未签到

发表于 2015-7-26 12:49:14 | 显示全部楼层 |阅读模式
  用 Windows 2008 和Windows 2008 R2 一年多了。
为了追新和探索,一直使用的 IIS7.0/7.5 + FastCgi 的方式来运行PHP。
1则太笨重 2来各种配置的测试不方便。
IIS7/7.5的特性基本已经了解了,而且短期内也不准备学习.net程序,so为了保持和服务器的一致,将本机也配制成了Nginx + PHP的环境,用来开发与测试。
1 先到以下地址下载合适的版本

http://nginx.org/en/download.html
http://windows.php.net/download
我下载的版本是 Nginx/Windows-0.8.36 和 PHP-5.3.2(VC9 x86 Non Thread Safe)Zip包。
分别解压到了
D:\webserver\nginx

D:\webserver\php
2 配置nginx

打开D:\webserver\nginx\conf\nginx.conf
将从server开始的 每一行前面都增加#注释掉包括server,但是不要注释掉最后一个 } 。
然后在#server前面粘贴以下内容
  server {
listen 80;
server_name localhost;
root "D:/web/new/localhost";
index index.html index.htm index.php;
  location ~ \.php {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
}
  这代表着配置了第一个虚拟主机
localhost域名 将配置在D:/web/new/localhost 目录下
而这里必须使用/符号 而不能使用windows格式的\符号
否则会启动不来,查看日志会发现被告知找不到 D:\webew 这个目录。
在新配置的server 上一行加入
  autoindex on;
  以打开查看目录选项,便于开发。
  然后运行d:\webserver\nginx\nginx.exe
在建立 D:\web\new\localhost
并在该文件夹随便建立几个文件和文件夹。
在浏览器中输入 http://localhost
可以浏览目录,说明nginx启动成功。
3 配置 php
复制D:\webserver\php\php.ini-development
并改名为 D:\webserver\php\php.ini
打开php.ini
查找short_open_tag = Off
修改为 short_open_tag = On
在文件末尾加入
  extension_dir = "D:\webserver\php\ext"
  extension=php_curl.dll
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_pdo_mysql.dll
extension=php_pdo_sqlite.dll
extension=php_sockets.dll
extension=php_sqlite.dll
extension=php_sqlite3.dll
extension=php_exif.dll
date.timezone = Asia/Chongqing
  以打开常用的扩展,并设置默认时区为重庆。
保存之。
下面运行
D:\webserver\php\php-cgi.exe -b 127.0.0.1:9000 -c D:\webserver\php\php.ini
再 d:\web\new\localhost 目录下建立 phpinfo.php
输入
  
  再浏览器里输入 http://localhost/phpinfo.php
可以看到phpinfo信息 表示配置完成。
4 制作维护脚本,并设置为开机自启动。
由于是开发环境,所以不必添加为系统服务,只要开机能启动就可以了。
将 d:\webserver\nginx\nginx.exe 创建一个狂接方式,并添加到 开始菜单-->启动项 里面去。
这样开机nginx就启动了。
在 d:\webserver 文件夹下建立 nginx_reload.txt文件。
里面输入
  d:
cd \webserver\nginx\
nginx.exe -s reload
  然后修改扩展名,为nginx_reload.bat。
这样当修改虚拟主机配置后,或修改rewrite规则后,可直接双击该文件完成nginx配置的重新加载。
而不必再在任务管理器内结束2个nginx.exe进程,再双击nginx.exe以完成重启。
php的启动比较特殊,启动后控制台窗口会一直停留着,如果关闭控制台,或按Ctrl C ,则php-cgi.exe进程会被终止。
所以要建立一个后台运行的vbs脚本。
在 d:\webserver 文件夹下建立一个 php.txt文件
输入
  Set objShell = CreateObject("Wscript.Shell")
objShell.Run("tskill php-cgi"), 0, TRUE
objShell.Run("D:\webserver\php\php-cgi.exe -b 127.0.0.1:9000 -c D:\webserver\php\php.ini"), 0, TRUE
  并改名为php.vbs
这时候双击此文件,会杀掉所有正在运行的php-cgi.exe进程,并重新启动一个php-cgi.exe进程。
由于是开发环境,我们只启动一个php-cgi.exe进程就可以了。
将此文件创建一个快捷方式,并添加到 开始菜单-->启动项 里面去。
这样 php就开机自动启动了。
下面可以修改一下php.ini文件,和重启一下电脑测试看看是否管用。
5 配置PATH_INFO 变量,以支持PHP框架中的URL路由。
现有的各种php框架中,都有url路由功能,使url格式都为 http://example.com/index.php/object/action/value/
这是基于 php的全局变量 $SERVER['PATH_INFO']的。
而nginx只对 php-cgi.exe进行简单的代理,并不支持 PATH_INFO。
所以我们需要略微修改配置
打开 d:\webserver\nginx\conf\fastcgi.conf
加入一行
  fastcgi_param PATH_INFO $fastcgi_script_name;
  打开 d:\webserver\nginx\conf\nginx.conf
修改所有虚拟主机配置里的
  
  location ~ \.php$ {
....
}
  去掉 \.php$ 后面的$
(当然,本文中的已去掉)。
然后我们运行 d:\webserver\nginx_reload.bat。
这时 我们的nginx 就支持 url路由了。
  
  原文地址为:http://blog.daweiba.com/read.php/245.htm   摘自 大尾巴自留地

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-90802-1-1.html 上篇帖子: opensuse nginx+mono 2.8支持aspx环境的配置 下篇帖子: nginx的HTTP模块编写
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表