《php课程——韩顺平.doc》由会员分享,可在线阅读,更多相关《php课程——韩顺平.doc(254页珍藏版)》请在三一办公上搜索。
1、php核心课程8.16日总结u web开发的介绍web开发分为 1. 静态web开发(html页面) 如果我们的一个页面,始终是一成不变的,则就是属于静态web开发,一般讲用html技术就ok2. 动态web开发比如: 我们需要发帖,网上支付, 发短信, 发邮件. 这样就需要动态web开发. 常用的动态web技术 php 、jsp 、asp- 、cgi 通用网关接口 c-c+-java-c#我希望在某个页面显示当前时间u 动态网页技术的发展历程1. cgi2. asp 微软产品 - 3. jsp (mysql- sun公司),被oracle2009收购 java / solaris/mysql
2、4. php 目前zend公司管理维护php优点: 跨平台 ,同时支持多种数据库 安全性和效率好 使用成本低 ( linux apache mysql php内核) 相对jsp ,和 简单 开发源码(可以做二次开发) / 开源软件 在php4 php5 以及即将发布php6 中更好的支持 面向对象 缺点:1. 安装比较复杂,配置比较多2. 太灵活,解释执行(编译执行),所以有些错误,到真的运行的时候才会暴露Hello.cViod main()Printf(“ok”);Hell.javaMain()System.out.println(“hello,world”);Phpu Php的基本概念快速
3、入门案例test.php/ 是运行在服务端 /html php 是 personla homepage 目前是有zend公司负责维护和商业化 php是嵌入到html代码 php脚本是运行在服务器端(详细解释) php 6.0 即将发布,目前是snapshot阶段php6.0增加1. 更好的支持web2.02. 支持更加好的Unicode支持。 3. 面向对象编程支持力度增加4. 对xml编程支持5. soap (简单对象协议) php开发工具记事本editplusvimzendstudio easyeclipse.lamp在window开发(php代码) -(上传ssh)-linuxwindo
4、ws c+程序(编译) (redhad 7.2)-(上传)-linux(redhat 7.3重新编译)make make install 在软件开中有非常重要的原则:编译环境和运行环境要一致 ide (集成开发环境 )u b/s 和 c/s 的比较希望大家可以知道什么项目使用什么架构总结:示意图:cs优点缺点:1. b/s的优势:1.开发成本低2.管理维护简单3. 产品升级便利 4. 对用户的培训费用低 5.用户使用方便,出现故障的概率小b/s的不足: 1.安全性不足 2. 客户端不能随心变化,受浏览器的限制u 为什么要安装web服务器,和怎样去了解发送和接受到什么?因为我们浏览器要取数据,从
5、web服务器 获取的.我们可以通过httpwatch工具来获取发送和接收到的数据,用利于我们了解的更加透彻.lighttpd 读 lighty 德国negix engine x 俄罗斯 50000并发u apache服务器的安装演示如果有一份apache建议卸载卸载步骤简单,就是下一步.安装:1. 准备好软件 2. 安装默认该选项这里写自己的邮箱。这里写localhost这里写默认该选项一步下来成功!测试是否真的成功!在浏览器中http:/localhost默认访问htdos 目录下的 index.html表示ok 说,apache安装成功后,操作系统是以服务的方式管理:我们可以通过该服务来启
6、动和关闭apache,也可以通过 apache moniter来管理apache 另外一种管理apahce就是通过命令行来管理httpd k startshutdown | restart 启动测试:1. 进入到控制台 (切换到 apache安装目录下)apache其实就是软件, apache有一个非常重要的应用程序 httpd.exe ,该程序在apache安装目录的bin目录cd apache目录-回车-输入“dir”-运行命令切换到apache目录,然后就可以在其后输入:httpd k shutdown Apache服务器就停止。打开就是httpd k restart 如果你希望在任何目
7、录下都可以运行我们的httpd 指令,则需要做一个环境变量设置这样我们就可以在任何一个目录下管理我们的apache 我们的服务都需要监听一个端口 mysql(3306) oracle(1521) mssql(1433)ftp(21) ssh(22)apache 这个web服务默认在80端口监听.如果你访问一个网站 则默认一个端口是80 端口(port)1. 一台机器可以有 1-65535 号端口 2. 在实际开发中,我们经常使用 netstat an 来查看机器有哪些端口在监听,如果发现有异常端口监听,则可以关闭该端口netstat anb 通过改命令我们可以发现是哪个程序在监听该端口,从而关
8、闭.3. 一台的80端口被 apache 监听,则该端口不能再被其他的应用程序监听.(一个端口只能被一个程序监听)4. 端口分为有名端口 1-1024 号 ,其它端口可以自己分配u apache如何去配置端口1. 我们的apache软件 配置是在 httpd.conf 文件中配置,该文件在apache安装目录下的 conf在 httpd.conf 文件中我们修改端口:Listen 81注意修改完后,一定要重新启动apache自己安装一个apache ,把端口配置成 8000,然后测试u apache的目录结构这比较重要的文件夹 bin 、 conf 、 htdocs 、 modules 目前我
9、们对apache有一个基本的了解.运行机制图:mpm : mutil processing module 多重处理模块apr: 可移植运行库 了解u 虚拟目录提一个需求:我的apache是安装在 c盘 , 但是出现c盘没有空间,d盘有更多空间.,能不能把d盘的一个文件夹下的网页html, php ,当做网站管理看看如何完成这个功能:1. 添加虚拟目录的节点#配置虚拟目录 #direcotory相当于是欢迎页面 DirectoryIndex index.html index.htm index.php #你的站点别名 Alias /myblog D:/myblog #这是访问权限设置 Order
10、 allow,deny Allow from all 2、在apache的conf目录下httpd.conf里面,注销documentroot路径,通过#,如下所示:#DocumentRootC:/ProgramFiles/ApacheSoftware Foundation/Apache2.2/htdocs3、apache服务器要重新启动,输入相应域名,进行测试 成功http:/localhost/myblog/news.html 4.如何设置欢迎页面http:/localhost/myblog/DirectoryIndex news.html index.html index.htm ind
11、ex.php6. 关于apache访问权限的讲解如果不理解上面,可以通过以下案例进行了解。如第一个案例1. 第一行意思,服务器拒绝所有,然后是允许所有.所有的都可以通过。2. 因为deny在前,所以是先拒绝218.20打头,然后允许218.20.253.2。3. 案例一代表拒绝218.20开头的IP,但允许218.20.253.2通过;而其它非218开头的IP也都允许通过第二个案例:1.第一行意思,服务器允许所有,然后是拒绝所有,什么都不能通过。2.因为allow在前,所以是先允许218.20.253.2,然后拒绝218.20,也就是所有218.20开头的代码全部不能通过。3、什么都通过不了。
12、第六天总结:1/不管在何时何地打开都是相同的页面,那它肯定是静态页面。Asp容易上手,但是深入比较困难。2 是嵌入在html语言内,运行在服务器端的。3、脚本语言是要和其他语言配合使用的。3、编译环境和运行环境要一致。这是韩老师在王志东底下干活的出现的一个问题。比如c+,在windows编译的,如果要在Linux运行,必须在linux要进行重新编译。这样才能实现变异环境和运行环境一致。Php不存在这个问题,其对环境的依赖性非常少。4、ide 叫集成开发环境 也就是开发工具。Zendstudio等等都是。不要用dw进行php开发,因为其是主要用来做静态软件。Zendstudio比较正规,功能强大
13、,使用方便。曾经有人这个回答不出来,被人笑惨了。3.b/s是指浏览器(browse)+服务器 如网站 c/s 是客户端+服务器,如qq.4、localhost代表本地服务器的意思。4.lighttpd读lighty 特点是非常轻,但是缺点是不稳定。5-10年后可能会取代apache.5.php可以用iis和apache服务器,但apache服务器更强大。将来apache可能被lighttpd服务器取代。6、apache服务器是web运用排名第一的服务器。7/apache服务器的在控制面板的图标是羽毛.7Apache卸载后不需要重启电脑。8、apache服务器卸载后,一定要记得右键我的电脑管理服
14、务和应用程序服务-检查里面没有apache服务。如果有,apache再装是装不上的。这是韩老师的血泪经验。9、在浏览器中,输入http:/localhost,出现it works就说明成功了。10、localhost代表本地索取的意思。11/在安装服务器的时候,选择自定义,最主要的目的是要把apache服务器放在C:myenvapache的文件夹。(千万注意)12/apache在任务管理其的名字是叫做httpd13/apache开关一共有三种方式。 这是常用的一种方式。可以在该服务系统里面,选中如上图,点击右键 调出属性,可以调自动/手动。另外一种管理apahce是通过命令行来管理,这个老师要
15、求掌握。因为真正的软件公司服务器是在遥远的电信机房,是通过一款远程登录软件ssh,就需要命令行来操作。通过运行 cmd-找到bin所在的路径通过cd+路径(如下图所示。其中cd代表的意思是切换路径(change Directory)。这是一种很土的方法。)-输入“dir”(dos命令列出当前文件及文件夹) 在dir命令输完后,就会出现很多的文件名字,在最后找到C:myenvapachebin,并在其后面输入httpd k shutdown apache服务器就会停止。如果需要服务器重新启动,只需要在其后输入 httpdk restart即可。15、如果你希望在任何目录下都可以运行我们的http
16、d 指令,则需要做一个环境变量设置,在我的电脑- 属性-高级-环境变量-path变量名下添加bin目录。比如我的电脑是如下图设置则我重新进入cmd,在c目录下输入httpd k shutdown apache服务器就会终止运行。如下图所示:这就是比刚才那个老土的方法要更好的方法。还可以在C:myenvapachebin中,找到也能启动,这是目前我发现最有效果的访问方式。16.清除缓冲是在ie浏览器中-工具-internet选项-浏览历史记录-删除-全选-删除。17、web服务器运行的时候,如果他是一个网络,则规范该网络的服务器必须监听一个端口 80 我们输入,没有输入端口,但是确是默认80端口
17、。apache服务器默认在80端口监听。18、域名是为了方便用户记忆,其实服务器只认ip,抓包软件可以检查出各个网站的ip号。 最后:80就是端口的意思19/任何一台机器可以有165535个端口。20 从理论上讲,端口越少也安全,可以通过运行-cmd-输入netstat-an来哪些端口再监听本机或服务器,以减少被攻击的危险。如下图所示。尤其是服务器管理员更应该要此种工作。21、netstat -anb通过该命令我们可以发现是哪个程序在监听该端口,从而关闭。我们就可以发现80端口是httpd.exe在监听 135端口是svchost.exe在监听,我们通过通过任务管理其可以将他们都杀死。22/一
18、台80端口被apache监听,则该端口不能在被其他的应用程序监听。23、端口分为有名端口 1-1024 号 ,这些端口不要用,他们已经名花有主。其它端口可以自己分配。重要。24、完整的url包含ip和端口。25.当我们访问网页的时候,查看的网站是有端口监听我们,我们也是有端口去监听访问的网站的。比如抓包软件显示如下图:左侧的80端口就是访问网站的端口,220.181.78.251是网站服务器的ip.有段的2571就是我们的端口,右端的192.168.1.128是我们电脑的ip 我们的端口是会变动的。25、apache如何去配置端口我们的apache软件 配置是在 httpd.conf 文件中配
19、置,该文件在apache安装目录下的 conf在 httpd.conf 文件中我们修改端口:Listen 81注意修改完后,一定要重新启动apache 就可以访问http:/localhost:81 但是注意并不代表这你可以这么访问::81。因为百度的服务器端口的设置是80,本机并没有办法进行修改。所有网络默认的都是80端口,如果我们采用的是其他端口,必须要著名。如果是80端口,我们只需要输入http:/localhost 即可访问,如果我们的端口是81,那么一定要http:/localhost:81 不能少:8126、一个端口只能被一个程序监听,但一个程序可以监听多个端口。apache能够监
20、听多个端口。在上面的httpd.conf中可以设置Listen 81Listen 82Listen 83Listen 8427、httpd.conf文件是apache服务器的大脑,是我们学习php打交道很多的配置文件。非常常用。主要是围绕这个文件展开。28、C:myenvapachelogs 中的error.log是记录apache日志的,可以用来查看apache有什么人工改动。28.真正看错误日志不是在apache的error文件夹,而是在log文件夹的error.log,该文件夹下的install.log可以看到我们的注册信息。29、文件改变不用重启,端口改变需要重启。30、C:myenv
21、apachehtdocsindex.html是apache显示页面代码。给我们的启示是在C:myenvapachehtdocs文件夹下可以用来管理不同的站点。所以该文件夹是非常重要。31.apache启动,会读httpd.conf 里面除了端口,还有模块。ahache通过模块管理其功能。而模块是放在apache下的文件modules下。各个模块有什么用,可以通过 模块索引进行查找。32.apache服务器比较重要的文件夹是bin conf htdocs modules33、在在apache的conf目录下httpd.conf文件中,可以通过#后加上解释文字进行注释。33、apache主要是通过
22、读httpd.conf文件,调动modules文件下的模块。Apache可以同时进行多个进程和功能。34.虚拟目录的问题。 第二天有个问题是配置虚拟主机,记得区分。apache所在磁盘(比如c:分区)空间的问题,我们能不能把web应用放在另外一个分区(比如d:分区),同样让apache去管理呢?这就是虚拟目录的问题。非常重要的知识点,必须掌握。1) 配置虚拟目录,在apache的conf目录下httpd.conf 的节点后(这节结束位置后)添加如下代码:#配置虚拟目录 #direcotory相当于是欢迎页面 DirectoryIndex index.html index.htm index.p
23、hp #你的站点别名 Alias /myblog D:/myblog这个名字可以任意取 #这是访问权限设置 Order allow,deny Allow from all 2)在apache的conf目录下httpd.conf里面,注销documentroot路径,通过#,如下所示:#DocumentRoot C:/Program Files/Apache Software Foundation/Apache2.2/htdocs备注:韩老师在第三天后的课程中建议使用该方法,以免产生错误。3)apache服务器要重新启动,输入相应域名,进行测试 成功35/端口如果不是apache默认的80端口,
24、在用http:/localhost/myblog/news.html访问页面的时候要带上相应端口,比如是81端口,则要这么访问:http:/localhost:81/myblog/news.html36、如何将http:/localhost/myblog/news.html设置欢迎页面(主页),实现http:/localhost/myblog/也能为主页访问? 将上面进行虚拟目录的配置时候添加在apache的conf目录下httpd.conf的代码 DirectoryIndex index.html index.htm index.php中, 将其改为“DirectoryIndex news.
25、html index.html index.htm index.php” 重新启动服务器即可。 37、查询本机ip地址可以通过运行-cmd-ipconfig来实现。如第一个案例1. 第一行意思,服务器拒绝所有,然后是允许所有.所有的都可以通过。2. 因为deny在前,所以是先拒绝218.20打头,然后允许218.20.253.2。3. 案例一代表拒绝218.20开头的IP,但允许218.20.253.2通过;而其它非218开头的IP也都允许通过第二个案例:1.第一行意思,服务器允许所有,然后是拒绝所有,什么都不能通过。2.因为allow在前,所以是先允许218.20.253.2,然后拒绝218
26、.20,也就是所有218.20开头的代码全部不能通过。3、什么都通过不了。就是允许所有ip通过。、以上的这个allow deny的问题是经常被面试的题目。第七天虚拟主机的配置思考问题!http:/localhost/news.html 目前我们是 http:/localhost/myblog/需求我希望 配置虚拟主机的步骤如下:1. 启用 httpd-vhosts.conf在 httpd.conf 文件中 # Virtual hosts ,虚拟主机Include conf/extra/httpd-vhosts.conf2. 在httpd-vhosts.conf文件中做配置#配置我们自己的虚拟主
27、机 DocumentRoot d:/myblog #这里配置欢迎首页面 DirectoryIndex index.html index.htm index.php Options FollowSymLinks #不许可别人修改我们的页面 AllowOverride None #设置访问权限 Order allow,deny Allow from all 3. 修改hosts 文件 -新的知识点. (重新审视我们的访问一个网页的真正流程)127.0.0.1 4. 测试一下课堂练习:l 在httpd.conf文件中配置一台的虚拟主机,然后在window系统中注册这台主机。1. 在httpd.con
28、f 文件中启用 httpd-vhosts.conf就是把#注销掉# Virtual hosts ,虚拟主机Include conf/extra/httpd-vhosts.conf2. 假设我们的虚拟主机在 f:/myweb 盘 该站点,事先有3. 设置http-vhosts.conf文件#配置我们自己的虚拟主机 DocumentRoot d:/myblog #这里配置欢迎首页面 DirectoryIndex index.html index.htm index.php Options FollowSymLinks #不许可别人修改我们的页面 AllowOverride None #设置访问权限
29、 Order allow,deny Allow from all 4. 在hosts文件中添加我们的ip 和主机映射关系c:/windows/system32/drivers/etc/hosts127.0.0.1 要求大家掌握: 1. 通过案例你要清楚访问一个页面(HTML/PHP) 详细流程2. 能够配置虚拟主机l 在虚拟主机的根目录中创建一个名称为itcast站点,并在该应用下创建一个index.html页面,然后把web应用映射成缺省web应用。index.html页面设置为web应用的首页。l 将web服务器端口更改为80端口。l 画图说明浏览器是如何访问到web服务器下的web主机下
30、的站点的web资源的。思考一个新的问题?此时我们能向apache请求一个php文件吗?apache在默认情况下是不会处理php页面-如何让apache能够处理phpu php开发环境的搭建1. 在window下搭建(apache(iis)+ php + mysql+phpmyadmin) = wamp在linux linux +apache+mysql+php =lamp我们先看看如何在windows安装 套件软件appserve 是一个泰国人,该软件把我们需要环境软件打包安装(apache+mysql(数据库)+php(php开发)+phpmyadmin这个管理mysql的一个界面操作软件.
31、)演示如下:1. 准备软件 appserver ,你可以网上下载2. 安装(基本是傻瓜式安装)安装可以选择安装哪些组件测试一下我们的套件是否安装ok在apache的默认路径下,开发一个 hello.html 和 hello.php文件,看看是否能够正常访问.同时我们可以来管理mysql数据库,到此我们可以确认四大软件安装ok 自定义安装apache+php+mysql+phpmyadmin 自行安装我们建议大家,安装的时候安装到同一文件夹,利用管理(文件夹不要中文)安装完一个测试一个.1. apache 完后 http:/locahost 2. 下php 核心包(用于支持php开发 )VC6就
32、是legacy Visual Studio 6 compiler,就是使用这个编译器编译的。VC9就是the Visual Studio 2008 compiler,就是用微软的VS编辑器编译的。那我们如何选择下载哪个版本的PHP呢?如果你是在windows下使用Apache+PHP的,请选择VC6版本;如果你是在windows下使用IIS+PHP的,请选择VC9版本;那Non Thread Safe是什么?Non Thread Safe就是非线程安全;Thread Safe 是什么?Thread Safe 是线程安全;官方并不建议你将Non Thread Safe 应用于生产环境,所以我们选
33、择Thread Safe 版本的PHP来使用php 核心包的安装就是解压即将3. 如何将apache 和php 整合也即是说,怎样才能让apache处理php在apache 的conf目录下 的 httpd.conf加入如下代码:LoadModule php5_module php安装路径/php5apache2_2.dllPHPIniDir “php模块安装路径AddType application/x-httpd-php .php .phtml说明,我们只要包红色的部分,改成实际php 安装的路径即可把 php.ini-development 文件 改成 php.ini 为什么改,因为我们
34、的php的设置有需要在php.ini修改 在php.ini中可以指定对应的功能模块;这里我们要指定php的扩展库路径extension_dir = C:/myenv/php-5.3.5/ext测试看看apache和php是否整合成功写这样一段代码重新启动 http:/localhost/test.php安装数据库mysql ,这里我们只安装不讲解1. 准备软件这里有个步骤是设置成人工安装,其他的没有贴图的都是默认。此处千万不能打钩。否则匿名用户会通过远程登录去攻击、盗窃等。测试mysql是否可以用1. 写一段php 代码来测试是否成功!/目前你看不懂,没关系当我们没有对php进行正确配置的时候
35、,会报Fatal error: Call to undefined function mysql_connect() in C:myenvapachehtdocstemp.php on line 3原因: 目前没有启用mysql功能,在php.ini中 extension=php_mysql.dllextension=php_mysqli.dll2. 安装一个phpmyadmin(该网站实际可以更好的管理mysql)来看看是否可以使用把该压缩包直接解压到htdocs目录, 然后可以直接访问http:/localhost/phpMyAdmin/index.php 即可.到此我们学会 用套餐软件
36、appserv 来安装,以及使用自定义的方式来打击自己的php开发环境.现在,我们来在自己搭建的php开发/运行环境上 安装一个discuz论坛. 准备一个discuz论坛代码 将其解压到 htdocs 目录下 把discuz的upload文件拷贝到 discuz文件夹下 ,然后删除upload文件夹 修改config.inc.php/ CH 以下变量请根据空间商提供的账号参数修改,如有疑问,请联系服务器提供商$dbhost = localhost;/ 数据库服务器$dbuser = root;/ 数据库用户名$dbpw = root;/ 数据库密码$dbname = discuz;/ 数据库
37、名$pconnect = 0;/ 数据库持久连接 0=关闭, 1=打开/ CH 论坛安全设置, 调整以下设置,可以增强论坛的安全性能和防御性能$adminemail = admin;/ 系统管理员 Email$forumfounders = admin; http:/localhost/discuz如果提示 对不起,请将 php.ini 中的 short_open_tag 设置为 On,否则无法继续安装论坛。则修改给大家时间完成搭建php环境并配置好discuz 论坛.8-17日总结:第七天个人总结需求(通过访问访问到本机的d/myblog/news.html)1、配置虚拟主机的步骤如下:1)
38、启用 httpd-vhosts.conf在 httpd.conf 文件中 # Virtual hosts ,虚拟主机#Include conf/extra/httpd-vhosts.conf 中,将下行前的#去掉,进行启用。变成 2)在httpd-vhosts.conf文件中做配置 其位置是在C:myenvapacheconfextrahttpd-vhosts.conf在该文件最下方进行配置:#配置我们自己的虚拟主机 DocumentRoot d:/myblog #这里配置欢迎首页面 DirectoryIndex index.html index.htm index.php Options F
39、ollowSymLinks #不许可别人修改我们的页面 AllowOverride None #设置访问权限 Order allow,deny Allow from all 3)修改本机的hosts 文件(地址:C:WINDOWSsystem32driversetchosts) -新的知识点. (重新审视我们的访问一个网页的真正流程) 这些网站都可以访问同一个页面。因为他们都能访问这个ip地址。为什么对应的是127.0.0.1,因为在这里进行了设置。如果虚拟主机设置的是其他的ip,比如 21.32.32.32,那么我们在网站配置的时候也要对应21.32.32.32。4)进行测试。如何在一个虚拟
40、主机里面配置两个网站,两个网站分别通过、 访问? 在d盘建立站点myblog和blog1 在apache服务器的C:AppServApache2.2confhttpd文件中,启用 Include conf/extra/httpd-vhosts.conf 同时为了避免出现问题,将默认的首页路径进行封闭 在C:AppServApache2.2confextrahttpd-vhosts.conf文件中,添加如下代码 DocumentRoot d:/myblog ServerName DirectoryIndex news.html index.html index.htm index.php Options FollowSymLinks AllowOverride None Order all