欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Win2003+apache+PHP+SqlServer2008 配置生产环境

程序员文章站 2022-11-14 18:06:20
 安装前的准备: 1.apache2.2.2 2.php5.2.17 3.sqlserver2008 4.sqlncli.msi(sq...

 安装前的准备:

1.apache2.2.2

2.php5.2.17

3.sqlserver2008

4.sqlncli.msi(sqlserver客户端,可以到微软官方网站去下载)

5.ntwdblib.dll (2000.80.194.0)

6.sqlsrv20.exe,即microsoftdriver 2.0 for php for sql server(sql server 2005 及2008使用sqlsrv20.exe, sql server 2010使用sqlsrv30.exe)(需要其中的php_pdo_sqlsrv_52_ts_vc6.dll和php_sqlsrv_52_ts_vc6.dll);其中,52表示 php5.2,53表示php5.3,ts表示线程安全,nts表示非线程安全,vc6表示用vc6(vs2005)编译的,vc9表示用vs2008编译的,vc6适用于apache,vc9适用于iis。

开始安装:

apache  的安装

1 点击apahce安装包

2 接受协议

3 下面3项随便填即可     apache 监听80 端口.如果iis用了80端口,修改iis端口或者apache端口,以免冲突

(如果本机测试可以填写127.0.0.1)

4 这里默认的是 typical,建议选custom,点击next.

5 这里可用修改安装路径,注意安装路径不能含中文.

6 点击install开始安装

7 安装完成后在浏览器里打入  或者 如果可以看到这个页面,证明apache安装成功,已经可以解释静态页面了

sql server 2008 的安装 ( )

php的安装

由于php是一个zip文件(非install版),安装较为简单 解压就行.把解压的 php-5.2.17-win32 重命名为 php5.并复制到c盘目录下.即安装路径为 c:\php5

1  找到php目录下的 php.ini.recommended (或者php.ini-dist)文件,重命名为 php.ini 并复制到系统盘的windows目录下(以c:\windows为例).

2  再把php目录下的php5ts.dll, php_mssql.dll复制到目录 c:\windows\system32下.

3  把php5\ext目录下的php_gd2.dll,php_mssql.dll,php_mbstring.dll文件复制到c:\windows\system32下  如果没有加载 php_gd2.dll  php将不能处理图像. php_mbstring.dll在后面使用phpmyadmin时支持宽字符

配置 php 并关联

sql server 2008

打开c:\windows\php.ini文件

1 设置扩展路径 查找 extension_dir 有这么一行 extension_dir = "./" 将此行改成 extension_dir = "c:\php5\ext"  其中c:\php5是你安装php的路径.路径不正确将无法加载dll  (注意:有些php版本是 ;extension_dir = "./" 要把前面的分号去掉)

2 分别查找  ;extension=php_mbstring.dll ;extension=php_gd2.dll ;extension=php_mssql.dll 把上面3项前面的分号去掉,这样apache启动时就可以加载这些dll了

添加:extension=php_sqlsrv_52_ts_vc6.dll(或extension=php_pdo_sqlsrv_52_ts_vc6.dll),注意:二者只能选其一,如果两个都添加则apache无法启动。

当然前面我们也把这些dll复制到system32下了.(大家在安装的过程中都注意到如何把一些dll加载入来了.

3 设置会话保存路径 查找session.save_path 有这么一行 ;     session.save_path = "n;/path" 在此行后加入一行(注意是加入一行,不是加到后面) session.save_path = "c:\windows\temp"  保存到你的临时目录下,这里完全可以保存到windows临时目录temp下

4 还有比较值得注意的是 short_open_tag .有一些php版本默认是off的. 也就是说 php不能使用短标记如 <? ?> 必须使用<?php ?> 由于短标记使用方便,并且很多程序也是用短短标记来写,如discuz等 如果不把 short_open_tag 改成on将出现的症状将很难判断是上面原因,这里建议修改  查找 short_open_tag = off 改为 short_open_tag = on

5 是否显示错误 display_errors  出于安全性考虑,display_errors 有些版本也默认为 off. 就是说在调试时,如果php代码有误,就只出现一个空白页.而不会显示出错原因和出错行数. 这样调试起来将非常不便,建议根据自己需要修改 查找 display_errors = off           (注意不是 ; - display_errors = off           [security]) 改成 display_errors = on

6 显示notice敬告提示 第五步虽然打开了出错提示,但出错报告还受到 error_reporting 的控制. php5默认关闭notice敬告提示,如果是在本地调试,建议打开notice敬告提示. 查找 error_reporting  =  e_all 改成 error_reporting  =  7

另外提示一下,在程序中也可以通过error_reporting()控制错误报告输出,具体怎么用大家参考下手册.

7 register_globals 出于安全性考虑它默认也是off 当register_globals=off的时候,下一个程序接收的时候应该用$_post['user_name']和$_post['user_pass'])  当register_globals=on的时候,下一个程序可以直接使用$user_name和$user_pass来接受值.  建议根据自己需要修改,为了兼容问题,我还是把它改成on了.

8 php5时差问题 <?php echo date("y-m-d h:i:s");?>时间相差八小时 为什么呢?php5系列版本新增了时区设置,默认为格林威治时间,与中国所在的东8区正好相差8个小时 查找date.timezone有这么一行 ;date.timezone = 将;去掉,改成 date.timezone = prc  其中prc:people's * *,

9 php5上传文件问题 a. 一般的文件上传,除非文件很小.就像一个5m的文件,很可能要超过一分钟才能上传完. 但在php中,默认的该页最久执行时间为 30 秒.就是说超过30秒,该脚本就停止执行. 这就导致出现 无法打开网页的情况.这时我们可以修改 max_execution_time

在php.ini里查找  max_execution_time 默认是30秒.改为 max_execution_time = 0  0表示没有限制

另一种方法是可以在php程序中加入 set_time_limit(); 来设定页面最久执行时间. set_time_limit(0);//0表示没有限制

b. 修改 post_max_size 设定 post 数据所允许的最大大小。此设定也影响到文件上传。 php默认的post_max_size 为2m.如果 post 数据尺寸大于 post_max_size $_post 和 $_files superglobals 便会为空. 查找 post_max_size .改为 post_max_size = 150m

c. 很多人都会改了第二步.但上传文件时最大仍然为 8m. 为什么呢.我们还要改一个参数upload_max_filesize 表示所上传的文件的最大大小。  查找upload_max_filesize,默认为8m改为 upload_max_filesize = 100m

另外要说明的是,post_max_size 大于 upload_max_filesize 为佳.

apache 整合php

1 打开apache配置文档,以作者的电脑为例:d:\myphp\apache2.2\conf\httpd.conf

2 修改网站根目录 查找documentroot有这么一行 documentroot "c:/program files/apache software foundation/apache2.2/htdocs" 这就是你网站的根目录,你可以修改,也可以用默认的.如果改,还要修改下面这项,否则可能会出现 403 错误 查找  this should be changed to whatever you set documentroot to 在它下面两行有 <directory "c:/program files/apache software foundation/apache2.2/htdocs"> 把上面两项的 c:/program files/apache group/apache2/htdocs 改成你想要的目录

3 查找  directoryindex index.html 修改成 directoryindex index.html index.html.var index.php  这样index.php 可以充当默认页面了

4 apache中模块化安装php 查找 # loadmodule foo_module modules/mod_foo.so 在此行后加入一行 loadmodule php5_module c:/php5/php5apache2_2.dll

(其中c:/php5/php5apache2_2.dll是你安装php的相应路径. 注意不要把php5apache2_2.dll,php5apache2.dll和php5apache.dll混淆.php5apache.dll只适用于apache 版本1的. php5压缩包里的php5apache2.dll只适用于apache2.0.*版本,如果是2.2.*以上版本,必须使用php5apache2_2.dll.否则就可能会出现 "cannot load c:/php/php5apache2.dll into server: the specified module could not be found." 或者: "the requested operation has failed" 的情况. 不过php5apache2_2.dll出来之后也就没有多少参考价值了)

5 查找 addtype application/x-gzip .gz .tgz 在此行后加入一行 addtype application/x-httpd-php .php  这样apache就可以解释php文件了  到这里配置基本完成了

6 重启apache,在网站根目录下创建一个 phpinfo.php 文件

<?php phpinfo(); ?>

在浏览器中打开。如果能正常看到php的信息,则说明php已经配置好了。


最关键的一步,也就是区别于加载其它 数据库 扩 展的一步,安装sqlncli.msi(sqlserver2008客户端),第一次配的时候,折磨了我一个星期,就是因为没有装客户端,以致总是提示找不到扩展。再把ntwdblib.dll (2000.80.194.0),注意一下版本,php本身也有这个文件,是老版本的,只支持sqlserver2000。

最后重启apache服务器,写个php文件,测试一下,一切ok,搞定了!