win2008 R2 下 IIS7.5+PHP5.2.17+Mysql5.5.16+Zend3.3.3
前言
windows server 2008 r2 下面iis7.5已经对fastcgi的支持有了很大改进,还在使用php-isapi模式的朋友可以试一下。
鉴于目前php5.3.1还不能完美的支持主流php系统,不建议大家使用!
windows2008 server r2下面环境搭建分三种情况,大家可以根据自己的运行需要选择。
1、 iis7.5+php+mysql+wincache 1.0rc
这个环境组合大家已经看出来了 没有zend。
各个版本分别是:
php5.2.17–请注意是非线程安全版本 php 5.2.17 non-thread-safe zip package,
mysql5.0 x64,
wincache1.0rc for5.2,这个大家可以去微软iis官方下载,他将极大地提高您的系统运行效率!
如果您的服务器运行的都是开源程序,不需要zend,强烈建议您使用这个配置!
2、 iis7.5+php+mysql+zend+xcache
此组合版本分别是:
php-5.2.17-win32-vc6-x86.zip php请注意是线程安全版本
mysql-essential-5.0.91-winx64.msi
zendoptimizer3.3.3-windows x86
xcache1.3 for xcache-1.3.0-php-5.2.17-win32-vc6-x86.zip
此组合可以完美运行当今主流的php系统,但是美中不足的是使用php线程安全版本无法加载wincache,很遗憾的一点!但是可以用xcache作为补充,但是相比php-isapi模式已经好多了!
3、 鉴于iis7.5的新特性,可以根据每个站点的具体情况定制属于他的专有运行环境!
在iis7.5 fastcgi模式下,iis官方建议为每个站点设立单独的应用池,并且每个站点都可以拥有它自己的php.ini以及fastcgi.exe.允许在一台主机上运行不同版本的php.[1]
[1]以上部分内容引自网络.
[2] windows 2008 r2 仅有x64版本/windows 2008有x86和x64版本/windows 7有x86和x64版本; 以下教程对前面两个x86版本也能支持,仅需要替换mysql对应版本即可.
准备程序
选择以下这些版本需要注意的是mysql在2008r2下可以选择64位的,php的vc9是针对iis的,vc6针对apache的,线程安全和非安全版本本次选择的是线程安全版本, php线程安全版本无法加载wincache,所以我们用xcache作为替代,如果想用wincache就选用非线程安全版本,
1.mysql-essential-5.0.91-winx64.msi
2.php-5.2.17-win32-vc6-x86.zip
3.zendoptimizer-3.3.3-windows-i386.exe
4. xcache1.3 .2for-php-5.2.17-win32-vc6-x86.zip
5.phpmyadmin-3.3.10.-all-languages.zip
安装配置路径规划
mysql d:\service\ mysql
php d:\service\ php
zend d:\service\ zend
mysqldatebase d:\service\ mysqldatebase
web目录d:\web\ztgps
以下教程为完全说明,做过部分优化,完全经过测试,主调试环境windows 2008 r2 sp1服务器已安装组件net.fromwork 4+vc2008x64,教程有不当之处欢迎探讨.
一、安装配置mysql
二、安装配置iis7.5
三、安装配置php
四、iis7.5配置fastcgi
五、安装zendoptimizer
六、xcache安装配置
七、网页压缩配置
八、配置phpmyadmin 九、empirebak v2010 帝国备份 十一、其它事项
一、安装配置mysql
(1),双击 mysql-essential-5.0.91-winx64.msi
next
选择 custom 自定义安装:
next
点击"change"更改mysql安装目录:d:\service\ mysql
待文件复制安装完毕后,进行mysql设置界面,单击finish:
next
出现以下选择
选择detailedconfiguration(详细配置):
next
出现以下选择
选择mysql运行模式:server machine:
next
出现以下选择
选择 mysql 数据库默认存储方式:non-transactional database only
接则选择该选项。 next
出现以下选择
· manual setting(人工设置):选择该选项可以手动设置服务器并行连接的最大数目。从前面的下拉框中选择并行连接的数目,如果你期望的数目不在列表中,则在下拉框中输入最大连接数。
设定 mysql 最大连接数:一般设置为 128 - 512 之间的整数:
next
出现以下选择enable strict mode ,这样mysql就不会允许细小的语法错误。
建议您取消标准模式以减少麻烦。但熟悉mysql以后,尽量使用标准模式,因为它可以降低有害数据进入数据库的可能性。
next
出现以下选择
使用manual selected default character set/collation(字符集对话框)来更改 mysql服务器的默认字符集.
这里请选择你所要的默认字符集,*就选gbk吧
next
出现以下选择
要想将mysql服务器安装为服务,并自动启动,请选中launch the mysql server automatically选项
service name 默认mysql就行
include bin directory in windows path 这个也选上
next
修改设定 root 用户密码,注意:不要启动远程连接模式!
把enable root access from remote machines
create an anonymous account的两处取消选择
next install
完成 mysql 的安装,会自动启动 mysql 服务。
(1)测试mysql工作是否正常。
打开cmd命令提示符窗口,输入命令:mysql –u root –p
输入密码后,如果能够正常进入mysql控制台则说明mysql安装正常。
更改mysql数据库目录
a)打开cmd命令提示符窗口,输入命令:net stop mysql停止mysql服务运行;
b)打开d:\ service\mysql\my.ini
找到:
datadir = "d:\ service\mysql\data"
修改为:
datadir = "d:\service\ mysqldatabase"
c)将d:\service\mysql\data文件夹内的内容复制到d:\service\mysqldatabase;
d)打开cmd命令提示符窗口,输入命令:net start mysql启动mysql服务。
e)重新测试mysql是否工作正常。
(3)准备libmysql动态链接库
将d:\service\mysql\bin\目录下的 libmysql.dll, libmcrypt.dll, php5ts.dll(如果没有libmcrypt.dll,php5ts.dll这两个文件请到php程序目录下提取) 3个文件复制到 c:\windows\system32。
注:my.ini上面“basedir”是指向mysql的安装目录,“datadir”指向mysql的数据存放目录。
至此mysql已经安装完毕
三、安装配置php
打开php-5.2.17-win32-vc6-x86.zip
把php的压缩包内的文件解压到 d:\service\php文件夹,将php.ini-dist重命名为php.ini。
打开 php.ini文件,
找到:extension_dir = "./"
将其改为;
extension_dir = "d:/service/php/ext"
extension_dir是存放扩展库(模块)的目录,也就是php用来寻找动态扩展模块的目录。
找到post_max-size= 8m
修改为30m
找到:windows extensions
在 windows extensions下方的动态模块配置中,需要打开以下模块支持:(去掉模块配置每行前面的;号即可)
extension=php_gd2.dll, gd库支持,如果不打开该模块则discuz!论坛图片水印不能使用。
extension=php_mcrypt.dll,更好的支持phpmyadmin不选的话,会出现“无法载入mcrypt扩展
extension=php_mbstring.dll,打开mbstring,不选的话用phpmyadmin会出现红色提示。
extension=php_mysql.dll, 支持mysql。
extension=php_pdo.dll,
extension=php_pdo_mysql.dll,
前面的分号去掉,这样php才可以支持这些扩展,
还要开哪些功能可以以后根据需要再修改。php.ini可以备份,以后重装系统可以直接用。
8、配置session.save_path路径
更改session.save_path的路径为d:/service/php/tmp (注意有好几段此文字,请选择如下图的目录位置,此目录需要手动建立并开放读写权限)
session.save_path高级配置及其他说明事项,从php.ini配置文件翻译而来
你可以使用”n;[mode;]/path”这样模式定义该路径,n是一个整数,表示使用n层深度的子目录,而不是将所有数据文件都保存在一个目录下。
[mode;]可选,必须使用8进制数,默认600(=384),表示每个目录下最多保存的会话文件数量。[mode;]并不会改写进程的umask。php不会自动创建这些文件夹结构。可使用ext/session目录下的mod_files.sh脚本创建。如果该文件夹可以被不安全的用户访问(比如默认的”/tmp”),那么将会带来安全漏洞。当n>0时自动垃圾回收将会失效,具体参见下面有关垃圾搜集的部分。
如果你服务器上有多个虚拟主机,建议针对每个不同的虚拟主机分别设置各自不同的目录。
至此最基本的session配置就完成了,你只要保存php.ini,并重启iis,即可使用session功能。
其他session配置说明
session.save_handler = ”files”
默认以文件方式存取session数据,如果想要使用自定义的处理器来存取session数据,比如数据库,用”user”。
session.use_cookies = 1
是否使用cookies在客户端保存会话sessionid,默认为采用cookies
session.use_only_cookies = 0
是否仅仅使用cookie在客户端保存会话sessionid,这个选项可以使管理员禁止用户通过url来传递id,默认为0,如果禁用的话,客户端如果禁用cookie将使session无法工作。
session.name = “phpsessid”
当做cookie name来使用的session标识名
session.auto_start = 0
是否自动启动session,默认不启动,我们知道在使用session功能时,我们基本上在每个php脚本头部都会通过session_start()函数来启动session,如果你启动这个选项,则在每个脚本头部都会自动启动session,不需要每个脚本头部都以session_start()函数启动session,推荐关闭这个选项,采用默认值。
session.cookie_lifetime = 0
传递sessionid的cookie有效期(秒),0表示仅在浏览器打开期间有效。
session.gc_probability = 1
session.gc_divisor = 100
定义在每次初始化会话时,启动垃圾回收程序的概率。计算公式如下:session.gc_probability/session.gc_divisor,比如1/100,表示有1%的概率启动启动垃圾回收程序,对会话页面访问越频繁,概率就应当越小。建议值为1/1000~5000。
session.gc_maxlifetime = 1440
设定保存的session文件生存期,超过此参数设定秒数后,保存的数据将被视为'垃圾'并由垃圾回收程序清理。判断标准是最后访问数据的时间(对于fat文件系统是最后刷新数据的时间)。如果多个脚本共享同一个session.save_path目录但session.gc_maxlifetime不同,将以所有session.gc_maxlifetime指令中的最小值为准。
如果你在session.save_path选项中设定使用子目录来存储session数据文件,垃圾回收程序不会自动启动,你必须使用自己编写的shell脚本、cron项或者其他办法来执行垃圾搜集。
比如设置”session.gc_maxlifetime=1440″ (24分钟):
cd /path/to/sessions; find -cmin +24 | xargs rm
以上是一些常用的session配置选项说明,更多的session配置选项说明你可以参考php.ini文件中的说明。
接下来修改了一些文件上传以及内存使用最大限制:
搜索resource limits
找到以下进行修改:
max_execution_time = 30 ; 这里是每个脚本运行的最长时间,可以自己修改加长,单位秒。
max_input_time = 60 ; 这里是每个脚本可以消耗的时间,单位也是秒。
memory_limit = 128m ; 这里是脚本运行允许的最大内存,根据自己机器情况自行配置。
搜索upload_max_filesize
upload_max_filesize = 2m 这里是上载文件的最大许可大小 ,在线上传的图片站、论坛等可能需要设置更大的,自行修改。
现在php基本配置完成了,保存php.ini文件,并将其复制到c:\windows\
顺便提醒一下别忘记把register_globals = off修改成register_globals = on。
四、iis7.5配置fastcgi
打开php目录下的php.ini,查找:extension_dir = "./"
此处为php扩展的目录,检查是否如下extension_dir ="d:\service\php\ext\"
按图配置参数:
保存并关闭!
接下来将php挂接到iis
打开iis管理器,找到:“处理程序映射”,打开如下图 点击 添加模块映射:
上图引用自网络,把可执行文件位置替换成d:\service\php\php-cgi.exe即可.
确定后会提示是否创建fastcgi应用程序,点击是.
此时回到iis功能视图,找到:“fastcgi设置”,打开并按图操作
添加文件监视和环境变量:php_fcgi_max_requests,取值设置为10000:
添加对php.ini的文件监视可以在修改php配置之后重启iis而让更改实时生效!
进入d:\web\ztgps目录,新建一个phpinfo.php文件,内容为:
<?php
phpinfo();
?>
如果加载fastcgi不成功点击-应用程序池--然后defaultapppool应用池-选择高级设置
启用32位应用程序 后面选择 true
安装 zendoptimizer
安装过程非常友好,也比较简单,因而此处无截图说明。但需注意以下几点:
(1) zend optimzer 的安装目录要指定为 d:\service\zend ;
(2) 在安装过程中提示 php.ini 的位置是,注意观察是否为 c:\windows ,如果不是必须手动指定为 php.ini 的位置 ;也可以按默认,你把刚才配置的 php.ini 复制到 windows 目录。 (3) 安装过程中提示 iis 网站根目录的位置,指定为:d:\web 也既你存储站点的总目录 zend optimizer 安装完成后会自动重启 iis 服务,重启完成后需要再次打开 ie 浏览器窗口, 查看 phpinfo.php 支持信息,观察是否包含了 zend optimizer 支持信息,如果没有,则说 明 zend optimizer 没有安装成功!
默认安装完毕以后不不可以直接支持 zend 加密,需要做特别的设置 ..下面将讲解如何配置
zend,并让 php 可以支持 返回桌面,在”我的电脑”上面右键,点击”属性” 然后出现一下窗口,然后点击右边栏的”高级系统设置” 然后再点击下面的”环境变量”
双击打开编辑 path 变量窗口, 默认的是这样的%systemroot%\system32;%systemroot%;%systemroot%\system32\wbem;%systemro
ot%\system32\windowspowershell\v1.0\
然后在后面添加
;d:\service\zend\lib;d:\service\zend\lib\optimizer-3.3.0\php-5.2.x
还可以指定 php 和 mysql 把支持库的目录一并添加 方便使用 php –v 来调试 php 加载 情况 ;d:\service\mysql\bin;d:\service\php;d:\service\php\ext 添加这行即可(根据自己安装的文件路径自行填写)
一路确定
重启系统
想让变量值生效需要重启系统的。
注意:如果你的 zend 版本和 php 版本和我所演示的不同的话,那么上面的路径可能会更改,请 时情况修改文件路径
现在 php,mysql,fastcgi,zend 配置工作已经完成,如果不出意外的话,那么现在您的 iis 7.5 就可 以支持以上环境了 请使用 php 探针程序或者 phpinfo.php 查看是否配置成功。如果 ok
能看到如下信息就行了
推荐阅读
-
win2008 R2安装网站安全狗提示HTTP 错误 500.21的解决方法
-
win2008 r2 iis7.5中限制带宽的方法(图文)
-
Win2008 R2中IIS7.5配置完网站权限不足问题的解决方法
-
Win2008 r2开启ASP和FTP功能的方法
-
WIN7/win2008 r2 X64系统IIS 7.5 ACCESS数据库连接故障解决方法
-
Win2008 R2实现多用户远程连接设置方法
-
Win2008 R2/2012 网络负载平衡NLB相关内容
-
win7和win2008 r2下配置IIS7(ASP.net运行环境)
-
Windows server 2008 r2下MySQL5.7.17 winx64安装版配置方法图文教程
-
Win2008 R2安装.NET Framework 4的windows6.1-KB958488-V6001-x64出现灾难性故障解决方法