PHP安装问题


Posted in PHP onOctober 09, 2006

安装
这节将讲述安装过程中最常见的问题。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. 8. 某些操作系统: 我安装PHP没出错,可是我启动Apache时,得到一个 undefined symbol errors: [mybox:user /src/php4] root# apachectl configtest apachectl: /usr/local/apache/bin/httpd 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模块使用,那么请按下面的步骤做:

停止 httpd 进程
gdb httpd
停止 httpd 进程
> run -X -f /path/to/httpd.conf
浏览你刚才出错的 URL
> run -X -f /path/to/httpd.conf
如果你还有 core dump, gdb 现在会通知你
打入: bt
在你的 bug report里应该包含backtrace 。 这些会被发往 http://bugs.php.net/

如果你的脚本使用了正则表达式函数 (ereg() and friends), 你应该确保你编译 PHP 和 Apache 用的是同一个正则表达式包。 在 PHP 和 Apache 1.3.x 这个过程是自动进行的。
3. Unix: 我使用 RPMS 安装 PHP , 但Apache 不支持 PHP页面! 怎么办?
假设你安装了 Apache 和 PHP(从 RPM ) , 你需要反注释或者增加一些行在你的 http.conf 文件里: # Extra ModulesAddModule mod_php.cAddModule mod_php3.cAddModule mod_perl.c# Extra ModulesLoadModule php_module         modules/mod_php.soLoadModule php3_module        modules/libphp3.so     /* for PHP 3 */LoadModule php4_module        modules/libphp4.so     /* for PHP 4 */LoadModule perl_module        modules/libperl.soAnd add: AddType application/x-httpd-php3 .php3    /* for PHP 3 */AddType application/x-httpd-php .php      /* for PHP 4 */... 到全局域里, 或者到你想要的 支持PHP的虚拟域里。
4. 我使用 RPMS 安装 PHP 3 , 但是它没有我需要的数据库选项支持! 我该怎么办?
因为 PHP 3 内建支持的关系, 编译一个完整的可适于所有应用的 PHP RPM是相当困难的。 在 PHP 4有谈到这点。 对 PHP 3, 我们只好建议你使用INSTALL.REDHAT (在 PHP包里)描述的机制。 如果你一定要使用 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.spec
Then 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 的指引一步一步做要容易得多。

5. 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/httpd 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是一个脚本引擎。 

PHP 相关文章推荐
用PHP将数据导入到Foxmail
Oct 09 PHP
在PHP3中实现SESSION的功能(一)
Oct 09 PHP
PHP 学习路线与时间表
Feb 21 PHP
php中通过curl smtp发送邮件
Jun 05 PHP
php实现快速排序法函数代码
Aug 27 PHP
php 判断字符串中是否包含html标签
Feb 17 PHP
Symfony2安装的方法(2种方法)
Feb 04 PHP
PHP简单预防sql注入的方法
Sep 27 PHP
PHP+redis实现的悲观锁机制示例
Jun 12 PHP
php微信公众号开发之关键词回复
Oct 20 PHP
PHP开发实现快递查询功能详解
Apr 08 PHP
php中关于换行的实例写法
Sep 26 PHP
提问的智慧
Oct 09 #PHP
DOMXML函数笔记
Oct 09 #PHP
一个很方便的 XML 类!!原创的噢
Oct 09 #PHP
提问的智慧(2)
Oct 09 #PHP
PHP的FTP学习(二)[转自奥索]
Oct 09 #PHP
在PHP中利用XML技术构造远程服务(上)
Oct 09 #PHP
在PHP中利用XML技术构造远程服务(下)
Oct 09 #PHP
You might like
《神奇女侠:血脉》神力女超人大战犯罪公司
2020/04/09 欧美动漫
php+mysql开源XNA 聚合程序发布 下载
2007/07/13 PHP
PHP 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用
2011/07/17 PHP
Codeigniter校验ip地址的方法
2015/03/21 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
2017/11/17 PHP
Thinkphp 框架基础之源码获取、环境要求与目录结构分析
2020/04/27 PHP
javascript 实现 秒杀,团购 倒计时展示的记录 分享
2013/07/12 Javascript
在线一元二次方程计算器实例(方程计算器在线计算)
2013/12/22 Javascript
浅谈javascript 迭代方法
2015/01/21 Javascript
实例详解Nodejs 保存 payload 发送过来的文件
2016/01/14 NodeJs
Uploadify上传文件方法
2016/03/16 Javascript
Angular.js如何从PHP读取后台数据
2016/03/24 Javascript
JS简单实现浮动窗口效果示例
2016/09/07 Javascript
JS 获取HTML标签内的子节点的方法
2016/09/21 Javascript
Ztree新增角色和编辑角色回显问题的解决
2016/10/25 Javascript
用React-Native+Mobx做一个迷你水果商城APP(附源码)
2017/12/25 Javascript
vue样式穿透 ::v-deep的具体使用
2020/06/04 Javascript
使用vue3重构拼图游戏的实现示例
2021/01/25 Vue.js
[02:16]DOTA2超级联赛专访Burning 逆袭需要抓住机会
2013/06/24 DOTA
[01:13]2014DOTA2西雅图邀请赛 舌尖上的TI4
2014/07/08 DOTA
python海龟绘图实例教程
2014/07/24 Python
python深度优先搜索和广度优先搜索
2018/02/07 Python
python3 图片referer防盗链的实现方法
2018/03/12 Python
Pycharm导入Python包,模块的图文教程
2018/06/13 Python
解决python3 安装不了PIL的问题
2019/08/16 Python
Python魔法方法 容器部方法详解
2020/01/02 Python
Python PyQt5整理介绍
2020/04/01 Python
Python实现仿射密码的思路详解
2020/04/23 Python
AHAVA美国官方网站:死海海泥护肤品牌
2016/10/18 全球购物
美国在线购买空气净化器、除湿器、加湿器网站:AllergyBuyersClub
2021/03/16 全球购物
劳动竞赛活动方案
2014/02/20 职场文书
新学期决心书
2014/03/11 职场文书
小学安全工作汇报材料
2014/08/19 职场文书
生日赠语
2015/06/23 职场文书
诚信高考倡议书
2019/06/24 职场文书
Nginx内网单机反向代理的实现
2021/11/07 Servers