找回密码
 注册
搜索
热搜: 届技能大赛
查看: 3781|回复: 0

windows2008+nginx1.1.12+php5.4+mysql6.0搭建高速WEB服务器(比apache快十倍)

[复制链接]
发表于 2012-2-17 10:13:19 | 显示全部楼层 |阅读模式
windows2008+nginx1.1.12+php5.4+mysql6.0搭建高速WEB服务器(比apache快十倍)
原来的WEB服务器是windows2008+apache2.2+php5.2+mysql6.0,打开网页比较慢,尤其是访问用户多时,比较耗资源,后来在ubuntu上建立nginx+php5.2+mysql5打开网页速度比较windows环境快多了,尤其是打开图片比较多的网页。(ubuntu搭建web服务器以后再介绍了)
下面介绍windows2008+nginx1.1.12+php5.4+mysql6.0环境的建立:
1、nginx1.1.12
这是个绿色软件,解压后就可用了,主要是配置好就行了,配置简单。配置文件nginx.conf在nginx\conf\文件夹中。
打开nginx.conf找到
location / {
            root   e:/web;  #你自己的网站的根目录。
            index index.php index.html index.htm;    #加上index.php
}
这个配置好后,启动nginx就可以访问静态网页了。
下面配置php
  location ~ \.php$ {
root          e:/web;  #你自己的网站的根目录
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  e:/web$fastcgi_script_name;
include        fastcgi_params;

}

启动nginx
打开cmd.exe进入nginx目录运行nginx 或start nginx 。停止:nginx -s stop或nignx -s quit( 完全退出)
现在可以测试你的网站了。
2、配置PHP
下载最新的PHP5.4。解压到任意目录。
主要是配置php.ini。
进入PHP目录,把php.ini-production改名为php.ini。
DataHandling下找到post_max_size=8M
这是PHP将接受的POST数据最大大小,可更改为20M
查找定位至:; extension_dir = "./" ,将前面的分号去掉并修改为:extension_dir = "c:\php\ext"  #你自己的php目录位置
查找定位至:;extension=php_gd2.dll,将前面的分号去掉为:extension=php_gd2.dll
查找定位至:;extension=php_mbstring.dll,将前面的分号去掉为:extension=php_mbstring.dll
查找定位至:;extension=php_mysql.dll,将前面的分号去掉为:extension=php_mysql.dll
查找定位至:;extension=php_mysqli.dll,将前面的分号去掉为:extension=php_mysqli.dll
查找定位至:;extension=php_pdo_mysql.dll,将前面的分号去掉为:extension=php_pdo_mysql.dll
查找定位至:;cgi.force_redirect = 1,将前面的分号去掉为:cgi.force_redirect = 1查找定位至:;cgi.fix_pathinfo=1,将前面的分号去掉为:cgi.fix_pathinfo=1
查找定位至:;cgi.rfc2616_headers = 0,将前面的分号去掉为:cgi.rfc2616_headers = 1
复制msql.dll libmysql.dll到php目录中,php5.4没有这两个文件,如果没有这2个文件,php将不能解析mysql启动。可以从php5.2中复制,并复制到windows\system32中。
下面进行测试php<?php
phpinfo();
?>
把上面代码另存test.php,放到你的网站根目录。

3、下载安装mysql6.0下载安装版,注意设置root密码。
如果出现 :mysql 1045错误Access denied for user 'root'@'localhost' (using password: YES)
删除mysql安装目录中的data文件夹(注意备份),用安装程序修复。
1. 确认已启动mysql
2. 进入命令提示符
bin目录下,输入:
mysql -u root -p            
回车
显示连接
然后在 mysql> 提示符下输入 use mysql; 等命令,详细如下:
mysql> use mysql;
mysql> update user set password=password('密码') where user='root';
mysql> flush privileges;
复制原来的data文件夹中的文件到data中,重启mysql服务。
测试你的数据库连接是否成功。代码:
<?php
$link = mysql_connect("localhost","root","密码"); #你的数据库密码
if($link){
echo "数据库连接成功!";
}else{
echo "数据库连接失败!";
}
?>
在为php网页进行测试。
我的网站是discuz x2.0论坛,涉及到伪静态的问题:
可以在nginx.conf中在server 的位置中加入:
rewrite ^([^\.]*)/forum-(\w+)-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;
rewrite ^([^\.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last;
rewrite ^([^\.]*)/group-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=group&fid=$2&page=$3 last;
rewrite ^([^\.]*)/space-(username|uid)-(.+)\.html$ $1/home.php?mod=space&$2=$3 last;
rewrite ^([^\.]*)/blog-([0-9]+)-([0-9]+)\.html$ $1/home.php?mod=space&uid=$2&do=blog&id=$3 last;
rewrite ^([^\.]*)/(fid|tid)-([0-9]+)\.html$ $1/index.php?action=$2&value=$3 last;
保存后重启nginx。
RewriteEngine On
RewriteBase /
# Rewrite 系统规则请勿修改
rewrite ^([^\.]*)/forum-(\w+)-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;
rewrite ^([^\.]*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last;
rewrite ^([^\.]*)/group-([0-9]+)-([0-9]+)\.html$ $1/forum.php?mod=group&fid=$2&page=$3 last;
rewrite ^([^\.]*)/space-(username|uid)-(.+)\.html$ $1/home.php?mod=space&$2=$3 last;
rewrite ^([^\.]*)/blog-([0-9]+)-([0-9]+)\.html$ $1/home.php?mod=space&uid=$2&do=blog&id=$3 last;
rewrite ^([^\.]*)/(fid|tid)-([0-9]+)\.html$ $1/index.php?action=$2&value=$3 last;
if (!-e $request_filename) {
return 404;
}
另存如上代码为.htaccess。复制到你网站的根目录。

重启计算机
************************************************************************************************************************************
nginx启动与phpcgi启动。php-cgi.exe在一定周期后会自动退出,所以要多开几个进程。启动php-cgi.exe需要一个小程序runhiddenconsole.exe.
1、建立一个批处理。用于启动nginx 和php-cgi.exe。
nginx.bat


cd c:\nginx
start nginx

RunHiddenConsole.exe c:\php\php-cgi.exe -b 127.0.0.1:9000 -c c:\php\php.ini
RunHiddenConsole.exe c:\php\php-cgi.exe -b 127.0.0.1:9000 -c c:\php\php.ini
RunHiddenConsole.exe c:\php\php-cgi.exe -b 127.0.0.1:9000 -c c:\php\php.ini
RunHiddenConsole.exe c:\php\php-cgi.exe -b 127.0.0.1:9000 -c c:\php\php.ini
RunHiddenConsole.exe c:\php\php-cgi.exe -b 127.0.0.1:9000 -c c:\php\php.ini
为了让这个批处理在登录前就能运行,可以在组策略中进行设置。运行gpedit.msc。计算机配置-windows设置-脚本(启动/关机)--启动---添加--选择nginx.bat。
2、为了防止php-cgi.exe自动退出,再建立一个批处理phpcgi.bat

cd c:\nginx

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

在“任务计划程序”中,建立一个任务,每个几个小时运行一次phpcgi.bat,来防止php-cgi.exe退出后不能打开php网页。至于每隔几个小时要看你的网站访问量了,我的是每隔6小时运行。
这并不是完美解决,临时这样处理吧。现在还没有完美的解决方法。
终于写完了。

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则

修武县职业技术学校 ( 豫ICP备2022015720号-2| 豫公网安备 41082102410925号 )

地址:修武县宁城路西段(森林半岛东邻) | 招生电话:0391-7186556

北京时间 Processed in 0.084847 second(s), 17 queries .

快速回复 返回顶部 返回列表