因为日常工作在windows下,为方便在window是下进行PHP开发,需要在windows平台下搭建PHP开发环境,web服务器选择nginx,不过windows版本的nginx性能要比Linux/Uninx版本的Nginx差太多。
1、安装PHP
PHP安装文件下载:http://windows.php.net/download/ (下载线程安全版本)
下载所需的PHP版本,解压至任一目录下,如C:\php,把压缩包中的 php.ini-xxx,更名为 php.ini,然后打开修改几个选项(根据需要对PHP进行具体配置):
error_reporting = E_ALL
display_errors = On
extension_dir = "C:\php\ext"
; 动态扩展,可以根据需要去掉extension前面的注释 ;
; 如加载PDO, MySQL
extension=php_pdo.dll
extension=php_pdo_mysql.dll
; CGI设置
cgi.force_redirect = 1
cgi.fix_pathinfo = 1
cgi.rfc2616_headers = 1
2、安装nginx
下载Windows版本的Nginx(官网下载地址:http://nginx.net)下载好以后,解压释放文件到任一目录下,如D:\nginx。
3、配置PHP FastCGI
Nginx需要和FastCGI配合才能处理请求,有两种方式运行PHP FastCGI,一种就是使用PHP内置的FastCGI管理器:
命令行下面执行:c:/php/php-cgi.exe -b 127.0.0.1:9000 -c c:/php/php.ini 启动PHP FastCGI
4、配置nginx
nginx.conf配置示例(注意相应的目录要存在):
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
#日志配置-可以去掉下面这三行
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 D:/nginx-1.6.2/logs/access.log access;
error_log D:/nginx-1.6.2/logs/error.log debug;
keepalive_timeout 65;
server {
listen 80;#nginx监听端口设置为80
server_name localhost;
charset utf-8;#默认文件编码
location / {
root D:/nginx-1.6.2/html;#这里改成你自己的虚拟目录,注意!Nginx1.3.7及以下版本不支持文件路径中间有空格也不支持中文!!!这个以上的版本不知道会不会支持,不过这个以下是不支持的……虽然Apache支持啊……
index index.html index.htm index.php;#注意这里添加了index.php,如果没有添加这个有可能报403错误,这个是win下的,linux或者其他系统是否会有此问题未知。
autoindex on;#如果文件不存在,列出目录树结构
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;#fastcgi监听的端口,与php的cgi启动时指定的要一致
fastcgi_index index.php;#默认首页
fastcgi_param SCRIPT_FILENAME D:/nginx-1.6.2/html$fastcgi_script_name;#启动路径,这里只需要将“D:/www”这部分改为你的安装路径就可以了
include fastcgi_params;
}
}
}
5、测试一下
nginx的文档目录下新建index.php文件,文件内容:
<?php
phpinfo();
?>
启动PHP:D:/php-5.6.4/php-cgi.exe -b 127.0.0.1:9000 -c D:/php-5.6.4/php.ini
启动nginx:D:/nginx-1.6.2/nginx.exe
浏览器访问:http://127.0.0.1/ 正常显示phpinfo页面表示环境ok
6、为方便环境的启动,编写如下批处理:
start_nginx.bat启动运行脚本:(RunHiddenConsole工具可隐藏dos命令窗口)
@echo off
echo Starting PHP FastCGI...
RunHiddenConsole D:/php-5.6.4/php-cgi.exe -b 127.0.0.1:9000 -c D:/php-5.6.4/php.ini
echo Starting nginx...
RunHiddenConsole D:/nginx-1.6.2/nginx.exe
stop_nginx.bat停止运行脚本:
@echo off
echo Stopping nginx...
taskkill /F /IM nginx.exe > nul
echo Stopping PHP FastCGI...
taskkill /F /IM php-cgi.exe > nul
exit
注意:nginx默认是不支持PHP的thinkphp框架的,如需要nginx支持tp框架,需修改nginx的配置文件。
windows平台下将php以module方式与Apache相结合
1、安装apache:参见Apache服务器安装配置()
2、配置apache,配置文件:D:\Apache24\conf\httpd.conf
配置根目录DocumentRoot:可以直接默认
配置端口号:如果80没被占用也可以直接默认
Listen 808
ServerName localhost:808
添加如下两行:第一行指以module方式加载php(确保该dll文件存在),第二行是指明php的配置文件php.ini的位置
添加如下几行:即添加可以执行php的文件类型
添加index.php:把“index.php”设为默认索引文件,优先顺序就自己排
完成以上配置后保存,重启apache服务器即可