PHP(Personal Home Page的缩写,现已更名Hypertext Preprocessor“超文本预处理器”)静态web开发:html,内容一成不变动态web开发: php(Zend)、jsp(sun-oracle)、asp(微软)、asp.net、cgi, 运行在服务器端,由程序决定内容-------------------------------- 历史------------------------------- 用Perl语言编写的程序,显示个人履历,以及统计网页流量; 用C语言重新编写,包括可以访问数据库; PHP1.0版本,提供了访客留言本、访客计数器等简单的功能。 PHP 2版本,有 PHP 的一些雏型,类似 Perl的变量命名方式、表单处理功能、以及嵌入到 HTML 中执行的能力。 PHP 3版本,更名Hypertext Preprocessor, 成立了 Zend Technologies公司 来管理 PHP 的开发。 PHP 4、5使用了第二代的Zend Engine。包含了强化的面向对象、引入PDO(PHP Data Objects存取数据库的延伸函数库)。 PHP6 更好的支持web2.0,Unicode支持,强化的面向对象,对xml编程的支持,soap(简单对象协议) ------------------------------------ 特点 ------------------------------------跨平台,支持多种数据库免费(成本低)且是开源代码(可二次开发)上手快,相对简单,被嵌入于HTML语言,实用性强,更适合初学者Php 消耗相当少的系统资源,效率高,安全性好面向对象,php完全可以用来开发大型商业程序。解释执行的语言 缺点: 安装复杂,配置繁琐 数据太灵活,解释执行,运行时才能暴露程序对错-----------------------------------------功能------------------------------------------- PHP 能够生成动态页面内容 PHP 能够创建、打开、读取、写入、删除以及关闭服务器上的文件 PHP 能够接收表单数据 PHP 能够发送并取回 cookies PHP 能够添加、删除、修改数据库中的数据 PHP 能够限制用户访问网站中的某些页面 PHP 能够对数据进行加密--------------------------------- 开发工具ide--------------------------------- 商业版:Zend Studio,PhpEd,Adobe Dreamweaver,PHP Storm 免费版:Eclipse with PDT,NetBeans,Aptana Studio ***c/s与b/sc/s client 客户端 server 服务器 需要对客户端机器有要求安全性高效率变低 b/s优势browser 浏览器 server 服务器 1.开发成本低 2.管理维护简单 3.产品升级便利 4.对用户培训费用低 5.用户使用方便,出现故障概率小b/s不足: 1.安全性不足 2.客户端不能随心变化,受浏览器限制c/s与b/s相反 web服务器: 1.为什么需要web服务器? 因为要从服务器取数据或者提交给服务器数据 2.怎样查看发送或接受到的是什么? 用httpwatch工具来获取,有利于我们了解的更加透彻 3.web服务器有哪些? iis服务器--微软为 asp.net服务 lighttpd 德国 轻便、效率高 成熟度低于apache nginx 俄国 内存少,并发能力强,使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等 apache 排名第一最流行,可靠 基于模块化----------------------------环境配置----------------------------1.安装web服务器:Apache2.2 (1)下载httpd-2.2.22-win32-x86-no_ssl.msi (2)浏览器中http://localhost ---> it works即成功 (3)关闭/启动 进入apache bin 命令行 httpd -k shutdown/restart (4)默认端口80,查看端口 netstat -an,监听端口的使用程序 netstat -anb (5)配置文件 conf下的httpd.conf 可以修改端口号 【注意】一个端口号只能被一个应用监听,但一个应用可以监听多个端口 bin: 常用命令 cgi-bin: linux下命令 conf 配置 htdocs 存放用户web工程文件(默认) manual 手册 error 错误记录#配置虚拟目录 <IfModule dir_module> #DirectoryIndex相当于欢迎页面 DirectoryIndex index.php index.html #站点别名 Alias /mydemo "E:/mydemo" </IfModule>#设置访问权限设置 <Directory "E:/mydemo"> Order allow,deny #先允许所有ip访问,deny拒绝所有 Allow from all #先看看allow中允许的ip </Directory> 例如: Order deny,allow #先拒绝192.168,然后允许192.168.2.2 deny from 192.168 Allow from 192.168.2.2 结果是拒绝除192.168.2.2以外的以192.168开头的所有ip#配置虚拟主机 (1)启用httpd-vhosts.conf 在httpd.conf中去点 Include conf/extra/httpd-vhosts.conf前的# (2)conf/extra/httpd-vhosts.conf中修改第二个VirtualHost如下 <VirtualHost *:80> DocumentRoot "E:/mydemo" #设置欢迎页面 DirectoryIndex index.php index.html <Directory /> #不允许别人修改页面 AllowOverride None #设置访问权限 Order allow,deny Allow from all </Directory> </VirtualHost> (3)修改host访问 本地 C:\Windows\System32\drivers\etc下的hosts文件,解析ip地址与域名对应关系(localhost即域名) 如果没有查到域名,去外网dns服务器查找 hosts文件添加 127.0.0.1 higcom 127.0.0.1 www.sohu.cn2.安装php开发核心包: http://php.net下载 修改httpd.conf改 LoadModule php5_module,使apache能检索到php安装路径 修改php.ini 设置php扩展库路径extension_dir 为文件夹ext的路径 开启库功能extension 3.安装ide: phpstorm 在phpstorm中File->Settings->php(languages&Frameworks下的php) interpreter中选择php.exe安装路径,如G:\web_tools\AppServ\php6\php.exe第一个php程序 <?php echo "我的第一段 PHP 脚本!" ?>【注意】1.输出方法有两种:echo 和 print 区别: echo - 能够输出一个以上的字符串,没有返回值,速度快 print - 只能输出一个字符串,并始终返回 1,速度慢 例如: <?php echo "输出","aaa","bbb"; print "打印"; ?>2.输出服务名 echo $_SERVER["SERVER_SOFTWARE"];3.常见错误: (1) phpstorm中502 bad gateway:无效网关 解决办法:File->Settings->php(languages&Frameworks下)设置php.exe 或者File—Settings—Build,Execution,Deployment—Debugger修改端口号为80 (输入无效,按上下按钮才有效,耗时太长,推荐1) 若还是502,在任务管理器中看是否有php-cgi在工作,结束掉该进程即可。----------------------------------------------------------php运行原理----------------------------------------------------------客户端发送给服务器一个请求时,若请求资源为html文件时,服务器直接将html文件发送给客户端浏览器;若请求的是php文件,服务器将php解释为标准的html代码然后再发送给客户端。
时间: 2025-01-01 20:51:37