在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更多详细配置。