当前位置:  编程技术>php
本页文章导读:
    ▪PHP概述.       1. PHP是什么? 2. PHP 代表什么? 3. 各版本之间有什么关系? 4. 我可以同时运行不同版本的PHP吗? 5. PHP 3 和 PHP 4有什么区别? 6. 我想我发现了一个BUG,我应该告诉谁 ? 1. PHP是什么.........
    ▪PHP安装问题       安装这节将讲述安装过程中最常见的问题。PHP 适用于 几乎任何的 OS (或许 OSX 之前的 MacOS 除外 ), 和几乎任何的WEB 服务器。要安装PHP, 跟着 发行版里的安装 文件的指引. Wi.........
    ▪提问的智慧       提问的智慧 Copyright (C) 2001 by Eric S. Raymond 中文版Copyleft 2001 by D.H.Grand(nOBODY/Ginux) 英文版:http://www.tuxedo.org/~esr/faqs/smart-questions.html 感谢Eric的耐心指点和同意,本文才得以完.........

[1]PHP概述.
    来源: 互联网  发布时间: 2013-11-30

1. PHP是什么?
2. PHP 代表什么?
3. 各版本之间有什么关系?
4. 我可以同时运行不同版本的PHP吗?
5. PHP 3 和 PHP 4有什么区别?
6. 我想我发现了一个BUG,我应该告诉谁 ?
1. PHP是什么?
在 手册前言上写到:
PHP是一种嵌入式HTML脚本语言。它的大多数语法来源于C,也有一部分PHP特性借鉴于Java 和 Perl 。这种语言的目的是让WEB开发 人员能够快速高效地写出动态生成的页面。
这儿 (在 Zend站点上)是 Stig S鎡her Bakken 写的一个好的PHP的介绍。 还有, 很多 PHP 资源 都是可以免费得到的.
2. PHP 代表什么?
PHP 代表什么? PHP: 超文本预处理器. 这样的一种代表使很多人感到困惑,因为简写的头一个词就这简写本身。 这种类型的简写称为递归简写。 好奇的人可以阅览 在线免费计算机词典查阅更多的信息
3. 各版本之间有什么关系?
PHP/FI 2.0 是早期版本,现在它不再被支持。 PHP 3 是 PHP/FI 2.0 继承者, 比PHP 2要好一些。 PHP 4 是最终版本(目前), 它使用了 Zend 引擎 机制。
4. 我可以同时运行不同版本的PHP吗?
是的,可以。详情参阅PHP源代码发行包里的 INSTALL 文件。当然,也要读一下相关的 附件.
5. PHP 3 和 PHP 4 有什么区别?
PHP 4 的书的作者们写了 许多文章 关于这个.下面是其中最重要的新特性:

扩展API模块
UNIX下通用的编译过程
通用WEB服务接口,支持多线程 WEB 服务器
改进的语法
内置HTTP session 支持
输出缓冲支持
更为强大的配置系统
引用计数
如果想看这些特性的细节,请参阅 What's new in PHP 4 overview 如果你正在从PHP 3 转向PHP 4, 那还得读相关 附件。
6. 我想我发现了一个 bug! 我应该告诉谁?
你首先应该去 PHP Bug Database 查一下,确认这不是一个已知的 bug。 如果在数据库里没有发现它,那么就填写报告表格来报告这个bug。 记住,一定要使用 bug 而不是简单地通知给一个邮件组,因为在数据库里bug 会分配一个 tracking number 以便于你将来返回来查询bug的进展状态。 bug database可以在下面的地址找到: http://bugs.php.net/.

    
[2]PHP安装问题
    来源: 互联网  发布时间: 2013-11-30

安装
这节将讲述安装过程中最常见的问题。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是一个脚本引擎。 

    
[3]提问的智慧
    来源: 互联网  发布时间: 2013-11-30

提问的智慧


Copyright (C) 2001 by Eric S. Raymond
中文版Copyleft 2001 by D.H.Grand(nOBODY/Ginux)

英文版:http://www.tuxedo.org/~esr/faqs/smart-questions.html
感谢Eric的耐心指点和同意,本文才得以完成并发布,本指南
英文版版权为Eric Steven Raymond所有,
中文版版权由D.H.Grand[nOBODY/Ginux]所有。



在黑客世界里,当提出一个技术问题时,你能得到怎样的回答?这取决于挖出
答案的难度,同样取决于你提问的方法。本指南旨在帮助你提高发问技巧,以
获取你最想要的答案。

首先你必须明白,黑客们只偏爱艰巨的任务,或者能激发他们思维的好问题。
如若不然,我们还来干吗?如果你有值得我们反复咀嚼玩味的好问题,我们自
会对你感激不尽。好问题是激励,是厚礼,可以提高我们的理解力,而且通常
会暴露我们以前从没意识到或者思考过的问题。对黑客而
言,“问得好!”是发自内心的大力称赞。

尽管黑客们有蔑视简单问题和不友善的坏名声,有时看起来似乎我们对新手,
对知识贫乏者怀有敌意,但其实不是那样的。

我们不想掩饰对这样一些人的蔑视--他们不愿思考,或者在发问前不去完成他
们应该做的事。这种人只会谋杀时间--他们只愿索取,从不付出,无端消耗我
们的时间,而我们本可以把时间用在更有趣的问题或者更值得回答的人身上。
我们称这样的人为“失败者”(由于历史原因,我们有时
把它拼作“lusers”)。

我们在很大程度上属于志愿者,从繁忙的生活中抽出时间来解惑答疑,而且时常
被提问淹没。所以我们无情的滤掉一些话题,特别是抛弃那些看起来象失败者的
家伙,以便更高效的利用时间来回答胜利者的问题。

如果你觉得我们过于傲慢的态度让你不爽,让你委屈,不妨设身处地想想。我
们并没有要求你向我们屈服--事实上,我们中的大多数人最喜欢公平交易不过
了,只要你付出小小努力来满足最起码的要求,我们就会欢迎你加入到我们的
文化中来。但让我们帮助那些不愿意帮助自己的人是没有
意义的。如果你不能接受这种“歧视”,我们建议你花点钱找家商业公司签个
技术支持协议得了,别向黑客乞求帮助。

如果你决定向我们求助,当然不希望被视为失败者,更不愿成为失败者中的一
员。立刻得到有效答案的最好方法,就是象胜利者那样提问--聪明、自信、有
解决问题的思路,只是偶尔在特定的问题上需要获得一点帮助。

(欢迎对本指南提出改进意见。任何建议请E-mail至esr@thyrsus.com,然而
请注意,本文并非网络礼节的通用指南,我通常会拒绝无助于在技术论坛得到
有用答案的建议。)
(当然,如果你写中文,最好还是寄到DHGrand@hotmail.com;-)

========
提问之前
========

在通过电邮、新闻组或者聊天室提出技术问题前,检查你有没有做到:
1. 通读手册,试着自己找答案。
2. 在FAQ里找答案(一份维护得好的FAQ可以包罗万象:)。
3. 在网上搜索(个人推荐google~~~)。
4. 向你身边精于此道的朋友打听。

当你提出问题的时候,首先要说明在此之前你干了些什么;这将有助于树立你
的形象:你不是一个妄图不劳而获的乞讨者,不愿浪费别人的时间。如果提问
者能从答案中学到东西,我们更乐于回答他的问题。

周全的思考,准备好你的问题,草率的发问只能得到草率的回答,或者根本得
不到任何答案。越表现出在寻求帮助前为解决问题付出的努力,你越能得到实
质性的帮助。

小心别问错了问题。如果你的问题基于错误的假设,普通黑客(J. Random
Hacker)通常会用无意义的字面解释来答复你,心里想着“蠢问题...”,希
望着你会从问题的回答(而非你想得到的答案)中汲取教训。

决不要自以为够资格得到答案,你没这种资格。毕竟你没有为这种服务支付任
何报酬。你要自己去“挣”回一个答案,靠提出一个有内涵的,有趣的,有思
维激励作用的问题--一个对社区的经验有潜在贡献的问题,而不仅仅是被动的
从他人处索要知识--去挣到这个答案。

另一方面,表明你愿意在找答案的过程中做点什么,是一个非常好的开端。
“谁能给点提示?”、“我这个例子里缺了什么?”以及“我应该检查什么
地方?”比“请把确切的过程贴出来”更容易得到答复。因为你显得只要有
人指点正确的方向,你就有完成它的能力和决心。

========
怎样提问
========

------------
谨慎选择论坛
------------

小心选择提问的场合。如果象下面描述的那样,你很可能被忽略掉或者被看作失败者:
1. 在风马牛不相及的论坛贴出你的问题
2. 在探讨高级技巧的论坛张贴非常初级的问题;反之亦然
3. 在太多的不同新闻组交叉张贴

----------------------------
用辞贴切,语法正确,拼写无误
----------------------------

我们从经验中发现,粗心的写作者通常也是马虎的思考者(我敢打包票)。
回答粗心大意者的问题很不值得,我们宁愿把时间耗在别处。

正确的拼写,标点符号和大小写很重要。
更一般的说,如果你的提问写得象个半文盲,你很有可能被忽视。

如果你在使用非母语的论坛提问,你可以犯点拼写和语法上的小错--但决不能
在思考上马虎(没错,我们能弄清两者的分别)

----------------------------
使用含义丰富,描述准确的标题
----------------------------

在邮件列表或者新闻组中,大约50字以内的主题标题是抓住资深专家注意力
的黄金时机。别用喋喋不休的“帮帮忙”(更别说“救命啊!!!!!”这
样让人反感的话)来浪费这个机会。不要妄想用你的痛苦程度来打动我们,
别用空格代替问题的描述,哪怕是极其简短的描述。

蠢问题:
救命啊!我的膝上机不能正常显示了!

聪明问题:
XFree86 4.1下鼠标光标变形,Fooware MV1005的显示芯片。

如果你在回复中提出问题,记得要修改内容标题,表明里面有一个问题。一个
看起来象“Re:测试”或者“Re:新bug”的问题很难引起足够重视。另外,引
用并删减前文的内容,给新来的读者留下线索。

------------------
精确描述,信息量大
------------------

1. 谨慎明确的描述症状。
2. 提供问题发生的环境(机器配置、操作系统、应用程序以及别的什么)。
3. 说明你在提问前是怎样去研究和理解这个问题的。
4. 说明你在提问前采取了什么步骤去解决它。
5. 罗列最近做过什么可能有影响的硬件、软件变更。

尽量想象一个黑客会怎样反问你,在提问的时候预先给他答案。

Simon Tatham写过一篇名为《如何有效的报告Bug》的出色短文。强力推荐你也读一读。

--------
话不在多
--------

你需要提供精确有效的信息。这并不是要求你简单的把成吨的出错代码或者数据完
全转储摘录到你的提问中。如果你有庞大而复杂的测试条件,尽量把它剪裁得越小
越好。

这样做的用处至少有三点。第一,表现出你为简化问题付出了努力,这可以使你得
到回答的机会增加;第二,简化问题使你得到有用答案的机会增加;第三,在提炼
你的bug报告的过程中,也许你自己就能找出问题所在或作出更正。

------------------
只说症状,不说猜想
------------------

告诉黑客们你认为问题是怎样引起的没什么帮助。(如果你的推断如此有效,还用
向别人求助吗?),因此要确信你原原本本告诉了他们问题的症状,不要加进你自
己的理解和推论。让黑客们来诊断吧。

蠢问题:
我在内核编译中一次又一次遇到SIG11错误,我怀疑某条飞线搭在主板的走线上了,
这种情况应该怎样检查最好?

聪明问题:
我自制的一套K6/233系统,主板是FIC-PA2007 (VIA Apollo VP2芯片组),256MB
Corsair PC133
SDRAM,在内核编译中频频产生SIG11错误,从开机20分钟以后就有这种情况,开机
前20分钟内从没发生过。重启也没有用,但是关机一晚上就又能工作20分钟。所有
内存都换过了,没有效果。相关部分的典型编译记录如下...。

------------------
按时间顺序列出症状
------------------

对找出问题最有帮助的线索,往往就是问题发生前的一系列操作,因此,你的说明
应该包含操作步骤,以及电脑的反应,直到问题产生。

如果你的说明很长(超过四个段落),在开头简述问题会有所帮助,接下来按时间
顺序详述。这样黑客们就知道该在你的说明中找什么。

    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3