09-01
28

The specified module could not be found.

1. 可以选择其它的路径但最好不要用中间有空格的路径(例如:C:\Program Files\PHP 就不太好),如果这样做有些 web 服务器会崩溃。

2. 怎样将 PHP 目录加入到 Windows 路径 PATH 中去?

   * 进入:系统,选择“高级”标签页 点击“环境变量”按钮

   * 在“系统变量”栏中

   * 找到 Path 这一项(可能需要向下滚动才能找到)

   * 鼠标双击 Path 这一项

   * 在最后加入你的 PHP 目录,包括前面的“;”(例如:;C:\php)

   * 点击“确定”并重新启动电脑

3. 在 ZIP 包中有两个 ini 文件,php.ini-dist 和 php.ini-recommended。建议使用 php.ini-recommended,因为在该文件中优化了性能和安全。

4. 编辑新的 php.ini 文件。如果计划使用 OmniHTTPd,不要执行下一步。设置 doc_root 并指向 web 服务器的 document_root:

  doc_root = c:\apache\htdocs

5. 怎样使 php.ini 文件在 Windows 下被 PHP 所用?

  <1>有几种方法。如果使用 Apache,阅读专门的安装指示(Apache 1,Apache 2),否则就必须设定 PHPRC 环境变量:

  在 Windows NT,2000,XP 和 2003 中:

    * 进入控制面板并打开“系统”图标(开始 -> 设置 -> 控制面板 -> 系统,Windows XP/2003 中是:开始 -> 控制面板 -> 系统)

    * 选择“高级”标签页

    * 点击“环境变量”按钮

    * 在“系统变量”栏中

    * 点击“新建”按钮并在“变量名”中输入“PHPRC”,在“变量值”中输入 php.ini 文件所在的目录(例如:C:\php)

    * 点击“确定”并重新启动电脑

  在 Windows 98/Me 中需要编辑 autoexec.bat 文件:

    * 打开记事本(开始 -> 运行,然后输入 notepad 并点确定)

    * 打开 C:\autoexec.bat 文件

    * 在文件结尾处加入一行:set PHPRC=C:\php(将 C:\php 替换为你的 php.ini 实际存在的目录)。注意路径中不能包含空格。例如将 PHP 安装到了 C:\Program Files\PHP 中,你需要输入 C:\PROGRA~1\PHP 替代之

    * 保存文件并重新启动电脑

  <2> 复制所选择的 ini 文件到 PHP 能找到的目录中,并将其重命名为 php.ini.

     而php.ini 的搜索路径如下(按顺序):

     * SAPI 模块所指定的位置(Apache 2 中的 PHPIniDir 指令,CGI 和 CLI 中的 -c 命令行选项,NSAPI 中的 php_ini 参数,THTTPD 中的 PHP_INI_PATH 环境变量)

     * HKEY_LOCAL_MACHINE\SOFTWARE\PHP\IniFilePath(Windows 注册表位置)

     * PHPRC 环境变量

     * 当前工作目录(对于 CLI)

     * web 服务器目录(对于 SAPI 模块)或 PHP 所在目录(Windows 下其它情况)

     * Windows 目录(C:\windows 或 C:\winnt),或 --with-config-file-path 编译时选项指定的位置

  <3> 该名字后放在php目录中不动

  <4> 将其拷贝到c:\windows或c:\winnt目录中



6. 如果 php.ini 被使用了并且你是以模块方式运行 PHP 的,确保在修改了 php.ini 之后重新启动你的 web server。

7. 将 PHP 集成入 Apache(以 Apache 模块方式安装)

   需要将以下两行加入到 Apache 的 httpd.conf 配置文件中以设定 Apache 2.0 的 PHP 模块: 例子 6-6. PHP 在 Apache 2.0 中的模块方式

      # 对 PHP 4 用这两行:  

      LoadModule php4_module "c:/php/php4apache2.dll"

      # 别忘了从 sapi 目录中把 php4apache2.dll 拷贝出来!

      AddType application/x-httpd-php .php


      # 对 PHP 5 用这两行:

      LoadModule php5_module "c:/php/php5apache2.dll"

      AddType application/x-httpd-php .php



      # 配置 php.ini 的路径

      PHPIniDir "C:/php"



   注: 记得用自己 PHP 实际所在的路径替换掉上例中的 c:/php/。要留意在 LoadModule 指令中用的是 php4apache2.dll 或 php5apache2.dll,而不是 php4apache.dll 或 php5apache.dll,后者是设计用于 Apache 1.3.x 的。

8. 将php.ini中的display_errors = Off改为display_errors = On,只是为了自己编译的方便,而在实际使用中,这种配置非常不安全。

  同样的还有:display_startup_errors = Off改为了display_startup_errors = On

9. 将doc_root = 后面加"c:\apache2.2\htdocs"

10. 将extension_dir = "./"改为extension_dir = "c:\php\ext"

路径名最后加不加"\"?哪种方式更好?

路径名中使用反斜杠还是正斜杠好?

11. 将extension=php_mysql.dll前面的分号";"去掉

安装完apache后没出现问题,但和php构建使用时,启动apache出现这样的错误:httpd.exe: Syntax error on line 99 of C:/Apache2.2/conf/httpd.conf: Cannot load

C:/php/php5apache2.dll into server: The specified module could not be found."

Note the errors or messages above, and press the <ESC> key to exit.  25...

解决办法:

下载:

http://blog.haloso.com/attachments/200606/01_034408_php5apache2.dllphp5.1.x.rar

并解压.共有三个文件.

vcredist_x86.exe

php5apache2.dll

httpd.exe.manifest

1.将 php5apache2.dll 覆盖掉你原来PHP目录下的 php5apache2.dll 文件.

2.将 httpd.exe.manifest 文件复制到你的apache安装目录下的bin文件夹下.

3.双击运行vcredist_x86.exe安装.(如果您的系统里已安装了 .NET framework 2.就可以省掉这一步)

然后重启你的apache2.2

<3月1日更新>

更新一:有删除线的为原来的解决方案,使用一段时间发现这个方法安装的总是出问题,所以找到了一个更好的解决方法,不用下载上面说到的那个压缩包。

      首先我们先解释一下这个我们原来在httpd.conf中添加的这段指令:

LoadModule php5_module "c:/php/php5apache2.dll"

其中的php5apache2.dll是apache2.0.x的模块,而我原来以为是apache2.x的模块,php目录中还有一个文件php5apache2_2.dll是apache2.2.x的模块,所以如果我们应用php时使用apache2.2作为服务器,我们应该将这个指令改为:

LoadModule php5_module "c:/php/php5apache2_2.dll"

但如果使用apache2.0.x作为服务器,这个指令则不用改动。

只需改动一下便可以使上面那个错误提示消失,而且运行稳定无问题。

更新二:PHP 不仅限于只产生 HTML 的输出。还可以创建及操作多种不同图像格式的图像文件,包括 gif,png,jpg,wbmp 和 xpm。更方便的是,PHP 可以直接将图像流输出到浏览器。要处理图像,需要在配置文件中为PHP 加上图像函数的 GD 库,我们可以将配置文件中extension=php_gd2.dll前面的分号去掉。

更新三:

前面提到:路径名最后加不加"/"?哪种方式更好?路径名中使用反斜杠还是正斜杠好?

这两个问题我在哪本书中见过,但现在想不起来了。但从官方提供的配置来说,显然路径名后不加斜杠更好,至于为什么现在不太清楚。使用反斜杠好还是使用正斜杠?这在apache的官方文档中有说明:

接收文件名作为参数的指令必须使用Windows文件名而不是Unix文件名。 但是,因为Apache内部使用Unix风格的名字,你必须使用正斜杠而不是反斜杠。可以使用盘符;如果省略盘符,将假定使用Apache可执行文件所在盘符。

显然,显然这些是针对apache的配置文件的,不知道php中是怎样。但是在php脚本中,我们当然应该选择使用正斜杠,而不是反斜杠,因为使用正斜杠的脚本可移植性更好。



文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: PHP
相关日志:
评论: 0 | 引用: 0 | 查看次数: 1055
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭