win7 NGINX+PHP+MYSQL配置

2013/10/01 4334点热度 0人点赞 3条评论

一:下载相关安装包

下载nginx :Stable version  nginx/Windows-1.5.5

http://nginx.org/en/download.html  也可点此处直接下载http://nginx.org//download/nginx-1.5.5.zip

下载php: VC9 x86 Non Thread Safe (2012-Oct-17 22:45:27)这里我选择非线程安全版

http://windows.php.net/download/#php-5.5 也可点此处直接下载http://windows.php.net//downloads/releases/php-5.5.4-nts-Win32-VC11-x86.zip

下载RunHiddenConsole

https://kangxiaowei.googlecode.com/files/RunHiddenConsole.zip

下载MySQL  MySQL Installer 5.6.14.0

http://www.mysql.com/downloads/installer/  也可点此处直接下载http://cdn.mysql.com/Downloads/MySQLInstaller/mysql-installer-community-5.6.14.0.msi

二:安装

安装nginx

在D盘下建立名为phpServer的目录 D:\phpServer

解压nginx-1.5.5.zip至D:\phpServer\nginx

找到下面的nginx.exe,在命令行下运行nginx.exe (注意目录中不能出现中文字符)

启动nginx

D:\server\nginx-1.2.5>nginx

在浏览器中输入http://localhost/看到下图就证明成功了

在D:\phpServer\phptest下新建index.html

test

修改D:\phpServer\nginx\conf文件第44行

location / {
           #root   html;
           root D:/phpServer/phptest;#注意路径分隔符为斜杠
           index  index.html index.htm;
       }

重新加载配置

D:\phpServer\nginx>nginx -s reload

在刷新localhost地址,出现test文字说明正常

nginx常用命令

nginx -s quit   安全退出
nginx -s stop   强制退出
nginx -s reload 修改配置文件后,重启nginx使配置文件生效

安装PHP

解压php-5.5.4-nts-Win32-VC11-x86.zip到D:\phpServer\php文件夹

解压RunHiddenConsole.zip ,复制RunHiddenConsole.exe到D:\server\php

重命名php目录下的php.ini-development 为php.ini

启动php-cgi

注:可能有的机子缺失msvcr110.dll文件百度一个放到windows\system32下就可以了

D:\phpServer\php>RunHiddenConsole.exe  php-cgi.exe -b 127.0.0.1:9000 -c D:\phpServer\php\php.ini

可以在进程中看到多了个php-cgi.exe的进程

安装MySQL5.5

(注意:需要安装.net framework 4.0.30319,已经安装有的,跳过此步)  下载地址:http://download.microsoft.com/download/9/5/A/95A9616B-7A37-4AF6-BC36-D6EA96C8DAAE/dotNetFx40_Full_x86_x64.exe

打开mysql-installer-community-5.6.40.0

安装路径选择D:\phpServer\MySQL

数据文件路径D:\phpServer\MySQL\data

其他默认即可

启动mysql,在服务中也会出现mysql的服务

D:\phpServer\MySQL\MySQL Server 5.6\bin>mysqld  

使nginx能将php请求交给php处理

修改nginx配置文件

location ~ \.php$ {
            #root          D:/phpServer/phptest;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  D:/phpServer/phptest$fastcgi_script_name;
            include        fastcgi_params;
 }

重新加载配置文件

在phptest目录下新建index.php,文件内容如下

<?php  

echo phpinfo(); ?>

在浏览器中打开http://localhost/index.php

出现php环境信息页面说明配置成功。

PHP支持Mysql

打开php.ini

找到以下两行:

;extension_dir = "ext"
;extension=php_mysql.dll

分别将这两行前面的分号去掉,重启php-cgi。使修改后的配置生效

在phptest目录下新建conntest.php,内容如下:

<?php  
$con = mysql_connect("localhost","root","123456");  
if (!$con){  
  die('Could not connect: ' . mysql_error());  
} else {  
  echo 'Database connected successfully';  
}  
mysql_close($con);

打开http://localhost/conntest.php

显示如下:

Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in D:\phpServer\phptest\conntest.php on line 2
Database connected successfully

说明php已经支持mysql

一键启动所有服务

在windows下习惯了wamp的朋友,可能会很不习惯这种一个程序一个程序单个启动的方式,这对我们这种懒人来说,不是个好方法。下面我们写两个脚本

这两个脚本分别完成所有服务的启动与关闭。

首先将RunHiddenConsole.exe复制到D:\phpServer\nginx下

在D:\phpServer下新建一个名为start.bat的批处理文件,此文件内容如下:

@echo off
echo starting php-cgi...  
D:\phpServer\php\RunHiddenConsole.exe  php-cgi.exe -b 127.0.0.1:9000 -c D:\phpServer\php\php.ini  
echo starting nginx...  
cd nginx  
RunHiddenConsole.exe D:\phpServer\nginx\nginx  
echo starting mysql...  
"D:\phpServer\MySQL\MySQL Server 5.6\bin\mysqld"
exit

(注意:第8行需要加双引号,对于路径中包含空格的情况,需要用双引号引起来。否则会出错。)

在D:\phpServer下新建一个名为stop.bat的批处理文件,此文件内容如下:

@echo off
echo stopping nginx...  
taskkill /F /IM nginx.exe > nul  
echo stopping php-cgi...  
taskkill /F /IM php-cgi.exe > nul  
echo stopping mysql...  
taskkill /F /IM mysqld.exe > nul

需要启动只需双击start.bat

需要关闭只需双击stop.bat

怎么样,是不是很简单。

至此windows7下nginx+php+mysql的搭建已经完成,现在尽情投入到php的的开发中吧。

yxkong

这个人很懒,什么都没留下

文章评论

  • 1

    使nginx能将php请求交给php处理,为什么输入地址回车后变成下载index.php?

    2014/01/20
    • 鱼翔空

      @1 这种情况说明,php服务没有解析.php的文件,然后nginx就把.php的文件当成一个文件了,而不是通过php服务解析.php返回的html,估计是你的php服务没有配置好。单独测试下php服务,好使的话,那就是nginx集成php服务的时候有问题。

      2014/01/20
  • 匿名

    非常优秀的http server

    2013/11/01