在php开发当中,最常用的环境莫过于在LAMP:linux+apache+mysql+php了,在windows下有WAMP:windows+apache+mysql+php和iis+mysql+php。这些的配置我这里不做说明,留在下次说明,其实我本人也是在上述环境下开发。今天我我看了一个大家都说世界上运行最快的,站资源很少的服务器:nginx(engine x的简称)。我这里要讲的是windows下配置nginx+php+mysql的环境。
这个环境我个人也是使用了下,原理是采用cgi来运行的。大家都知道,php在apache下面有两种运行方式,一种是以模块形式运行,一种是cgi形式(不过这里的cgi和传统不太相同,这里使用的是fast-cgi方式。它比传统cgi运行速度快,资源消耗小)。下面就说下nginx的配置吧。这里的前提是php 和 mysql都已经配置好了(如果不会的,请到到谷歌,百度上查询)。
nginx常见有linux下和windows下的。而windows下的是Kevin Worthington利用Cygwin编译的nginx的32bit windows版:Nginx For Windows开发版或是稳定版,下载地址是:http://www.kevinworthington.com/nginx-for-windows/。还有个windows版:nginx/Windows开发版或是稳定版,下载地址是:http://nginx.org/,这里下载。我个试了下,这两个区别一个点击安装,一个不用安装。为什么搞两个地址,我也不知道。我们下载下来,不管是安装的还是非安装的都要配置nginx下conf下的nginx.conf文件。
这个环境我个人也是使用了下,原理是采用cgi来运行的。大家都知道,php在apache下面有两种运行方式,一种是以模块形式运行,一种是cgi形式(不过这里的cgi和传统不太相同,这里使用的是fast-cgi方式。它比传统cgi运行速度快,资源消耗小)。下面就说下nginx的配置吧。这里的前提是php 和 mysql都已经配置好了(如果不会的,请到到谷歌,百度上查询)。
nginx常见有linux下和windows下的。而windows下的是Kevin Worthington利用Cygwin编译的nginx的32bit windows版:Nginx For Windows开发版或是稳定版,下载地址是:http://www.kevinworthington.com/nginx-for-windows/。还有个windows版:nginx/Windows开发版或是稳定版,下载地址是:http://nginx.org/,这里下载。我个试了下,这两个区别一个点击安装,一个不用安装。为什么搞两个地址,我也不知道。我们下载下来,不管是安装的还是非安装的都要配置nginx下conf下的nginx.conf文件。
- #user nobody;
- worker_processes 1;
- #error_log logs/error.log;
- #error_log logs/error.log notice;
- #error_log logs/error.log info;
- #pid logs/nginx.pid;
- events {
- worker_connections 1024;
- }
- http {
- include mime.types;
- default_type application/octet-stream;
- #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
- # '$status $body_bytes_sent "$http_referer" '
- # '"$http_user_agent" "$http_x_forwarded_for"';
- #access_log logs/access.log main;
- sendfile on;
- #tcp_nopush on;
- #keepalive_timeout 0;
- keepalive_timeout 65;
- #gzip on;
- server {
- listen 80; #服务器监听的端口,http请求的端口
- server_name localhost; #服务器地址
- charset gbk; #服务处理的编码
- #access_log logs/host.access.log main;
- location / {
- root E:\www; #网站的更目录,也可以写成 E:/www
- index index.html index.htm; #网站的默认网页文件
- autoindex on; #当网站没有默认文件时,打开域名可以看到文件目录结构
- }
- #error_page 404 /404.html;
- # redirect server error pages to the static page /50x.html
- #
- error_page 500 502 503 504 /50x.html;
- location = /50x.html {
- root html;
- }
- # proxy the PHP scripts to Apache listening on 127.0.0.1:80
- #
- #location ~ \.php$ {
- # proxy_pass http://127.0.0.1;
- #}
- # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
- # 这里是重点啦,要小心一下要把文件解注释掉
- location ~ \.php$ {
- # root html; #这行不要接注释
- fastcgi_pass 127.0.0.1:9000; #fast-cgi也就是php-cgi监听地址和端口
- fastcgi_index index.php;
- fastcgi_param SCRIPT_FILENAME E:\www$fastcgi_script_name; #这里要特别注意,把网站的根目录直接替换掉 /scripts 就可以,这里也可以写成 E:/www 。
- include fastcgi_params;
- }
- # deny access to .htaccess files, if Apache's document root
- # concurs with nginx's one
- #
- #location ~ /\.ht {
- # deny all;
- #}
- }
- # another virtual host using mix of IP-, name-, and port-based configuration
- #
- #server {
- # listen 8000;
- # listen somename:8080;
- # server_name somename alias another.alias;
- # location / {
- # root html;
- # index index.html index.htm;
- # }
- #}
- # HTTPS server
- #
- #server {
- # listen 443;
- # server_name localhost;
- # ssl on;
- # ssl_certificate cert.pem;
- # ssl_certificate_key cert.key;
- # ssl_session_timeout 5m;
- # ssl_protocols SSLv2 SSLv3 TLSv1;
- # ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
- # ssl_prefer_server_ciphers on;
- # location / {
- # root html;
- # index index.html index.htm;
- # }
- #}
- }
#一下是我把那个文件全部贴出来,然后把我修改过的地方标注
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80; #服务器监听的端口,http请求的端口
server_name localhost; #服务器地址
charset gbk; #服务处理的编码
#access_log logs/host.access.log main;
location / {
root E:\www; #网站的更目录,也可以写成 E:/www
index index.html index.htm; #网站的默认网页文件
autoindex on; #当网站没有默认文件时,打开域名可以看到文件目录结构
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
# 这里是重点啦,要小心一下要把文件解注释掉
location ~ \.php$ {
# root html; #这行不要接注释
fastcgi_pass 127.0.0.1:9000; #fast-cgi也就是php-cgi监听地址和端口
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME E:\www$fastcgi_script_name; #这里要特别注意,把网站的根目录直接替换掉 /scripts 就可以,这里也可以写成 E:/www 。
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443;
# server_name localhost;
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_timeout 5m;
# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
引用
到了这里我们就配置好了。我们开两个命令窗口,一个运行nginx.exe 和 php-cgi.exe 文件。
我的nginx在D盘下,运行命令是:D:\nginx-0.7.61>nginx.exe
我的php也在D盘下,运行名利是:D:\php5.2.6>php-cgi.exe -b 127.0.0.1:9000 ,这里的127.0.0.1:9000就是我们在nginx.conf文件中配置的那个,端口号一定要相同哦。
这个两个运行顺序无关。
好啦,到了这里我们就在 E:\WWW 目录下放一张info.php文件,在地址栏里面输入http://localhost/info.php ,呵呵,是不是成功啦。下次介绍php更多详细配置。
我的nginx在D盘下,运行命令是:D:\nginx-0.7.61>nginx.exe
我的php也在D盘下,运行名利是:D:\php5.2.6>php-cgi.exe -b 127.0.0.1:9000 ,这里的127.0.0.1:9000就是我们在nginx.conf文件中配置的那个,端口号一定要相同哦。
这个两个运行顺序无关。
好啦,到了这里我们就在 E:\WWW 目录下放一张info.php文件,在地址栏里面输入http://localhost/info.php ,呵呵,是不是成功啦。下次介绍php更多详细配置。