php入门篇
WEB开发介绍
动态网页技术的发展
请思考: 请用你现有的技术,开发如下网页
(1) 网页可以让用户留言,其他人可以回复
(2) 可以网上支付
(3) 可以发送电子邮件
4. 开放的源代码,所有的PHP源代码都可以得到
5. 上手快,PHP 相对于其他语言,编辑简单,实用性强,更适合初学者
6. 面向对象:在php4,php5 中,面向对象方面都有了很大的改进,现在php完全可以用来开发大型商业程序
2. 灵活,对程序员的约束太少,php是解释运行机制,所有很多问题在运行阶段才会发现.
初识php—创始人
■php创始人

PHP之父Rasmus Lerdorf出生在1968年9月22日.
Rasmus Lerdorf 为了要维护个人网页,用c语言开发了一些CGI工具程式集,来取代原先使用的 Perl 程式。最初这些工具程式用来显示 Rasmus Lerdorf的个人履历,以及统计网页流量。他将这些程式和一些表单直译器整合起来,称为 PHP/FI。PHP/FI可以和数据库连接,产生简单的动态网页程式。
■php的基本概念
① PHP最开始是lerdorf 用于维护个人主页“Personal HomePage”,而用c语言开发的cgi工具程序集,用于替代perl程序。
② PHP,是英文超文本预处理语言php Hypertext
Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛的运用。
③ php目前的开发和商业化由zend公司负责.
■php的发展历程
PHP 最初是1994年Rasmus Lerdorf创建的,刚刚开始只是一个简单的用Perl语言编写的程序,用来统计他自己网站的访问者。后来又用C语言重新编写,包括可以访问数据库。在1995年以Personal Home Page Tools (PHP Tools) 开始对外发表第一个版本,Lerdorf写了一些介绍此程序的文档,并且发布了PHP1.0。
php常见开发工具
① Editplus
② Zend Studio
③ PHP Coder
④ phpedit
⑤ easyecpilse
⑥ dw
bs 与 cs的介绍
WEB服务器
iis 服务器
php也可以用iis,而实际上iis是给asp或者asp.net用的
lighttpd

apache WEB服务器

下载相关软件:
地址: http://httpd.apache.org
安装


最后在浏览器中输入http://localhost之后出现

则表示安装成功
我们可以通过几种方式来控制apache的开启和关闭
第一种通过服务来开启和关闭apache

第二种通过apache monitor来开启和关闭

第三种通过命令行开启和关闭,但是注意需要cd到apache的bin目录下


开启的命令
更多的细节可以参考
如果你觉得调用命令行麻烦,我们可以在环境变量去设置httpd.exe的执行环境
我们将httpd.exe的目录加入到环境变量PATH路径下去
apache 服务器—无法启动故障



5.apache如何去设置端口
首席那我们要知道apache软件的配置文件在http.conf下,这个文件在conf目录中

在httpd.conf的这里可以自己该端口,注意,修改完端口后必须重启apache才能访问

另外还有点,这个apache可以监听多个端口
我们可以子啊httpd.conf中设置如下

然后命令行中查询一下nestat -an,我们可以看见apache同时监听多个端口
——————————————————————————————————————————————————————————————————————
第27讲 apache服务器使用及配置 apache目录结构
apache 目录结构

对于模块二进制文件可以到
去找
apache是通过模块来管理功能的
第28讲 apache服务器使用及配置 apache虚拟目录
apache 概述
Apache是目前世界上使用最为广泛的一种Web Server,它以跨平台、高效和稳定而闻名。按照去年官方统计的数据,Apache服务器的装机量占该市场60%以上的份额。尤其是在X(Unix/Linux)平台上,Apache是最常见的选择。其它的Web Server产品,比如IIS,只能运行在Windows平台上,是基于微软.Net架构技术的不二选择
Apache并不是没有缺点,它最为诟病的一点就是变得越来越重,被普遍认为是重量级的WebServer。所以,近年来又涌现出了很多轻量级的替代产品,比如lighttpd, nginx等等,这些WebServer的优点是运行效率很高,但缺点也很明显,成熟度往往要低于Apache,通常只能用于某些特定场合。
nginx这个是俄罗斯开发的
apache—逻辑组件与操作系统关系
Apache是基于模块化设计的,总体上看起来代码的可读性高于php的代码,它的核心代码并不多,大多数的功能都被分散到各个模块中,各个模块在系统启动的时候按需载入。你如果想要阅读Apache的源代码,可以从main.c文件读起

apache—生命周期

apache—启动阶段

可以查看一下httpd.conf配置文件中的关于加载静态/动态模块的设置.
配置虚拟目录—请考虑一个问题
apache配置虚拟目录
<IfModule dir_module>节点后添加如下代码:

第一步:配置虚拟目录的节点,也就是在httpd.conf中添加如下
#配置虚拟目录
<IfModule dir_module>
#这个DirecttoryIndex相当于欢迎页面
DirectoryIndex index.html index.htm index.php
#你的站点别名,这里注意如果你的路径用\者需要转义则必须写成D:\\myblog,如果用的是/则不需要转义
Alias /myblog "D:/myblog"
#下面这个是访问权限,这个要单独详解
<Directory d:/myblog>
Order allow,deny
Allow from all
</Directory>
</IfModule>

第二步:修改server主目录,也就是服务器原来的默认站点注销,我们同样在httpd.conf修改,其实这里我们可以不注销
如果注销,默认的站点还是htdocs文件夹,如果注销,直接访问http://localhost则会出错

然后我们重启Apache Service就可以访问D:/myblog中的资源了
我们在浏览器中输入http://localhost/myblog/news.html就可以看见我们的资源new.html
如果我想直接输入http://localhost/myblog就可以直接方法news.html则我们必须在配置虚拟目录处的欢迎页面添加一个new.html
这里的意思是,当输入http://localhost/myblog时服务器会试着在myblog页面找news.html,如果找不到则找index.html,在找不到则找index.htm,如果在找不到
则找index.php

关于权限的设置,开始在配置虚拟目录最后一部分就是设置权限的


这里一定要注意Order后面的allow,deny的顺序,下面我们有几个练习来熟悉
//关于安全设置的课堂练习题
order deny,allow //这个读的顺序是deny先,allow后,所以在这两个读取完毕之后要先去读取deny from 218.20,然后再读取allow from 218.20.253.2
allow from 218.20.253.2
deny from 218.20
#代表拒绝218.20开头的IP,但允许218.20.253.2通过;而其它非218开头的IP也都允许通过。

-------------------------------
order allow,deny //先读取到allow表示允许所有,然后deny表示禁止所有,然后由于allow在前面所以先读取allow from218.20.253.2表示只允许这一个ip访问,然后接着读取deny from 218.20表示禁止以218.20开头的读取,所以最后的结果就是禁止所有访问
allow from 218.20.253.2
deny from 218.20
————————————————————————————————————————————————————————————————————————
第29讲 apache服务器使用及配置4 apache虚拟主机 web访问时序图
虚拟主机的配置
在一台apache 服务器中配置网站
也就是将http://localhost/news.html配置成像http://www.sohu.com这样好记忆的网站名
上节课我们配置了httpd.conf,我们可以用http://localhost/myblog就可以访问我们的网站,但是现在我们想改成http://www.sohu.com访问我们的
网站
配置虚拟主机的的步骤如下
第一步:启动 httpd-vhosts.conf文件,在httpd.conf文件中启用

第二步:在conf/extra/httpd-vhosts.conf配置文件中作配置

第三步:修改我们的hosts文件
讲到这里我们需要详细讲解一下网页访问流程(这里包括php/jsp/asp/asp.net)

当我们在浏览器中输入http://www.sohu.com/news.html回车之后,电脑会先解析主机名然后自动先去本地的hosts文件中去查找对应的ip地址和域名,
如果在本地hosts文件中查找不到相应的ip地址和域名就会到外网的dns(域名服务器)中去查找,如果在dns中找不到则跳转到提示页面或者报错
如果找到了就先向这个ip地址的服务器发送一个数据请求包,服务器端拿到这个数据请求包之后会解析主机,会解析网站名以确定,还会解析资源名称等,
然后取出资源返回给浏览器(apache默认情况下是不会解析php或者asp或则jsp的)
现在我们在hosts文件中配置
127.0.0.1 www.ysfox.com
然后再将讲配置虚拟主机中的欢迎页面加上news.html则我们就可以通过在浏览器中直接输入www.ysfox.com访问d:/myblog/news.html了
——————————————————————————————————————————————————————————————————————
第30讲 apache服务器使用及配置5 作业点评 提出apache和php整合的需求

第一题:
1.先在httpd.conf文件,开启虚拟主机,就是是将Include conf/extra/httpd-vhosts.conf前面的#去掉

2.假设我们的虚拟主机在f:/myweb这里,然后我们在这个目录里面放上我们的web资源abc.html
3.设置http-vhost.conf
#配置我们自己的虚拟主机
#<VirtualHost 127.0.0.1:80>
# DocumentRoot "f:/myweb" #这里要注意,如果你用的是"\"则需要两个\\,前一个是转义,如果用的是"/"则不需要转义
# #这里配置欢迎页面
# DirectoryIndex abc.html my.html index.html index.htm index.php
# <Directory />
# Options FollowSymLinks
# #禁止别人对文件覆盖修改我们的页面
# AllowOverride None
# #设置访问权限
# Order allow,deny
# Allow from all
# </Directory>
#</VirtualHost>
4.配置window系统中的host文件(c:/window/system32/drivers/etc/hosts)
127.0.0.1 www.sohu.com
第二题和第三题和第四题不用写了
下面说几点注意项
首先我们在cmd命令窗口通过ping命令得到百度的ip:115.239.210.27
然后我们在hosts中却将百度的ip配置成淘宝的域名
115.239.210.27 www.taobao.com
此时我们在浏览器中访问淘宝则会访问不了,这个是因为我们在访问服务器的时候还是要经过DNS的,DNS就会过滤
另外注意一点apache在默认情况下是不回处理php页面的,如果让apache能够处理php呢?这个就是下一节课的内容了
------------------------------------------------------------------------------------------------------------------------------
第31讲 php环境的搭建和使用1 appserv套件安装
php开发环境搭建
1.在window下搭建
apache(iis)+php+mysql+phpmyadmin=>wamp
2.在linux下搭建
linux+apache+mysql+php=>lamp
————————————————————————————————————————————————————————————————————————
第32讲 php开发环境的搭建和使用2 自定义安装
php开发环境搭建—自定义安装
自定义安装apache+php+mysql+phpmyadmin
我们建议大家安装的时候,将这些软件安装到同一个文件夹下便于管理,而且这里一定要注意,文件夹不要带中文
第一步安装apache,安装完测试http://localhost
第二步安装php
我们这里有两个版本

这里要说明一下,VC6表示是用legecy Visual Studio 6 compiler这个编译器编译的
而VC9就是表示用the Visual Studio 2008 compiler这个微软的VS编辑器编译的
如果是在windows下使用Apache+PHP,则选用VC6版本
如果是在window下使用IIS+PHP,则选用VC9版本
另外一点VC6是线程安全的,而VC9是非线程安全
我们将VC6的版本解压,修改一些名字就可以了,不需要安装,
第三步整合apache和php
前面我们讲过apache是以模块化载入的,所以我们只要找到apache的conf目录中的httpd.conf下的LoadModule处
然后添加如下代码
LoadModule php5_module ~php安装路径/php5apache2_2.dll //这里的php5apache2_2.dll就是连接apache和php的文件,2_2表示支持apache2_2
PHPIniDir "~php模块安装路径" //这个用于指定php的ini(初始化)文件,该文件时对php的一些配置
AddType application/x-httpd-php .php .phtml //这个配置表示当有一个资源名为*php就有PHP来处理

完成之后我们还要讲php文件夹中的php.ini.development改成php.ini,这个文件中涉及了php的一些初始化设置

改完了之后打开该文件,然后指定php扩展库路径,所谓的扩展库就是php的ext文件夹的路径,这个文件夹下放了很多扩展库的dll文件
我们只要在php.ini中找到extension_dir=php安装路径/ext,添加上php的扩展库文件夹,然后去掉前面的分号就可以了

注意在写php的安装路径时要你管将"\"改为"/"
最后配置好后我们要测试
只要在apache的htdoc文件下写一个测试php文件,然后访问这个php文件就可以知道配置成功与否

第三步:安装mysql数据库(注意这里我们只安装不讲解,mysql我们会在稍后学习)
这里不再讲解,在java中有详细的讲解
安装好之后,我们还要将php.ini中的支持mysql的扩展文件启用(这里只需要将前面的;去掉就可以了)

之后我们重启我们的apache,然后
我们要测试,我们写一段php代码来测试mysql安装是否成功
或者我们安装一个phpmyadmin来看看是否可以使用
<?php
$conn=mysql_connect("localhost","root","root");
if($conn){
echo"连接MYSQL数据库成功!";
}else{
echo"连接MYSQL数据库失败!";
}
?>
我们还可以安装phpmyadmin来测试
我们只要将phpmyadmin的解压包直接放到apache的htdoc文件下就可以了,为了便于访问,我们可以将名字改为phpmyadmin
我们只要在浏览器中输入http://localhost/phpmyadmin/index.html,然后输入用户名root和密码就可以进入mysql了
以上就是自定义搭建php开发环境
第33讲 php开发环境的搭建和使用3 安装并配置discuz论坛
第一步:我们将discuz压缩包从官网下载下来
第二步:将其解压到htdocs目录下,并该名字discuz
第三步:将update中的数据剪切到update同一个目录,然后将update目录删除
第四步:在浏览器中安装discuz
第34讲 解答学生问题--一个ip绑定多个域名


思路1:通过端口来区分不同站点
首先还是按照绑定一个站点的方式做好准备
1.先开发好自己的网站d:/myblog
2.配置我们的httpd.conf文件,启动虚拟主机的配置(将前面的#号去掉)并注销默认的站点(其实可以不注销)

注销默认站点

3.找到httd-vhosts.conf文件打开,在末尾添加如下代码
<VirtualHost 127.0.0.1:80>
DocumentRoot "d:/myblog"
DirectoryIndex news.html my.html index.html index.htm index.php
<Directory />
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
4.在hosts文件中添加ip和域名对应关系
C:/windows/system32/drivers/etc/hosts
127.0.0.1 www.ysfox.com
现在我们就可以访问第一个域名对应的网站了www.ysfox.com
现在我们来添加一个新的域名与该ip绑定
首先我们任然要开发开自己的站点
1.开发新的网站 "d/myweb"
2.配置httpd-vhosts.conf,添加一个新的虚拟主机,这个我们只修改改一些端口和新开发的网站路径就可以
<VirtualHost 127.0.0.1:81>
DocumentRoot "d:/myweb"
DirectoryIndex my.html index.html index.htm index.php
<Directory />
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
3.在httpd.conf文件总让apache监听81端口(apache可以同时监听多个端口)
也就是在httpd.conf文件中添加Listen 81,添加的位置在Listen 80下一行

4.在我们host中添加一个新的域名
127.0.0.1 www.hepan.com
5.此时我们重启服务器开始测试,测试时我们必须带上端口
http://www.hepan.com:81
这种配置的方案不好,因为每次访问都必须输入81端口,给用户带来很不好的体验
思路2:通过ServerName端来区分不同的域名
我们现在不监听81端口了,任然在hosts文件中配置了相同ip不同的两个域名

hosts中配置同一个ip不同连个域名

1.开发新的网站d:/myweb
2.在httpd-vhosts.conf文件中添加配置(这时的配置和以前不一样)

复制一份配置另外一个域名

3.现在我们重启服务器就可以测试了
现在就可以实现一个ip对应多个域名了,而且端口都是80端口
——————————————————————————————————————————————————————————————
第35讲 php运行过程时序图 php书写规范
在web服务器中配置web站点
这里我们在重申一道什么叫做web站点
apache和php 在网络中位置

php的运行过程
UML的时序图描述php 调用过程

第一个php程序—书写和调试
与Perl和C一样,在PHP中用“;”来分隔语句。那些从HTML中分离出来的标志也表示语句的结束。
php可以喝html代码混合,也可以再php代码块之间嵌入html代码
php的注释有//,/**/,还有嘴古老的#




浙公网安备 33010602011771号