Setting Sun's Blog – 残阳 彪悍的人生不需要解释~~

5三/102

windows下的nginx+php5.3+php-cgi+mysql

If you're new here, you may want to subscribe to my RSS feed. Thanks for visiting!

引子:

由于工作需要 

准备工作:

1、首先下载最新的nginx http://nginx.org/download/nginx-0.8.34.zip
2、下载PHP5.3 http://windows.php.net/downloads/releases/php-5.3.2-Win32-VC9-x86.zip
3、下载MYSQL http://download.mysql.cn/download_file/zip/5.0/mysql-5.0.22-win32.zip 


配置PHP:

把下载完的php解压到:D:\php 。备份php.ini-development,并将其重命名为php.ini。然后编辑php.ini。

	documentroot.doc_root = ""
	本来我写的是我的项目根目录的,本来发现是错误的,这个稍后在说
	扩展存放目录 extension_dir——更改为真实的扩展存放地址。extension_dir = “ext”
	默认时区更改——在[Date]里面增加:date.timezone = PRC 

因为nginx需要的是cgi方式的php,所以如下几个地方是重点,否则nginx无法打开php文件:

	这里我是copy的别人的,反正我自己使用正常
	enable_dl = On
	cgi.force_redirect = 0
	cgi.fix_pathinfo=1
	fastcgi.impersonate = 1
	cgi.rfc2616_headers = 1 

5.3版本我没有发现php5ts.dll和libmysql.dll两个文件,就不管他了

配置nginx:

将下载下来的nginx解压到D:\nginx目录中,我给conf目录做了些工作,一会直接上配置文件。

nginx.conf 内容详情

	#user  nobody;
	#启动进程
	worker_processes  1; 

	#错误日志及PID文档
	error_log  logs/error.log crit;
	pid        logs/nginx.pid;

	#工作模式及连接数上限
	events {
	    #use epoll;  #windows下好像会出错
	    worker_connections  1024;
	}

	#设定http服务器
	http {
	    #设定负载均衡的服务器列表>#设定负载均衡的服务器列表
	    upstream phpfastcgi {
		server 127.0.0.1:9000 weight=1;
		#server 127.0.0.1:9001 weight=1;
	    }

	    #设定mime类型
	    include       mime.types;
	    default_type  application/octet-stream;
	    charset utf-8;

	    server_names_hash_bucket_size 128;
	    client_header_buffer_size 32k;
	    large_client_header_buffers 4 32k;
	    client_max_body_size 8m;

	    sendfile on;
	    tcp_nopush     on;
	    keepalive_timeout 60;
	    tcp_nodelay on;

	    fastcgi_connect_timeout 300;
	    fastcgi_send_timeout 300;
	    fastcgi_read_timeout 300;
	    fastcgi_buffer_size 64k;
	    fastcgi_buffers 4 64k;
	    fastcgi_busy_buffers_size 128k;
	    fastcgi_temp_file_write_size 128k;

	    #开启gzip模块
	    gzip on;
	    gzip_min_length 1k;
	    gzip_buffers     4 16k;
	    gzip_http_version 1.0;
	    gzip_comp_level 2;
	    gzip_types       text/plain application/x-javascript text/css application/xml;
	    gzip_vary on;

	    #设定日志格式
	    log_format access '$remote_addr - $remote_user [$time_local] "$request" '
	                        '$status $body_bytes_sent "$http_referer" '
	                        '"$http_user_agent" $http_x_forwarded_for';

	    #加载虚拟主机
	    include nginx.servers.conf;
	}

nginx.servers.conf 内容详情

	server
	{
	    listen 80;
	    server_name test.cc;
	    root D:/www/test/webroot;
	    include nginx.location.conf;
	}

nginx.location.conf 内容详情

	index index.html index.htm index.php;
	location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
	    expires 30d;
	}

	location ~ .*\.(js|css)$ {
	    expires 1h;
	}

	location ~ \.php$ {
	    fastcgi_pass phpfastcgi;
	    fastcgi_index index.php;
	    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
	    include fastcgi_params;
	}

附送两个.bat

start_php.bat 内容详情

	@ECHO OFF
	ECHO Starting PHP FastCGI
	RunHiddenConsole.exe D:\php\php-cgi.exe -b 127.0.0.1:9000 -c d:\php\php.ini

stop_php.bat 内容详情

	@ECHO OFF
	ECHO Stopping nginx...
	taskkill /F /IM nginx.exe > nul
	echo Stopping PHP FastCGI...
	taskkill /F /IM php-cgi.exe > nul
	exit

一个小工具

http://redmine.lighttpd.net/attachments/660/RunHiddenConsole.zip

还记得我在php.ini说在doc_root写入项目目录地址会问题么,我的问题就是

出现No input file specified.

写空反而没事了

好了就写到这了。

参考文章:

http://www.xiaoxiaozi.com/2009/09/23/1485/

相关日志

标签:mysql, nginx, php, php-cgi

相关日志

关于 Setting Sun

我表示无节操,万物皆可控!
评论 (2) 引用 (0)
  1. 谢谢哈,看了这文章我的NG的conf又饱满了不少。

    我没有在官方的wiki找到这两项。
    fastcgi_connect_timeout
    fastcgi_send_timeout
    至少在http://wiki.nginx.org/NginxHttpFcgiModule没有发现。

    [回复]

    Setting Sun 回复:

    @echo, 要的就是专业- -,感谢echo哥,来小站!!

    [回复]


发表评论


还没有引用.