注册 登录
编程论坛 PHP技术论坛

每天学一点,每天你都有新的收获

lingbo 发布于 2005-12-03 09:56, 17138 次点击

也许我们这里面新手太多,那么我们就从现在开始学习,相信我们都会成为PHP高手的。
相信自已吧!希望在学多多支持。
下面我们就开始第一天的学习吧!

学习第一天:谁备六大联合软件apache、mysql、ZendOptimizer、php、phpEd、phpMyAdmin
http://www.phpchina.cn/downloads/这里可以下载所要的资科

Apache 2和PHP是创建交互式网站的流行方案,而且成本很低。在Windows中安装Apache 2是一件轻而易举的事情,但要使PHP 4与Apache 2配合无间地运行,就需要一定的技巧。

在PHP 4.3手册的Windows安装小节,没有解释如何让PHP与Apache 2配合使用,而有关Apache 2安装的小节缺失了你需要的大量信息。在网上公布的其他安装指南中,也包含了不少错误,使一些安装人员只好不断试验和犯错。例如,有些人甚至将PHP的DLL替换成其他PHP版本的DLL。OK,为了节省你的宝贵时间,我们准备了这篇最权威的指南文章,帮你扫除一切烦恼。

使用正确版本的Windows

首先要说一说兼容性:Apache 2不能在Windows 95上运行;在Windows 98上勉强能够运行,但不能作为服务使用。从4.3版本开始,PHP也不再支持Windows 95。所以,你的Windows操作系统必须是Windows NT、2000或者XP。

Apache 2:源码还是二进制?
如果你有Visual C++ 5.0或更高的版本,或者安装了Microsoft Visual Studio,那么虽然可以根据源码来生成Apache,但请绝对不要这样做。在Visual Studio IDE中,Windows下的生成过程非常复杂。即使从命令行编译,也绝对不是一件易事。所以,除非你喜欢创建makefile,否则最好获得一份Windows Installer二进制发行包,也就是一个.msi文件。等你对Apache有了足够多的认识,知道自己要进行哪些定制操作时,才可考虑亲手生成(编译)Apache。

如果已经安装好并正在运行老版本的Apache,首先要停止它,卸载它,然后才能开始安装新服务器。多个版本的Apache 2不能共存。

双击Apache 2 .msi文件。同意许可协议后,会出现如图A所示的对话框。

图A


正确地设置Network Domain和Server Name(如果不打算将Apache安装到远程计算机,那么设置localhost就可以了),在Administrator’s Email Address区域输入你的电子邮件地址,保持端口80/服务选项单选钮的选中状态。在下一个对话框中如果选择Typical安装,可以快速地获得一个能实际工作的服务器环境。


安装提示
建议将默认安装目录从C:\Program Files\Apache Group变成C:\Apache或者符合8.3文件名格式的其他名称。这样一来,以后每次输入Apache安装路径时,都不必为其添加引号。



稍候片刻,安装向导会告诉你Apache 2安装成功。接下来惟一要做的事情就是进行测试,请打开浏览器并访问localhost,这样应该看到默认的Apache 2主页。

然后可以删除主Web服务器目录中的所有示例文件,它们默认位于C:\InstallDirectory\Apache\Apache2\htdocs中。如果有一个现成的主页Index.html,请把它拷贝到这里;另外,也可以马上创建一个空白主页。对于未初始化的HTML,以下代码就可以了:


<html>
<head>title=default server page</head>
<body>Default server page</body>
</html>


让Apache 2为PHP做好准备

从现在开始,你需要较多地以人工方式进行安装,不能简单地点击和选择几个选项了事。尽快习惯它吧,这才是Apache的方式。你需要编辑文件来设置不同的配置选项;如果操作不当,你所做的修改就会妨碍Apache的正确加载。如果设置引发错误,那么错误可能被记录到Apache 2错误日志中(默认为C:\InstallDir\Apache2\Logs\Error.log)。但能够像这样进行记录的毕竟是少数,大多数错误只会记录到Windows事件日志中(开始| 设置| 控制面板| 管理工具| 事件查看器)。

令人遗憾的是,在你对安装设置进行调试时,Windows事件日志并不是一个方便的工具。更好的做法是在命令行窗口中测试Apache服务器的加载,这样能立即看到错误报告。所以,在完成了我即将讨论的配置修改后,请打开一个命令行窗口,切换到Apache的binary目录(C:\InstallDir\Apache2\bin),在那里启动Apache。

Apache配置文件是C:\Apache\Apache2\Conf\Httpd.conf,可用任何文本编辑器来编辑。查找DirectoryIndex,定位到下面这一行:

DirectoryIndex index.html index.html.var # index.php

为了允许Apache处理PHP页,要删除注释字符(#),变成:

DirectoryIndex index.html index.html.var index.php

还要允许在任何目录中使用.htaccess文件,所以请在配置文件中查找AllowOverride,把这个设置从None改成All。保存了所做的改动后,可继续在文本编辑器中打开该文件,因为等会儿安装PHP时,要再次编辑这个文件。

安装PHP

虽然可以下载PHP的源码,但和Apache 2一样,最好直接使用二进制发行包。Apache 2可采取2种方式来运行PHP程序:通过一个CGI接口来运行(外部调用Php.exe),或者使用PHP的DLL文件在Apache的内部运行。后一种方式的速度较快。所以,针对每个版本的PHP,都会提供2个Windows二进制发行包。较小的是.msi包,它会安装CGI可执行程序Php.exe,但其中拿掉了通过Apache DLL来运行PHP脚本所需的模块。较大的.zip包则包含了所有这些东西,你可以从snaps.php.net网站的Win32区域下载它们。文件下载完毕后,把它解压到C:\Php(保留文件夹名称)。除非你有绝对的把握,请同时下载PHP手册,它有多种语言的版本可供选择。

配置Apache 2来运行PHP4

现在来到了最有趣的部分:将Apache和PHP完美地配合起来。首先,请将C:\Php\Dlls目录中的所有DLL文件拷贝到Windows的System目录(%windir%\System)。接着,在Apache的配置文件(Httpd.conf)中查找包含了大量AddType命令那个小节,自己添加下面这一行:

AddType application/x-httpd-php .php

将C:\Php\Php.ini-recommended拷贝到Windows目录(%windir%),把它重命名为Php.ini,并用文本编辑器打开它。编辑其中对doc_root、extension_dir和session.save_path进行设置的3行,使其和下面展示的一致,注意要把InstallDir替换成你的Apache 2的安装目录的名称。

doc_root = c:\apache\apache2\htdocs
extension_dir = c:\php\extensions
session.save_path = c:/temp


在session.save_path中使用正斜杠和反斜杠都是允许的。PHP手册声称这些路径参数需要在最后添加一个反斜杠,但这个说法是不正确的。在PHP 4.3中不需要这样做。另外,如果C:\Temp不存在,请自己创建它。

下一步是允许Apache将PHP程序作为模块来运行,这要求你采取2个步骤。首先,将C:\Php\Php4ts.dll拷贝到Windows的系统文件夹(%windir%\System)。在Httpd.conf中找到LoadModule小节,自己添加下面这一行:

LoadModule php4_module “c:/php/php4apache2.dll”

如果你出于某种原因而需要在CGI模式中运行PHP程序(使用Php.exe),请将上面这一行变成注释,并在Httpd.conf中添加下面这些行:

ScriptAlias /php/ "c:/php/"
Action application/x-httpd-php "/php/php.exe"


一切都搞定了吗?

保存所做的更改后,你需要亲自去证明两点,才能确保Apache 2/PHP 4成为一对完美的搭档:Apache能正常加载吗,它能正确处理PHP页吗?

要知道Apache是否能够正常加载,在你已经打开的命令行窗口中输入以下命令:

apache –k start

另外,如果Apache正在运行,可用以下命令重新启动它:

apache –k restart

从命令行启动Apache的好处在于,如果出现一个错误,Apache会立即报告它。你可能遇到的最常见的问题在于,Apache可能由于某种原因而无法加载Php4apache2.dll。如果Apache报告了这个错误,请按前面所述的步骤重新操作一遍,确保一切都没有错误。

要知道Apache是否能正确地处理PHP页,请用你的文本编辑器创建一个简单的PHP页,命名为Phptest.php,其中只包含下面这一行:

<? phpinfo(); ?>

将文件保存到主Web服务器目录(C:\InstallDirectory\Apache\Apache2\Htdocs),用浏览器访问http://localhost/phptest.php。如果一切正常,应该看到一个含有PHP徽标的网页,其中包含大量设置和其他信息。要知道PHP当前是通过CGI来运行,还是在Apache内部运行,可以检查一下环境变量orig_script_name。如果PHP通过CGI来运行,这个变量的值就是/Php/Php.exe。如果Apache将PHP脚本作为模块来运行,该变量的值应该是/Phptest.php。

虽然在Windows上安装Apache 2和PHP并不是一件容易的事情,但也完全没必要采取摸着石头过河的做法。通过本文的说明,你应该可以快速搭建起这个史上最好的、成本最低的Web开发环境。

[此贴子已经被作者于2005-12-3 13:05:57编辑过]

50 回复
#2
lingbo2005-12-03 10:25
大家快来学习吧
#3
lingbo2005-12-03 12:50
资源下载
#4
盖茨他爹2005-12-03 12:51
支持,虽然我是学ASP的
#5
lingbo2005-12-03 12:55

太感谢了,现在好有动力。

#6
lingbo2005-12-04 14:46
php学习第二天
从 HTML 中分离
PHP 的脚本由文件中一对特殊的标记所引起的内容,当解释器分析一个文件时,所有特殊标记外的普通文件,解释器不对其做任何处理,而特殊标记内文件将作为 PHP 代码被解释器分析执行。该运行机制将允许您在 HTML 中嵌入 PHP 代码:PHP 标记外的内容将被完全独立开,不做任何处理,而内部的将作为 PHP 代码解析。
用来标记 PHP 代码块的标记共有四套,其中只有两套总是有效(<?php. . .?> 和 <script language="php">. . .</script>);另外两套可以在 php.ini 配置文件中开启或者关闭。虽然短格式的标记和 ASP 风格的标记可能比较省力,但是某些情况下您可能必须要使用长格式的标记。比如,您打算在 XML 或者 XHTML 中嵌入 PHP 代码,您将需要使用 <?php. . .?> 形式的标记以适应 XML 的标准。
PHP 支持的标记为:
例子 5-1. 从 HTML 中分离的方式
1. <?php echo("if you want to serve XHTML or XML documents, do like this\n"); ?>
2. <? echo ("this is the simplest, an SGML processing instruction\n"); ?>
<?= expression ?> This is a shortcut for "<? echo expression ?>"
3. <script language="php">
echo ("some editors (like FrontPage) don't
like processing instructions");
</script>
4. <% echo ("You may optionally use ASP-style tags"); %>
<%= $variable; # This is a shortcut for "<% echo . . ." %>

优先选用的方式为第一种方式 <?php. . .?>,因为它允许您在 XML 结构,如 XHTML 的代码中使用 PHP。
第二种方式并非总是可用的。只有当您在 php.ini 配置文件中激活 short_open_tag 选项,才是可用的。您也可以通过使用 short_tags() 函数(仅用于 PHP 3),或者使用 --enable-short-tags 选项 configure PHP 来激活短格式标记。在 php.ini-dist 配置文件中,默认是开启短格式标记的,但是建议您不要使用该标记。
在 PHP 配置文件中开启选项 asp_tags 将激活第四种方式。

注: ASP 风格的标记添加于 PHP 3.0.4

注: 当开发大型应用程序或者用于分发的函数库,或者在不受您控制的 PHP 服务器上面开发程序时,请不要使用短格式的标记,因为目标服务器可能并不支持短格式的标记。为了便于移植,请保证用于再分发的代码中不使用短格式的标记。
PHP 代码块结束标记奖自动包含最近的一个结尾的新行(如果存在的话)。而且,结束标记自动隐含一个分号; 您不需要为 PHP 代码块的最后行追加一个分号。
PHP 允许您使用如下的结构:
例子 5-2. 更高级的脱离
<?php
if ($expression) {
?>
<strong>This is true.</strong>
<?php
} else {
?>
<strong>This is false.</strong>
<?php
}
?>

PHP 将直接输出结束标记和下一个开始标记中的任何非 PHP 代码。当需要输出大量的文本时,退出 PHP 解析模式将比使用 echo() 或者 print() 或者此类的函数打印所有文本要更加的有效。

[此贴子已经被作者于2005-12-4 14:47:50编辑过]

#7
lingbo2005-12-04 14:49
php学习第二天_1

指令分隔符
指令分隔方式与 C 或者 Perl 类似 -- 每个语句由分号格开。

结束标记(?>)同样隐含语句的结束,因此下面的代码是等价的:


<?php
echo "This is a test";
?>

<?php echo "This is a test" ?>

注释
PHP 支持 'C','C++' 和 Unix Shell 风格的注释。例如:


<?php
echo "This is a test"; // This is a one-line c++ style comment
/* This is a multi line comment
yet another line of comment */
echo "This is yet another test";
echo "One Final Test"; # This is shell-style style comment
?>

“单行”注释仅仅注释到行末或者当前的 PHP 代码块,视乎哪个首先出现。

<h1>This is an <?php # echo "simple";?> example.</h1>
<p>The header above will say 'This is an example'.

小心不要嵌套 'C' 风格的注释,当注释大量代码时,可能犯该错误。

<?php
/*
echo "This is a test"; /* This comment will cause a problem */
*/
?>

“单行”注释仅仅注释到行末或者当前的 PHP 代码块,视乎哪个首先出现。这意味着 // ?> 后面的 HTML 代码将被打印出来:?> 跳出了 PHP 模式并且返回 HTML 模式,而且 // 注释符并不会影响到模式的转换。


#8
qiaolu2005-12-06 15:26

还是没安装成功 郁闷
#9
lingbo2005-12-07 16:06
多试几次,我开始学习的时候为了按装就花了好几天的时间
#10
lingbo2005-12-07 16:07
要一步一步的按着往下做才可以
#11
lingbo2005-12-07 16:09
你是不是找不到C:\Apache\Apache2\Conf\Httpd.conf
有的是httpd.default.conf,好好学习吧
#12
yoyodv2005-12-12 09:05
我要好好学习PHP,ASP的速度我受不了了。我一点都不懂PHP啊,谁能带带俺啊!
#13
lingbo2005-12-13 18:11
我和你一起学,这个论坛学习PHP的人太少了。我太生气了。来这个网站看看也许可以学习到好多东西

http://www.phpchina.cn/index.php
#14
lingbo2005-12-13 18:15
PHP学习第三天

一个函数可由以下的语法来定义:

例子 12-1. 展示函数用途的伪码

<?php
function foo ($arg_1, $arg_2, ..., $arg_n)
{
echo "Example function.\n";
return $retval;
}
?>


任何有效的 PHP 代码都有可能出现在函数内部,甚至包括其它函数和 类 定义。

在 PHP 3 中,函数必须在被调用之前定义。而 PHP 4 则不再有这样的 条件。除非函数如以下两个范例中有条件的定义。

如果一个函数以以下两个范例的方式有条件的定义,其定义必须在调用之前完成。

例子 12-2. 有条件的函数

<?php

$makefoo = true;

/* We can't call foo() from here
since it doesn't exist yet,
but we can call bar() */

bar();

if ($makefoo) {
function foo ()
{
echo "I don't exist until program execution reaches me.\n";
}
}

/* Now we can safely call foo()
since $makefoo evaluated to true */

if ($makefoo) foo();

function bar()
{
echo "I exist immediately upon program start.\n";
}

?>


例子 12-3. 函数中的函数

<?php
function foo()
{
function bar()
{
echo "I don't exist until foo() is called.\n";
}
}

/* We can't call bar() yet
since it doesn't exist. */

foo();

/* Now we can call bar(),
foo()'s processesing has
made it accessable. */

bar();

?>


PHP 不支持函数重载,可能也不支持取消定义或者重定义已声明的函数。

注: 函数名是非大小写敏感的,不过在调用函数的时候,通常使用其在定义时相同的形式。

PHP 3 虽然支持默认参数(更多的信息请参照 默认参数的值) ,但是却不支持可变的参数个数。 PHP 4 支持: 见 可变长度的参数列表 和涉及到的相关函数 func_num_args(), func_get_arg(), 和 func_get_args() 以获取更多的信息。

[此贴子已经被作者于2005-12-13 18:16:45编辑过]

#15
小悟空2006-01-22 18:20
顶了,,,不错,,,~~~!!!
#16
litchi2006-02-08 15:46
我也想学。但是上面写得我有点看不明白。怎么办呀,
#17
球球2006-02-15 00:38

发一个不错的<<一周学会PHP>>的视频地址:
http://dob.tnc.edu.tw/themes/old/showPage.php?open_discuss=1&t=1&s=3451&PHPSESSID=7be89b6793f4a2082a0660687a2e6572
我看了一天就学会了N*N乘法.比较基础的,个人觉得很不错!

#18
lv_beyond2006-02-28 09:34

谢谢楼主拉~~~~~~~
我安装了IIS,配置的时候是否好要安装MYSQL???~~~

#19
重庆火锅2006-04-01 15:18
学习PHP中

ASP 不是不喜欢他.而是很多东西不好说得.反正开始搞PHP了.
#20
chinaszczr2006-04-06 06:50

我也是刚自学,学得一头雾水。。。。。。

#21
pingguo2006-04-06 15:20

我也是才学的,结果懂都不懂,装了N次也没有装好,郁闷的很
毕业设计就是用这个做一个校园FTP的搜索引擎!

#22
dandan02102006-04-25 21:09
我刚学PHP,我会好好学的,顶一下。
#23
PH小子2006-05-15 11:54
顶~~~
#24
PH小子2006-05-25 01:44
怎么不见更新?

[此贴子已经被作者于2006-5-25 1:44:07编辑过]

#25
xxygdufs2006-07-01 18:52
GOOD,

#26
chengenius2006-07-01 19:18
啥子东西。。。。
瞅瞅。。。。
#27
h5272006-07-30 02:05
谢谢楼主,这几天正打算学啊
#28
lonelyfly2006-08-10 11:34

好好学习。。。。

#29
fj832006-09-03 13:57
我试过安装apache2与php5....用了我整整两天时间才装好...
#30
lmaman2006-09-10 14:05

不好意思了楼主,借用一层楼


各位支持一下啦,好不好?

小助理被逼无奈呀::::::

上海庆申诚聘专业网站开发工程师

年龄22-30 开发经验3年
男性为佳
薪资待遇 底薪加提成制
3000(凭实力可以面谈)
全职,可以签定劳保合同.

紧急求援!!!!!!!!!!
谢谢各位大哥啦!!

qq51333734 验证写明:ASP聘

#31
梦里蓝天2006-09-26 14:45
好贴


#32
abcdos2006-10-13 00:14
急,为什么当我配置好httpd.conf后重启APACHE不能完成的,提示(the requested operation has failed)谢了
#33
linhong002007-01-01 09:15
支持,虽然我是学ASP的
#34
kyoshingo2007-01-02 13:58
怎么没有还没有更新呢啊

最近,从.NET来学PHP了
#35
glgjing2007-01-23 12:20
你好版主,我非常想学习PHP,我可以和你交流一下吗?
#36
bafnje2007-03-07 20:53
现在 只要asp,我也要学php
#37
wuwei1686682007-03-24 21:30

妙妙!!!!
好好!!!!

#38
hsqszj2007-04-11 13:30
我也想学...........
#39
hs20072007-04-28 13:59
不错楼主!
我以前学过c语言,然后呢
我学习一学期的网页设计(网页三剑客)
对次很感兴趣 现在想进一步加深提高自己的网页方面的的能力 现在开始学习php5的知识
一个人在学习不免感到很累
很吃力,快要坚持不住了 今天来到这里我 看了楼主的帖子 我好幸运
我要好好的坚持不放弃
#40
jisushuai2007-05-21 23:42
PHP学习中,希望能和你们一起学习
#41
jisushuai2007-05-21 23:47
LZ是不是更新的快点才好啊
#42
sadf342007-06-28 11:56

不错,帮我解决了很多问题











太感谢了,终于解决了一些问题











[IMG]http://bbs.csonline.com.cn/skins/Default/sigline.gif[/IMG]
本帅锅喜欢阅读[url=http://www.quanxue.cn/CT_NanHuaiJin/index.html]南怀瑾[/url]的[url=http://www.quanxue.cn/CT_RuJia/LunYuIndex.html]论语[/url],[url=http://www.quanxue.cn/LS_Mao/ShiCiIndex.html]毛泽东诗词[/url]以及[url=http://www.quanxue.cn/CT_RuJia/ZhouYiIndex.html]周易[/url]等各种书籍,愿认识对这方面有兴趣的MM哦~~

#43
veek2007-07-09 00:41
大家一起学习,共同进步!!!
#44
mossystone2007-07-13 11:32

额。。。。这么多php学员。。。可以开个学校起来啦。。哪个老板搞个组织机构来培训培训哦。。偶也来凑凑热闹。。

#45
wzz416a2008-06-11 18:55
我PHP都一个星期了,老师要求做个视屏网站,要有留言功能,在图书馆找了本书,不过按照书上一步一步做都无法搞定
都不知道错在哪了,郁闷啊!
#46
limengda2008-06-13 23:47
加油 !
#47
didi_mark2008-06-14 07:34
我安装的phpnow
#48
刹星毒舞2008-06-24 13:21
都一起加油吧。为中国献出一点力量!
#49
2008-06-24 22:18
写的好,强力的顶起来
#50
haizeng2009-12-18 11:11
恩 学习阿拉
#51
zdyzhang2010-05-25 09:26
留下标记,我会回来的。
1