PHP安装问题

安装这节将讲述安装过程中最常见的问题。PHP 适用于 几乎任何的 OS (或许 OSX
之前的 MacOS 除外 ), 和几乎任何的WEB 服务器。要安装PHP, 跟着
发行版里的安装 文件的指引. Windows 用户也应该读install.txt 文件.
这儿也有一些帮助文档 。 1. Unix/Windows: 我的php.ini 应该放在哪? 2.
Unix: 我安装了 PHP, 但我每次加载一个文档, 会得到下面的消息: ‘Document
Contains No Data’! 怎么回事? 3. Unix: 我使用 RPMS 安装 PHP , 但Apache
不支持 PHP页面! 怎么办? 4. Unix: 我使用 RPMS 安装 PHP 3 ,
但是它没有我需要的数据库编译支持! 我该怎么办? 5. Unix: 我用 FrontPage
扩展包对Apache打了补丁, 忽然 PHP 停止工作。 是PHP 和 Apache FrontPage
包不兼容吗 ? 6. Unix/Windows:
我安装了PHP,但在浏览器里看我的PHP页面时,空白一片。 7. Unix/Windows:
我安装了PHP,但在浏览器里看我的PHP页面时,我得到一个 server 500 error.

  1. 某些操作系统: 我安装PHP没出错,可是我启动Apache时,得到一个 undefined
    symbol errors: [mybox:user /src/php4] root# apachectl configtest
    apachectl: /usr/local/apache/bin/ Undefined
    symbols:_compress_uncompress9. Windows:
    我安装了PHP,但在浏览器里看我的PHP页面, 得到如下错误: cgi error: The
    specified CGI application misbehaved by not returning a complete set of
    HTTP headers. The headers it did return are:10. Windows:
    我严格按照install的要求,可是还是不能让我的php在IIS下工作。 1.
    Unix/Windows: 我的php.ini 文件应该放在哪? UNIX下默认它应该放在
    /usr/local/lib 目录下。 这是它的 install-path/lib.
    很多人会在编译时改变它,使用–with-config-file-path 标志。 例如,
    你可以这样设它: –with-config-file-path=/etc然后你可以复制源程序包里的
    php.ini-dist 到 /etc/php.ini ,编辑它满足你的本地化需求。 Windows下
    php.ini默认的路径是 Windows 系统目录. 如果你在使用 Apache webserver,
    php.ini 则最先在 Apaches 安装目录下被查找, 例如: c:/program
    files/apache group/apache. 这样你可以有不同的 php.ini 对应不同版本的
    Apache。 更多细节请查阅 configuration file. 2. Unix: 我安装了 PHP,
    但我每次加载一个文档, 会得到下面的消息: ‘Document Contains No Data’!
    怎么回事?这可能是因为你的 PHP 发生了core-dumping错误。
    查找你的服务器错误日志文件,看看是否属于这种情况。
    然后报告这个错误。如果你知道怎样使用 ‘gdb’,你可以提供一个 backtrace
    在你的错误报告里。这将会对开发人员解决
    这个问题有很大帮助。如果你是在将PHP作为Apache模块使用,那么请按下面的步骤做:
    停止 进程 gdb 停止 进程 run -X -f /path/to/ 浏览你刚才出错的 URL run -X
    -f /path/to/ 如果你还有 core dump, gdb 现在会通知你 打入: bt 在你的 bug
    report里应该包含backtrace 。 这些会被发往
    如果你的脚本使用了正则表达式函数 (ereg() and friends), 你应该确保你编译
    PHP 和 Apache 用的是同一个正则表达式包。 在 PHP 和 Apache 1.3.x
    这个过程是自动进行的。 3. Unix: 我使用 RPMS 安装 PHP , 但Apache 不支持
    PHP页面澳门新葡亰手机版,! 怎么办? 假设你安装了 Apache 和 PHP ,
    你需要反注释或者增加一些行在你的 文件里: # Extra ModulesAddModule
    mod_php.cAddModule mod_php3.cAddModule mod_perl.c# Extra
    ModulesLoadModule php_modulemodules/mod_php.soLoadModule
    php3_modulemodules/libphp3.so/* for PHP 3 */LoadModule
    php4_modulemodules/libphp4.so/* for PHP 4 */LoadModule
    perl_modulemodules/libperl.soAnd add: AddType application/x- .php3/*
    for PHP 3 */AddType application/x- .php/* for PHP 4 */… 到全局域里,
    或者到你想要的 支持PHP的虚拟域里。 4. 我使用 RPMS 安装 PHP 3 ,
    但是它没有我需要的数据库选项支持! 我该怎么办? 因为 PHP 3 内建支持的关系,
    编译一个完整的可适于所有应用的 PHP RPM是相当困难的。 在 PHP
    4有谈到这点。 对 PHP 3, 我们只好建议你使用INSTALL.REDHAT 描述的机制。
    如果你一定要使用 RPM 版的 PHP 3, 读… RPM 包管理器设置 RPMS
    简单的安装,不带数据库支持 and 因为RPMS 使用 /usr/ 而不是标准的
    /usr/local/ 目录存放文件. 你需要告诉 RPM
    文件你要支持哪种数据库以及它们的最上级目录的位置。
    下面的例子将解释在Apache模式下怎样支持通行的数据库Mysql.
    当然所有的这些可以稍作修改,以支持其它的PHP支持的数据库。我们假设你安装了
    MySQL and Apache ,完全是用 RPMS 安装的。 首先,移去 mod_php3 : rpm -e
    mod_php3然后取得rpm包并安装, 不是 –重编译 rpm -Uvh
    mod_php3-3.0.5-2.src.rpm编辑/usr/src/redhat/SPECS/mod_php3.spec 文件
    在 %build 一节里增加你想要的数据库支持, 以及路径信息。 对 MySQL
    你应该增加: –with-mysql=/usr /%build 节看起来象: ./configure
    –prefix=/usr /–with-apxs=/usr/sbin/apxs
    /–with-config-file-path=/usr/lib /–enable-debug=no /–enable-safe-mode
    /–with-exec-dir=/usr/bin /–with-mysql=/usr
    /–with-system-regex改动完成后,象下面这样重编rpm : rpm -bb
    /usr/src/redhat/SPECS/mod_php3.specThen install the rpm rpm -ivh
    /usr/src/redhat/RPMS/i386/mod_php3-3.0.5-2.i386.rpm重启
    Apache,你已经得到了rpm下的Mysql的支持。 注意到这种做法比你重新得到一个
    PHP 3 的tarball 代码,按照 INSTALL.REDHAT 的指引一步一步做要容易得多。
  2. Unix: 我用 FrontPage 扩展包对Apache打了补丁, 忽然 PHP 停止工作。
    是PHP 和 Apache FrontPage 包不兼容吗 ? 不是, PHP 和
    FrontPage扩展包运行得很好.。问题是FrontPage 包修改了几个Apache
    结构参数,而PHP要用到它们.在FrontPage扩展包被打上后, 重新编译 PHP (使用
    ‘make clean ; make’) ,会解决这个问题。 6. Unix/Windows:
    我安装了PHP,但在浏览器里看我的PHP页面时,空白一片。
    在浏览器里用’查看源文件’看你的脚本,你可能会发现你看到的是源程序。
    这表示 web server
    并没有送脚本到PHP去执行。肯定是服务器配置上哪儿出了错。
    仔细检查PHP安装的 server 配置。7. Unix/Windows:
    我安装了PHP,但在浏览器里看我的 PHP页面时,我得到一个 server 500 error。
    这是服务器在运行 PHP 时发生了错误。
    为了看到可读的错误信息,在命令行,改变目录到 (php.exe Windows)所在目录,
    运行 php -i.
    如果有任何问题,详细的错误信息就显示出来了,它会告诉你下一步该做什么。
    如果你得到满屏的HTML代码 (phpinfo() 函数的输出),
    那么PHP工作正常,这个错误就是由于服务器配置引发的,应该仔细检查。8.
    某些操作系统: 我安装PHP没出错,可是我启动Apache时,得到一个 undefined
    symbol errors: [mybox:user /src/php4] root# apachectl configtest
    apachectl: /usr/local/apache/bin/ Undefined
    symbols:_compress_uncompress这个问题其实与 PHP 无关, 而与 MySQL
    客户端库有关。 –with-zlib,有些操作系统需要,而有些不需要。MySQL
    FAQ已经讲述了这个问题。 9. Windows:
    我安装了PHP,但在浏览器里看我的PHP页面, 得到如下错误: cgi error: The
    specified CGI application misbehaved by not returning a complete set of
    HTTP headers. The headers it did return are:这是 PHP
    根本没有产生任何输出。 为了看到可读的错误信息,在命令行,改变目录到
    (php.exe Windows)所在目录, 运行 php -i.
    如果有任何问题,详细的错误信息就显示出来了,它会告诉你下一步该做什么。
    如果你得到满屏的HTML代码 (phpinfo() 函数的输出), 那么PHP工作正常。
    一旦PHP在命令行模式下工作,再看看你的脚本程序,
    它还是失败,可能是因为以下原因: 你的PHP脚本的权限许可。 php.exe,
    php4ts.dll, php.ini 或者任何你可能装入的PHP文件,它样都必须能被匿名
    internet 用户 ISUR_machinename 访问。
    脚本文件根本不存在(或者不是你认为的位置。)请注意在IIS里,你能够阻塞这个错误,做法是在设置脚本映射目录时,
    选上’check file exists’框。这样如果脚本不存在,服务器会返回一个404错误。
    这样做也有其它的一些好处, 就是IIS仅为你做经过授权的操作。 10. Windows:
    我严格按照install的要求做,可是还是不能让我的php在IIS下工作。
    确定任何想要运行PHP的用户有操作php.exe的权限! IIS
    使用匿名的internet用户,它是在IIS安装时系统自动增加的。 这个用户需要操作
    php.exe的权限. 还有,任何需要授权的用户也必须有访问 php.exe的权限。 在
    IIS4下,你要告诉它PHP是一个脚本引擎。