WINDOWS2003+IIS环境下PHP配置心得

简单说来需要以下几步1、采用安装包或ZIP包将PHP安装到本机,采用安装包可以省去配置系统环境变量PATH

配置php.ini文件,缺点是选安装时选择几个扩展选项就安装几个扩展文件,不利于以后的系统扩展,如果采用手工安装则可以通过php.ini自已决定开启哪些扩展。同时也能够对php的工作机制有一个深入的了解。2、在IIS中安装WEB服务扩展,如果你只使用PHP

静态页,只允许PHP扩展就可以,其他全部禁用。网上其它文章所说必须开启ASP扩展,开启所有未知ISAPI扩展

开启所有未知CGI扩展都没有必要。3、在你的PHP网站或虚拟目录的属性-》主目录-》映射栏-》添加应用程序扩展,这一步是在地址栏里能识别.php扩展名的关键。4、到这一步实际上IIS就可以解析PHP了。可能你执行普通PHP脚本,但很可能连不上mysql数据库。关于激活mysql扩展库一般情况下,都能实现显示PHPinfo()的页面。就从能够显示该页面之后出现的问题说起

一般情况下,都能实现显示phpinfo()的页面。就从能够显示该页面之后出现的问题说起

php的问题都会显示在phpinfo()页面上

php的问题都会显示在phpinfo()页面上

首先查看自己的php.ini的路径是否正确

首先查看自己的php.ini的路径是否正确

Q:我已经配置了php.ini文件,但重新启动服务器后为什么没有任何效果?A:这个问题主要有这几种情况。第一个原因是由于系统所读取的php.ini文件与你当时修改的php.ini文件不一致造成的
1、 可以通过phpinfo()的Configuration File (php.ini)
Path选项查看当前PHP服务器读取的是哪一个php.ini 2、
如果你要更改php.ini的文件存取位置,可参考php.ini的搜索顺序,如下所示:
a) SAPI 模块所指定的位置 b) HKEY_LOCAL_MACHINESOFTWAREPHPIniFilePath
c) PHPRC 环境变量 d) 当前工作目录 e) web 服务器目录或 PHP 所在目录 f)
Windows 目录,或 –with-config-file-path 编译时选项指定的位置 3、
一般做法:通过设置PHPRC 环境变量, a)
操作:右击我的电脑-属性-高级-环境变量 b)
在系统变量下新建一个变量名为PHPRC
,变量值为你的php.ini文件所地文件路径的环境变量

Q:我已经配置了php.ini文件,但重新启动服务器后为什么没有任何效果?
A:这个问题主要有这几种情况。
第一个原因是由于系统所读取的php.ini文件与你当时修改的php.ini文件不一致造成的
 1、 可以通过phpinfo()的Configuration File (php.ini) Path选项查看当前PHP服务器读取的是哪一个php.ini
 2、 如果你要更改php.ini的文件存取位置,可参考php.ini的搜索顺序,如下所示:
  a)       SAPI 模块所指定的位置(Apache 2 中的 PHPIniDir 指令,CGI 和 CLI 中的 -c 命令行选项,NSAPI 中的 php_ini 参数,THTTPD 中的 PHP_INI_PATH 环境变量) 
  b)       HKEY_LOCAL_MACHINE/SOFTWARE/PHP/IniFilePath(Windows 注册表位置) 
  c)      PHPRC 环境变量 
  d)       当前工作目录(对于 CLI) 
  e)       web 服务器目录(对于 SAPI 模块)或 PHP 所在目录(Windows 下其它情况) 
  f)       Windows 目录(C:/windows 或 C:/winnt),或 –with-config-file-path 编译时选项指定的位置 
 3、 一般做法:通过设置PHPRC 环境变量,
  a)       操作:右击我的电脑->属性->高级->环境变量
  b)       在系统变量下新建一个“变量名为PHPRC   ,变量值为你的php.ini文件所地文件路径”的环境变量

第二个原因是:PHP没有找到相应的扩展库 1、
查看PHP找到的扩展库位置:在phpinfo()的extension_dir选项可以看到 2、
在php.ini更改extension_dir文件

第二个原因是:PHP没有找到相应的扩展库
 1、 查看PHP找到的扩展库位置:在phpinfo()的extension_dir选项可以看到
 2、 在php.ini更改extension_dir文件

第三个原因:没有完全重启IIS 1、
对php.ini的修改必须完全重启IIS才能起作用,而不能只是对当前站点进行重启。
2、 进入cmd,停止服务器:net stop iisadmin;启动服务器:net start w3svc

第三个原因:没有完全重启IIS
 1、 对php.ini的修改必须完全重启IIS才能起作用,而不能只是对当前站点进行重启。
 2、 进入cmd,停止服务器:net stop iisadmin;启动服务器:net start w3svc
 

Q:我的PHP怎么没有办法激活mysql扩展库A:在PHP5.0以上版本,MySQL
默认未启用,因此需要咱们进行手工激活。 1、 在PHP运行MySql,必须在
php.ini 中激活 php_mysql.dll 动态连接库,另外还需要访问 MySQL
客户端连接库即libmysql.dll文件 2、 可以通过php.ini中的extension激活
php_mysql.dll 动态连接库;而libmysql.dll文件必须放在Windows 的系统路径
PATH才能访问,可以通过把libmysql.dll复制到system32目录下,也可以在PATH环境变量中新增一个路径。

Q:我的PHP怎么没有办法激活MySql扩展库
A:在PHP5.0以上版本,MySQL 默认未启用,因此需要咱们进行手工激活。
  1、 在PHP运行MySql,必须在 php.ini 中激活 php_mysql.dll 动态连接库,另外还需要访问 MySQL 客户端连接库即libmysql.dll文件
  2、 可以通过php.ini中的extension激活 php_mysql.dll 动态连接库;而libmysql.dll文件必须放在Windows 的系统路径 PATH才能访问,可以通过把libmysql.dll复制到system32目录下,也可以在PATH环境变量中新增一个路径。
  3、 建议做法:通过设置PATH,方便以后的php升级,在系统环境变量中的PATH后增加“libmysql.dll”所在的文件夹即可。记得通过“;”号隔开
  4、 [案例]最近,服务器总是找不到MySql扩展库,导致程序无法运行。因此,把所有文件删除后重新配置PHP服务器。但最后在安装MySql的时候,却始终无法激活MySql扩展库。
  在phpinfo()中找到的信息如下:
  PATH:c:/php
  PHPRC:C:/php
  extension_dir:c:/php/ext/
  另外,我测试了将其它的库激活,如msql、gd2、xml,在phpinfo()都可以正常显示
  证明PHP能找到php_mysql.dll 动态连接库,而MySql的运行的另一个条件是能够讯问MySQL 客户端连接库即libmysql.dll文件,看来问题就在这里了。
  我对C盘搜索libmysql.dll文件,发现在system32和php文件夹各有一个文件,做好备份后,我尝试删除system32的libmysql.dll文件,发现被锁死,无法删除,却可以重新命名,我随便修改了名称,再重新启动IIS,服务器运行正常。
 

<

 

补充一点:如果Configuration File (php.ini) Path 显示为C:/Windows

就说明,php.ini文件没有读取到。

另外,我发现,在用IIS整合php时,有两种方式:ISAPI与CGI模式

这两种方式,我们都可以看到phpinfo页面

但是使用ISAPI模式,无法读取环境变量,所以通过环境变量PHPRC设置的php.ini路径无法找到。

使用CGI就可以,这样就不必把好多文件拷到系统文件下

 

版权声明:本文为博主原创文章,未经博主允许不得转载。


发表评论

电子邮件地址不会被公开。 必填项已用*标注