在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文件。
1 #一下是我把那个文件全部贴出来,然后把我修改过的地方标注
2
3
4 #user nobody;
5 worker_processes 1;
6
7 #error_log logs/error.log;
8 #error_log logs/error.log notice;
9 #error_log logs/error.log info;
10
11 #pid logs/nginx.pid;
12
13
14 events {
15 worker_connections 1024;
16 }
17
18
19 http {
20 include mime.types;
21 default_type application/octet-stream;
22
23 #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
24 # '$status $body_bytes_sent "$http_referer" '
25 # '"$http_user_agent" "$http_x_forwarded_for"';
26
27 #access_log logs/access.log main;
28
29 sendfile on;
30 #tcp_nopush on;
31
32 #keepalive_timeout 0;
33 keepalive_timeout 65;
34
35 #gzip on;
36
37 server {
38 listen 80; #服务器监听的端口,http请求的端口
39 server_name localhost; #服务器地址
40
41 charset gbk; #服务处理的编码
42
43 #access_log logs/host.access.log main;
44
45 location / {
46 root E:\www; #网站的更目录,也可以写成 E:/www
47 index index.html index.htm; #网站的默认网页文件
48 autoindex on; #当网站没有默认文件时,打开域名可以看到文件目录结构
49 }
50
51 #error_page 404 /404.html;
52
53 # redirect server error pages to the static page /50x.html
54 #
55 error_page 500 502 503 504 /50x.html;
56 location = /50x.html {
57 root html;
58 }
59
60 # proxy the PHP scripts to Apache listening on 127.0.0.1:80
61 #
62 #location ~ \.php$ {
63 # proxy_pass http://127.0.0.1;
64 #}
65
66 # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
67 # 这里是重点啦,要小心一下要把文件解注释掉
68 location ~ \.php$ {
69 # root html; #这行不要接注释
70 fastcgi_pass 127.0.0.1:9000; #fast-cgi也就是php-cgi监听地址和端口
71 fastcgi_index index.php;
72 fastcgi_param SCRIPT_FILENAME E:\www$fastcgi_script_name; #这里要特别注意,把网站的根目录直接替换掉 /scripts 就可以,这里也可以写成 E:/www 。
73 include fastcgi_params;
74 }
75
76 # deny access to .htaccess files, if Apache's document root
77 # concurs with nginx's one
78 #
79 #location ~ /\.ht {
80 # deny all;
81 #}
82 }
83
84
85 # another virtual host using mix of IP-, name-, and port-based configuration
86 #
87 #server {
88 # listen 8000;
89 # listen somename:8080;
90 # server_name somename alias another.alias;
91
92 # location / {
93 # root html;
94 # index index.html index.htm;
95 # }
96 #}
97
98
99 # HTTPS server
100 #
101 #server {
102 # listen 443;
103 # server_name localhost;
104
105 # ssl on;
106 # ssl_certificate cert.pem;
107 # ssl_certificate_key cert.key;
108
109 # ssl_session_timeout 5m;
110
111 # ssl_protocols SSLv2 SSLv3 TLSv1;
112 # ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
113 # ssl_prefer_server_ciphers on;
114
115 # location / {
116 # root html;
117 # index index.html index.htm;
118 # }
119 #}
120
121 }
到了这里我们就配置好了。我们开两个命令窗口,一个运行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更多详细配置。