热烈祝贺台州朗动科技的站长论坛隆重上线!(2012-05-28)    热烈庆祝伟大的祖国60周年生日 点击进来我们一起为她祝福吧(2009-09-26)    站长论坛禁止发布广告,一经发现立即删除。谢谢各位合作!.(2009-08-08)    热烈祝贺台州网址导航全面升级,全新版本上线!希望各位一如既往地支持台州网址导航的发展.(2009-03-28)    台州站长论坛恭祝各位新年快乐,牛年行大运!(2009-01-24)    台州Link正式更名为台州网址导航,专业做以台州网址为主的网址导航!(2008-05-23)    热烈祝贺台州Link资讯改名为中国站长资讯!希望在以后日子里得到大家的大力支持和帮助!(2008-04-10)    热烈祝贺台州Link论坛改名为台州站长论坛!希望大家继续支持和鼓励!(2008-04-10)    台州站长论坛原[社会琐碎]版块更名为[生活百科]版块!(2007-09-05)    特此通知:新台州站长论坛的数据信息全部升级成功!">特此通知:新台州站长论坛的数据信息全部升级成功!(2007-09-01)    台州站长论坛对未通过验证的会员进行合理的清除,请您谅解(2007-08-30)    台州网址导航|上网导航诚邀世界各地的网站友情链接和友谊联盟,共同引领网站导航、前进!(2007-08-30)    禁止发广告之类的帖,已发现立即删除!(2007-08-30)    希望各位上传与下载有用资源和最新信息(2007-08-30)    热烈祝贺台州站长论坛全面升级成功,全新上线!(2007-08-30)    
便民网址导航,轻松网上冲浪。
台州维博网络专业开发网站门户平台系统
您当前的位置: 首页 » PHP/Perl编程 » PHP安装十大经典问题

PHP安装十大经典问题

论坛链接
  • PHP安装十大经典问题
  • 发布时间:2009-02-12 15:25:22    浏览数:6015    发布者:tzlink    设置字体【   
1. unix/windows: 我的php.ini 文件应该放在哪?unix下默认它应该放在 /usr/local/lib 目录下。这是它的 /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 i6>

如果你还有 core dump, gdb 现在会通知你

打入:

在你的 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.so

and 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 4 *88r:<P?

然后取得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 w o!t"iYOU

改动完成后,象下面这样重编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 A?

重启 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_ 访问。

脚本文件根本不存在(或者不是你认为的位置。)请注意在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网络编程从入门到精通》《零基础学PHP》。入门后,可以看看《PHP+MYSQL经典案例剖析》和《完全手册:PHP网络开发详解》。在Linux开发,可以看看《LAMP网站开发黄金组合 LINUX+APACHE+MYSQL+PHP》。
娱乐休闲专区A 影视预告B 音乐咖啡C 英语阶梯D 生活百科
网页编程专区E AMPZF HTMLG CSSH JSI ASPJ PHPK JSPL MySQLM AJAX
Linux技术区 N 系统管理O 服务器架设P 网络/硬件Q 编程序开发R 内核/嵌入
管理中心专区S 发布网址T 版主议事U 事务处理