Discuz! 官方站

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 79301|回复: 11

[教程] Win2008r2 X64环境搭建经验分享IIS7.5+php+mysql+Zend+wincache+URL伪静态

[复制链接]
发表于 2012-5-5 15:30:52 | 显示全部楼层 |阅读模式
本帖最后由 ninjasex 于 2012-5-7 20:43 编辑

windows 2008 R2 下面IIS7.5已经对fastcg的支持有了很大改进,我们不建议朋友们再使用PHP-ISAPi模式。
本次环境搭建所有版本均经过多次测试保证无误!
windows2008 R2下面环境搭建分2种情况 大家可以根据自己的运行需要选择!
这两个版本的最主要区别在于有没有ZEND 如果不需要安装ZEND就选择第一种方案, 如果需要安装ZEND就选择第二种方案

前言:PHP5.3的版本选择
现在的PHP5.3 For Windows64位一共给了四个版本:VC9 x86 Non Thread Safe、VC9 x86 Thread Safe、VC6 x86 Non Thread Safe、VC6 x86 Thread Safe,参考PHP官网提供下载的地方左边的英文来看看这几个版本有什么区别。

一、如何选择PHP5.3的VC9版本和VC6版本
VC6版本是使用Visual Studio 6编译器编译的,如果你的PHP是用Apache来架设的,那你就选择VC6版本。
VC9版本是使用Visual Studio 2008编译器编译的,如果你的PHP是用IIS来架设的,那你就选择VC9版本。

二、如何选择PHP5.3的Thread Safe和Non Thread Safe版本
先从字面意思上理解,Thread Safe是线程安全,执行时会进行线程(Thread)安全检查,以防止有新要求就启动新线程的CGI执行方式而耗尽系统资源。Non Thread Safe是非线程安全,在执行时不进行线程(Thread)安全检查。
再来看PHP的两种执行方式:ISAPI和FastCGI。
ISAPI执行方式是以DLL动态库的形式使用,可以在被用户请求后执行,在处理完一个用户请求后不会马上消失,所以需要进行线 程安全检查,这样来提高程序的执行效率,所以如果是以ISAPI来执行PHP,建议选择Thread Safe版本;
而FastCGI执行方式是以单一线程来执行操作,所以不需要进行线程的安全检查,除去线程安全检查的防护反而可以提高执行效 率,所以,如果是以FastCGI来执行PHP,建议选择Non Thread Safe版本。

选择以下这些版本需要注意的是MYSQL2008R2下可以选择64位的,PHPVC9是针对IIS,VC6针对apache,线程安全和非安全版本本次选择的是线程安全版本, PHP线程安全版本无法加载wincache,所以我们用Xcache作为替代,如果想用wincache就选用非线程安全版本,




了解了如何选择PHP版本,下面开始我们的IIS7.5+PHP+MySQL的配置过程


1 IIS7.5+PHP+Mysql+Wincache+URL伪静态
这个环境组合大家已经看出来了 没有zend,
各个版本分别是:
PHP5.3.12  请注意是非线程安全版本: php-5.3.12-nts-Win32-VC9-x86.zip,(我们在下文中简称php nts版本)
MYSQL5.2.23 x64,
Wincache1.1.0 for5.3,这个大家可以去微软IIS官方下载,他将极大地提高您的PHP系统运行效率!
如果您的服务器运行的都是开源程序,不需要zend,强烈建议您使用这个配置!

2 IIS7.5+PHP+Mysql+Zend+Xcache+URL伪静态
此组合版本分别是
PHP5.3.12  请注意是线程安全版本:php-5.3.12-ts-Win32-VC9-x86.zip(我们在下文中简称php ts版本)
MYSQL5.2.23 x64,
ZendOptimizer3.3.3-windows x86
Xcache2.0 for php5.3
-nts-Win32-VC9-x86.zip
此组合可以完美运行当今主流的PHP系统,但是美中不足的是使用PHP线程安全版本无法加载wincache,很遗憾的一点!但是可以用xcache作为补充,但是相比PHP-ISAPI模式已经好多了!

一、软件环境准备
说明:下载地址为官方下载链接,软件有更新可能不适合本文。附件提供下载包。
Visual C++ 2008(win2008r2sp1已经自带)
http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=2051A0C1-C9B5-4B0A-A8F5-770A549FD78C
php-5.3.12-nts-Win32-VC9-x86.zip
http://windows.php.net/download/
mysql-5.5.23-winx64.msi
http://www.mysql.com/downloads/mysql/
PHPManagerForIIS-1.2.0-x64.msi
http://phpmanager.codeplex.com/releases/view/69115
ZendOptimizer+
http://www.zend.com/en/products/guard/downloads
URL Rewrite Module2.0
http://www.iis.net/download/URLRewrite
wincache-1.1.0-5.3-nts-vc9-x86.exe
http://www.iis.net/download/WinCacheForPhp
 楼主| 发表于 2012-5-6 11:41:11 | 显示全部楼层
本帖最后由 ninjasex 于 2012-5-7 16:44 编辑

二、安装配置步骤
2.1、安装MYSQL
详细安装过程见
http://www.discuz.net/thread-1796583-1-1.html
本文没有系统约定,所以MYSQL直接选用[Typical]标准安装方式,
字符集建议选用GBK,因为适合GBK字符的模版和插件最多。
完成安装,打开cmd命令提示符窗口,输入命令:mysql –u root –p
输入刚才安装时设置的密码后,如果能够正常进入MySQL控制台则说明MySQL安装正常。
2.2、安装IIS7.5和CGI
win2008r2主机打开服务器管理器-添加角色-Web 服务器(IIS),再勾选CGI后安装。
win7主机打开控制面板-程序和功能-打开或关闭Windows功能-选中Internet信息服务选框和应用程序开发功能中的CGI选框,确定安装。




2.3、安装PHPManager
PHPManager安装过程简单,直接双击安装至完成。
打开控制面板-管理工具-Internet 信息服务(IIS)管理器,PHP Manager已存在IIS功能列表中
2.4、安装PHP5.3.12
安装php前先安装 Visual C++ 2008 x86再继续。(Win2008R2 SP1省略这一步)
解压php-5.3.12-nts-Win32-VC9-x86.zip,例如解压目录为c:\bbs\php\
打开PHPManager如下图

点击"Register new PHP version"选择已解压c:\bbs\php\目录下的php-cgi.exe,"Configure error reporting"选择"Prodution machine"
点击“Check phpinfo()”查看PHP安装信息。

PHP Manager功能丰富,自动安装php并监视php.ini,参数配置可视化,修改php.ini方便且不需重起IIS。
PHP5.4.0默认参数下,即可完美运行Discuz!X,十分方便。
也可根据需要改动php.ini参数
例如开启exif功能和修改上传文件大小限制
因为php_exif.dll要在php_gd2.dll之前加载,所以先关闭php_gd2.dll然后开启php_exif.dll再开启php_gd2.dll
打开PHP Manager中的"Enable or disable an extension" ,
先找到php_gd2.dll并Disable后再找到php_exif.dll并Enable,最后再找到php_gd2.dll并Enable
PHP5.4.0默认上传文件大小限制为2M
在PHP Manager中打开"Manager all setting"找到upload_max_filesize修改后面的值即可,注意不要忽略单位。
按照DZ官方安装指示,需要禁用php的一些功能,
在PHP Manager中打开"Manager all setting" 找到:
disable_functions=
添加以下值
passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server
然后再点击PHPManager中的Check phpinfo () ,查看以上信息是否已成功修改。
修改php.ini

进入c:\bbs\PHP文件夹,将php.ini-dist 重命名为php.ini
打开php.ini文件,找到:
extension_dir= "./"
将其改为:
extension_dir= "c:\bbs\PHP\ext"
找到:Windows Extensions
Windows Extensions下方的动态模块配置中,需要打开以下模块支持:(去掉模块配置每行前面的分号即可)
php_gd2.dll
php_mbstring.dll
php_mcrypt.dll
php_mhash.dll
php_ming.dll
php_mysql.dll
php_openssl.dll
php_sockets.dll
php_xmlrpc.dll
php_zip.dll
保存php.ini文件,并将其复制到c:\Windows\

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

 楼主| 发表于 2012-5-6 11:59:30 | 显示全部楼层
本帖最后由 ninjasex 于 2012-5-7 20:38 编辑

2.5、安装wincache
双击 wincache-1.1.0-5.3-nts-vc9-x86.exe 指定一个目录解压文件
找到解压文件夹中的php_wincache.dll并复制到PHP5.3.12目录下的ext文件夹内,
接着在php.ini中的最后面,添加以下参数。
extension = php_wincache.dll
配置完后,保存php.ini然后重启服务器即可。通过phpinfo函数可以查看wincache组件的参数安装情况。


安装wincache后 网站测速 提速至少10倍!

PHP 5.3是 微软和PHP 一起开发的版本,windows下用wincache和php 5.3是最般配的一对



2.6、安装URL Rewrite 伪静态
URL静态化是一个有利于搜索引擎的设置,通过URL静态化,达到原来是动态的PHP页面转换为静态化的HTML页面,可以提高搜索引擎抓取,自然提高搜索引擎的搜索量。
首先安装Rewrite Module (文章前面有软件下载地址),
Discuz!X2.5后台全局SEO设置URL静态化勾选开启所有可用规则,再打开“查看当前Rewrite 规则”,找到并复制"IIS7 Web Server(独立主机用户)"规则,添加到web空间根目录下的web.config中(没有请自建),格式如下
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
<rewrite>
        <rules>
                <rule name="portal_topic">
                        <match url="^(.*/)*topic-(.+).html\?*(.*)$" />
                        <action type="Rewrite" url="{R:1}/portal.php\?mod=topic&topic={R:2}&{R:3}" />
                </rule>
                <rule name="portal_article">
                        <match url="^(.*/)*article-([0-9]+)-([0-9]+).html\?*(.*)$" />
                        <action type="Rewrite" url="{R:1}/portal.php\?mod=view&aid={R:2}&page={R:3}&{R:4}" />
                </rule>
                <rule name="forum_forumdisplay">
                        <match url="^(.*/)*forum-(\w+)-([0-9]+).html\?*(.*)$" />
                        <action type="Rewrite" url="{R:1}/forum.php\?mod=forumdisplay&fid={R:2}&page={R:3}&{R:4}" />
                </rule>
                <rule name="forum_viewthread">
                        <match url="^(.*/)*thread-([0-9]+)-([0-9]+)-([0-9]+).html\?*(.*)$" />
                        <action type="Rewrite" url="{R:1}/forum.php\?mod=viewthread&tid={R:2}&extra=page%3D{R:4}&page={R:3}&{R:5}" />
                </rule>
                <rule name="group_group">
                        <match url="^(.*/)*group-([0-9]+)-([0-9]+).html\?*(.*)$" />
                        <action type="Rewrite" url="{R:1}/forum.php\?mod=group&fid={R:2}&page={R:3}&{R:4}" />
                </rule>
                <rule name="home_space">
                        <match url="^(.*/)*space-(username|uid)-(.+).html\?*(.*)$" />
                        <action type="Rewrite" url="{R:1}/home.php\?mod=space&{R:2}={R:3}&{R:4}" />
                </rule>
                <rule name="home_blog">
                        <match url="^(.*/)*blog-([0-9]+)-([0-9]+).html\?*(.*)$" />
                        <action type="Rewrite" url="{R:1}/home.php\?mod=space&uid={R:2}&do=blog&id={R:3}&{R:4}" />
                </rule>
                <rule name="forum_archiver">
                        <match url="^(.*/)*(fid|tid)-([0-9]+).html\?*(.*)$" />
                        <action type="Rewrite" url="{R:1}/index.php\?action={R:2}&value={R:3}&{R:4}" />
                </rule>
                <rule name="plugin">
                        <match url="^(.*/)*([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+).html\?*(.*)$" />
                        <action type="Rewrite" url="{R:1}/plugin.php\?id={R:2}:{R:3}&{R:4}" />
                </rule>
        </rules>
</rewrite>
    </system.webServer>
</configuration>
保存后,即可实现Discuz!X2.5 URL伪静态功能。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

 楼主| 发表于 2012-5-6 12:23:50 | 显示全部楼层
本帖最后由 ninjasex 于 2012-5-7 17:15 编辑

2 IIS7.5+PHP+Mysql+Zend+Xcache+URL伪静态
这种组合搭建方法请转帖至http://www.discuz.net/thread-2756258-1-1.html

三、常见问题及解决方法
有问题的在此贴跟贴留言,欢迎高手指正。
或者常见问题,转贴至
http://www.discuz.net/forum-88-1.html


鸣谢:mejsshttp://www.discuz.net/thread-2756258-1-1.html (部分内容转自此帖)

回复

使用道具 举报

 楼主| 发表于 2012-5-6 17:30:44 | 显示全部楼层
留帖待用
回复

使用道具 举报

发表于 2012-5-7 14:04:16 | 显示全部楼层
此贴必顶,望楼主尽快更新。正要用2008R2建站,有时间交流交流,我在北京。
回复

使用道具 举报

发表于 2012-5-7 16:00:45 | 显示全部楼层
为什么不用winche   ????用 非线性版。。。
回复

使用道具 举报

发表于 2012-5-7 18:03:34 | 显示全部楼层
好帖子啊!!!
回复

使用道具 举报

发表于 2012-5-10 11:01:49 | 显示全部楼层
挺详细的 ,但是指出一点,不建议使用Wincache,发现这东西在新版本的PHP里面,稳定性很不好,已经发现很多案例了,使用请谨慎,容易造成php-cgi崩溃
回复

使用道具 举报

 楼主| 发表于 2012-5-10 22:09:45 | 显示全部楼层
myp4p 发表于 2012-5-10 11:01
挺详细的 ,但是指出一点,不建议使用Wincache,发现这东西在新版本的PHP里面,稳定性很不好,已经发现很多 ...

是吗 那应该用什么加速软件呢
回复

使用道具 举报

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

本版积分规则

腾讯云自营「网站建设」全新上线!仅需1元,即可快速体验企业官网、电商网站的海量精美模版

小黑屋|Discuz! 官方站 ( 粤B2-20090059-165 )star

GMT+8, 2021-6-14 07:03

Powered by Discuz! X3.4

Copyright © 2001-2019 Tencent Cloud.

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