PHP简介与环境搭建
PHP简介
- PHP(“PHP: Hypertext Preprocessor”,超文本预处理器)
- PHP是一门运行在服务器端的脚本语言
lamp组合
Linux:开源的操作系统
Apache:阿帕奇,给PHP的运行提供了运行环境,这是一个开源的软件
PHP:开源的运行在服务器端的脚本语言
MySQL:开源的数据库,用来保存数据
思考:wamp组合是什么?
答:windows+apche+mysql+php
思考:PHP的运行我们需要安装apache,为什么HTML,CSS,JS的运行我们没有安装环境
答:首页HTML,CSS,JS的运行是需要环境的,这三门语言是通过浏览器去解析执行的,所以浏览器为这三门语言提供了运行环境。
六组概念
客户端和服务器端
服务器端:从广义来说:用来保存数据并且为客户端提供服务的计算机;狭义上的服务器就是Apache。
客户端:用来请求服务器端数据的计算机。
思考:用新浪服务器上的浏览器访问新浪网站,客户端和服务器端是什么?
答:这台计算机既做客户端也做服务器端。
静态网站和动态网站
网页:一个页面 网站:很多页面的组合
静态网站:没有能力进行数据交互的网站,.html就是静态页面
缺点:不能做数据交互
优点:因为服务器端不执行,所以执行效率最高
动态网站:可以进行数据交互的网站
优点:可以进行数据交互
缺点:因为服务器端要执行,所以执行效率偏低
思考:动态网站中是否存在静态页面?
答:可以的
实现动态网站的技术
实现技术 | 页面后缀 |
asp技术 | .asp,这个技术已经被淘汰 |
PHP技术 | .php |
.net技术 | .aspx |
Java技术 | .jsp |
现在最常用的是php技术和java技术
BS架构和CS架构
B:browser(浏览器)
S:server(服务器)
C:client(客户端)
BS:通过浏览器访问服务器,比如新浪,百度,传智官网
CS:通过客户端软件访问服务器,比如QQ,微信,股票软件
前台和后台
前台:给浏览器访问的页面
后台:管理员操作的页面
端口和端口号
一个服务器就像一个大楼,大楼中有很多房间,每个房间就是一个端口,端口上的编号成为端口号,端口的编号是从0-65535。
端口号只有整数,范围是从0 到65535,端口号小于256的定义为常用端口,服务器一般都是通过常用端口号来识别的。所有TCP/IP实现所提供的服务都用1-1023之间,客户端口号因存在时间很短暂又称临时端口号,大多数TCP/IP实现给临时端口号分配1024-5000之间的端口号。大于5000的端口号是为其他服务器预留的
IP地址和域名
IP:用来区分每台计算机的地址
域名:一个域名对应一个IP地址,就是IP地址的别名
PHP优点
- 开源的,源码开放
- 跨平台:PHP既能运行在windows上,也能运行在Linux上
- 语法简单,上手快
需要用到的DOS命令
打开命令行面板
方法一:直接点击命令提示符进入
方法二:花键+R,打开运行面板,输入cmd,点击确定
两个命令
安装Apache
apache默认的端口是80。
查看80端口是否被占用
通过netstat –ano查看端口占用情况
如果80端口被占用,
方法一(关闭占用80端口的进程):通过进程编号(PID)查看一下是哪个进程占用了80端口,通过PID在任务管理器中找到对应的进程或服务,右键关闭对应的进程或服务即可。
方法二:更改Apache的运行端口。
获取Apache的安装文件
双击安装
- 新建wamp文件夹,用来部署PHP运行环境,
- 在wamp文件夹下创建Apache文件夹,用来安装Apache软件
- 双击安装
安装完毕后,在状态栏的右下角出现如下图标
测试Apache服务器是否安装成功
访问服务器语法:http://IP地址[:端口号]
127.0.0.1表示本地电脑,也可以写成localhost(local:本地 host:主机)
比如:http://127.0.0.1:80
在浏览器中输入http://127.0.0.1[:端口号]或者http://localhost[:端口号]显示it works表示apache运行正常
Apache的启动\关闭\重启操作
方法一:鼠标左键点击Apache图标
方法二:鼠标右键Apache图标
方法三:在控制面板——管理工具——服务
方法四:通过apache命令,Apache的命令在bin目录中
在wamp\Apache\bin目录中,有一个httpd.exe文件,这个文件用来执行Apache的命令。
在命令行中通过Apache的命令来控制服务
脚下留心:在安装apache的路径不能出现中文
配置环境变量
我们现在执行httpd指令必须到apache/bin目录下,如果我们配置了环境变量就可以在任意的目录下执行httpd指令
第一步:我的电脑——右键
第二步:点击“高级系统设置”
第三步:点击“环境变量”
第四步:选中Path,点击“编辑”
第五步:将httpd.exe文件所在的目录添加到path中
测试:
重新开启命令行
执行原理:
- 首先在当前目录下寻找httpd指令,如果有就执行,如果没有就到环境变量的Path中去找
- Path中的每个路径之间用分号隔开,从左往右依次寻找。
apache的目录结构
Apache的配置文件
Apache启动过程
所以更改Apache的配置文件后要重新启动服务器
Apache三个常用的命令
httpd -v:显示apache的版本
httpd -t,用来检测apache的配置有无错误
httpd -M:显示加载的模块
解决服务器名的问题
打开httpd.conf配置文件
保存,并重启服务器
Apache配置文件语法
- 配置文件中的指令是不区分大小写的
- 指令的参数(argument) 是区分大小写的
- “#”是注解
PHP安装
获取安装包
将安装包拷贝WAMP下,并改名为php
到此,PHP安装完毕!
判断PHP版本
将PHP作为一个模块提供给apache加载
现在PHP和Apache之间是没有关联的,我们要让Apache启动的时候加载PHP
打开httpd.conf文件,添加导入模块的指令
重启服务器,测试加载是否成功(httpd -t)
具体代码参加帮助文档
测试:
在htdocs文件夹下写个test.php页面
代码如下:
保存,并运行
原因:因为PHP模块不知道要在什么情况下去执行。
在请求PHP页面的时候调用PHP模块
思考:如何执行HTML页面中PHP代码
加载PHP配置文件
PHP的加载原理和Apache一样,也是先读取配置文件,然后加载各个模块(扩展)。
第一步:打开PHP目录
第二步:复制php.ini-development一份,并改名php.ini
第三步:将php.ini拷贝到c:\windows目录下(不推荐使用)
推荐方法:通过PHPIniDir指令指定php.ini的目录
测试结果:
设置时区
当php.ini成功加载后,发现时区无法加载
打开php.ini
保存,重启服务器
MySQL的安装
获取安装文件
双击安装
MySQL目录
加载PHP中的扩展
PHP本身没有功能,PHP功能是通过加载PHP扩展得来
默认PHP扩展加载位置
打开php.ini
保存并重启服务
加载PHP连接MySQL的扩展
测试(在PHP页面中写一段连接数据库的代码)
<?php
mysql_connect(‘localhost’,’root’,’aa’) or die(‘error’);
echo ‘success’;
?>
运行
更改apache虚拟目录
打开httpd.conf,通过DocumentRoot指令更改虚拟目录的位置
测试:在c:\www目录中创建aa.php,访问
原因:虚拟目录没有访问的权限
更改虚拟的目录的权限
给c:\www添加可以访问的权限
<Directory “C:\www”>
Allow from all #允许所有人访问
</Directory>
再次测试就可以访问
如果不写具体的页面
通过Options Indexes指令显示文件夹文件的索引
<Directory “C:\www”>
Options Indexes
Allow from all
</Directory>
运行结果
练习
- 如下代码结果是什么
<Directory “C:\www”>
Order deny,allow
Allow from all
deny from all
</Directory>
结果:允许所有人访问
- 如下代码结果是什么
<Directory “C:\www”>
Order deny,allow
Allow from 192.168.101.50
Deny from 192.168
</Directory>
结果:拒绝192.168开头的除了192.168.101.50以为的所有IP
- 如下代码运行结果什么?
<Directory “C:\www”>
Order deny,allow
deny from all
Allow from 127.0.0.1
</Directory>
结果:只允许127.0.0.1访问
- 如下代码运行结果是什么
<Directory “C:\www”>
Order deny,allow
deny from all
Allow from www.php.com
</Directory>
结果:只允许www.php.com的域名访问
更改默认首页
在httpd.conf中,通过DirectoryIndex指令指定默认首页
更改端口
默认情况下,端口号是80
通过Listen指令更改端口
访问测试
DNS解析
DNS(Domain Name Server),将输入的域名解析成IP地址的过程。当输入域名的时候操作系统会寻找最近的DNS映射文件。每个计算机上都有个DNS的映射文件
打开hosts文件
输入www.baidu.com就会解析到127.0.0.1的服务器上
虚拟主机
不同的网站部署在同一个服务器上,但是浏览器访问不同网站感觉是不同的服务器,感觉是每个网站都在不同的主机上,每个网站就是一个虚拟主机。
开启虚拟主机
打开httpd.conf文件
打开httpd-vhosts.conf文件,配置虚拟主机
在hosts中做DNS解析
测试
站点:存放与网站有关文件的文件夹
虚拟目录=站点+文件夹的权限
虚拟主机=虚拟目录+与主机有关的配置
分布式部署
更改apache和php的配置文件,Apache中的所有虚拟主机都会受到影响。也就是说Apache和PHP的配置作用于所有的虚拟主机。
分布式部署文件
- 名字必须是.htaccess
- 必须通过编辑器创建
- 分布式部署文件在当前目录及子目录下起作用,每个目录中都可以存放分布式部署文件。
- 更改.htaccess文件,更改后立即生效,不需要重启启动服务器
作用:可以通过分布式部署文件更改Apache和PHP的配置
更改Apache配置
在虚拟主机中,拒绝访问服务器
在分布式部署文件中再允许访问
测试
更改PHP配置
在分布式部署中有两个指令php_flag和php_value
通过php_flag指令更改开关性质的配置
通过php_value指令更改值性质的配置
WAMP安装总结
第一步:安装Apache,输入http://localhost,显示it works成功
第二步:安装PHP
第三步:将PHP作为模块给Apache加载(LoadModule)
第四步:在访问PHP页面的时候执行PHP模块 addType
第五步:加载PHP配置文件,PHPIniDir指定php.ini的地址
第六步:加载PHP扩展,extension_dir指定扩展的路径。
集成环境安装
集成环境一:
集成环境二:
作业
- 配置一个虚拟主机用来做PHP站点,在配置一个虚拟主机用来支撑phpMyAdmin。
- 如果配置服务器使得HTML中的php代码被解析。