PHP-----PHP程序设计基础教程----第一章PHP开篇
本章内容知识体系如下所示:
一、PHP基础知识
1.1 Web技术
服务器与客户端
服务器:能够提供某种服务的电脑
客户端:想使用服务器所提供服务的电脑
服务器也是一台电脑,必须安装操作系统。否则就是一台裸机,啥也做不了,更不必说提供服务。一般来说,服务器更多选择Linux操作系统,个人电脑更多选择安装Windows操作系统。在服务器操作系统安装很多软件,由这些软件对外提供服务。
服务器提供的服务诸如:①HTTP网页服务:Apache、Tomcat、IIS等;②文件上传下载服务:VsFtp等;③邮箱服务:SendMail等;④数据存储服务:MySql、Qracle等。
小结:服务器就是提供服务的,客户端就是使用服务器提供的服务的。
IP地址
互联网上那么多公司,每家公司都有自己的服务器提供服务。如何找到特定的服务器,使用该服务器提供的服务?借助于IP地址。IP地址相当于每一个连入互联网的设备的身份证号,在浏览器地址栏按照IP地址信息进行访问就能找到互联网上这台服务器。
IP地址分为4段,每段数字取值范围0~255,占1个字节(8位),总共4个字节。例如百度的某台服务器IP地址:123.125.114.114。
本地测试的IP地址:127.0.0.1。在测试时,客户端与服务器都安装在本地计算机上,数据无需任何网络传输。
局域网IP地址以192.168.开头。
例如别人用自己的电脑想要访问我的主机,如果直接输入127.0.0.1进行访问,其实是访问自己的电脑,只能通过192.168.x.x访问,但是这种方式必须要求两台电脑在同一个局域网中。如果想要自己的电脑能够被中国各地其他用户访问到,必须将程序挂在外网上进行访问。
域名
IP可以准确查找互联网上连入的设备,但是IP地址是一串数字,不方便记忆。比如我们可以清除知道北京天安门,但是需要我们说出北京天安门的具体经纬度时候我们就不知道了。所以引入了域名的概念。域名就相当于地名一样,方便人们查找到服务器。例如百度的域名:www.baidu.com;QQ的域名:www.qq.com。
本地域名:localhost
DNS域名解析服务器
当我们在浏览器地址栏中输入www.baidu.com的时候,浏览器并不知道输入的内容对应的是哪个IP地址,所以需要一个服务器对输入的字符串进行解析。这个服务器就是DNS域名解析服务器。
DNS叫做域名解析服务器,提供域名和IP地址的映射关系。
域名解析流程如下图:
①现在本机的hosts文件中查找;②本机hosts文件中没有,就会请求DNS服务器;③DNS服务器的IP地址返回,如113.121.121.2;④请求路由器查找113.121.121.1这样的服务器。
本地hosts文件存放地址:C:\Windows\System32\drivers\etc\Hosts
端口
通过域名可以找到某一台服务器,但是一台服务器可能会提供多种服务,当我们找到这台服务器的时候,究竟想使用这台服务器的什么服务?这个就需要端口号进行区分。
其实我们每次访问网页,最完整的写法应该是:http://www.baidu.com:80,因为80这个端口比较特殊,可以省略不写。
如下是邮箱服务器设置:
总结:ip地址是用来查找某一台服务器的。域名是方便人们记忆的。DNS维护域名和ip地址的映射关系。端口是用来区分一台服务器上不同服务的。
HTTP协议
客户端访问服务器,通过IP地址和端口找到了这台服务器,这个时候就认为两个计算机在交流。
协议可以简单的认为两个计算机交流说的话。
常见的协议:①HTTP、HTTPS超文本传输协议;②FTP文件传输协议;③SMTP简单邮件传输协议。
URL地址
在Internet上的Web服务器中,每一个网页文件都有一个访问标识符,用以唯一标识它的访问位置,以便浏览器可以访问到,这个访问标识符成为URL。
示例: http://www.aixuexi.com:80/index.html
在上述的Url中,“http”表示传输数据所使用的协议,“www.aixuexi.com”表示要请求的服务器主机名,“80”表示要请求的端口号,“index.html”表示要请求的资源名称。
1.2 PHP概述
PHP是用于网页服务器端编程的脚本语言。Web服务器是安装了Web服务器软件的计算机,存储网站脚本程序。
用户请求对应脚本时,服务器执行对应的脚本并返回执行结果(服务器存在意义)。
常见的开发环境:
WAMP: Windows + Apache + MySQL + PHP
LAMP: Linux + Apache + MySQL + PHP
优点:①开源免费;②跨平台性;③面向对象;④支持多种数据库;⑤快捷性。
1.3 常用编辑工具
①Editplus ②Notepad++ ③Zend Studio
二、PHP开发环境搭建
在使用PHP语言开发程序之前,首先要在系统中搭建开发环境。通常情况下开发人员使用的都是Windows平台,在Windows平台搭建PHP开发环境需要安装Apache服务器和PHP软件。通常有两种方式:①自定义安装;②集成安装。
2.1 Apache的安装
自定义安装:
安装包下载地址:https://www.apachelounge.com/download/
下载64位安装包:
下载完解压至想要安装的目录。博主在D盘下建立Development文件,将下载的Apache服务器软件解压至该文件夹下,后续所有介绍都以此为基础进行总结。注意解压路径是纯英文路径,中间最好不要有空格
第一步:以管理员身份运行命令提示符,将目录切换到Apache服务器的解压文件夹下的bin目录下。
第二步:使用 httpd -k install -n "Apache" 命令安装Apache服务器软件。-k参数指定要执行的命令,-n参数用以给服务器命名。
第三步:修改D:/Development/Apache24/conf/httpd.conf文件中第39行代码中ServerRoot值。
修改前:
修改后:
第四步:使用 httpd -t 命令手动检验Apache的配置。
第五步:将D:/Development/Apache24/conf/httpd.conf文件中所有的C:\Apache24变为D:/Development/Apache24。
第六步:修改完成后,再次手动检验,页面效果如下,安装成功!
集成安装
采用集成开发环境安装的方式非常简单,但不够灵活,同时不利于学习,一般来讲不推荐使用。我们在这里做个简单介绍。
集成环境安装包:phpStudy(可以在网上搜索下载,也可以进QQ群下载),这里就不粘贴下载地址了。
直接点击上图的exe文件,当屏幕右下角出现phpStudy图表时,说明Apache服务已经开始运行。完成后页面如下所示:
2.2 Apache的配置
Apache的配置主要修改D:\Development\Apache24\conf目录下的httpd.conf文件的内容,具体配置包括如下几个方面:
监听端口
监听端口可以任意修改为一个未被其他程序监听的端口,可以通过设置配置文件httpd.conf文件中的Listen指令后面的数字来修改。在本示例中,博主将监听端口设置为默认的80端口。如下图
网站根目录的配置
Web服务核心就是把我们电脑上的静态页面让外部服务器访问到。我们不是想让我们电脑上所有的文件夹都可以让别人访问,只有一个文件夹可以被别人访问,那个文件夹我们称为网站。
网站根目录就是存放我们网站文件的最顶层目录,通常Url中域名后面第一个斜线对应的就是网站根目录。
注:动态网站情况比较特殊,需要单独考虑。
默认Apache的网站根目录是安装目录中的htdocs文件夹,在博主的开发环境中,对应D:\Development\Apache24\htdocs文件夹。为了方便对网站文件的管理,一般我们会将其设置在一个自定义目录中(如果你不介意其实不修改也无所谓)。
通过修改配置文件httpd.conf中的网站根目录选项,设置默认网站根目录。博主在F盘建立一个名为www的文件夹,作为网站根目录。具体修改如下:
第一步:在浏览器地址栏输入localhost,出现D:\Development\Apache24\htdocs下的index.html页面,此时我们还可以访问到。
第二步:在配置文件中,修改网站根目录,将根目录设置为:F:\www
此时重新访问http:localst,提示没有权限访问这台服务器
第三步:解决上述访问权限问题
①Apache配置文件中权限访问代码1如下所示:
在(1)中,Directory表示目录,“/”斜线通指我们电脑上所有的文件夹。上述四行代码就是为网站配置访问权限的。在(3)中,所有的访问请求都是被拒绝的。即指的是这个网站下的所有的文件夹都是不允许访问的。
②Apache配置文件中权限访问代码2如下所示:
在(4)中,设置了网站根目录。第251行又出现了<Directory /></Directory>标签,通过阅读代码,可以发现,下面的Directory是给网站开了一个小门允许用户访问,所以将251行代码中的${SRVROOT}/htdocs修改为文件根目录,在F:\www文件夹下建立一个html页面,访问结果如下:
默认文档配置
当客户端访问的是一个目录而不是一个具体文件时,服务器默认返回这个目录下的某个文档(文件),这个文档就称为默认文档。
配置文件的第284行DirectoryIndex,默认文档可以设置多个(由前到后依次去找,找到为止,如果没有找到任何一个,则启用目录浏览)
目录浏览
目录浏览指的是在浏览到一个文件夹的时候,如果文件夹中没有默认文档,就会把整个文件夹的结构显示出来。这种做法非常不可取,规避如下:
虚拟主机配置
如果一台机器上只有一个网站的话,没有任何问题,但是如果想要在一台机器上部署多个站点,就必须通过配置虚拟主机的方法解决。
由于后期对虚拟主机的配置操作非常常见,所以我们一般将虚拟主机的配置单独放到一个配置文件中,然后在主配置文件中引入,避免破坏主配置文件的其他配置。
第一步:在主配置文件httpd.conf中取消第509行对引入虚拟主机配置文件的代码注释
第二步:找到Apache的虚拟主机配置文件D:\Development\Apache24\conf\extra\httpd-vhosts.conf,添加一个如下的虚拟主机配置节点。在该文件中,有两个默认的示例代码,可以注释掉。
上图为虚拟主机的配置,如果要配置多个网站虚拟主机,可以复制上述代码,修改文件根目录、权限设置、域名、日志文件等。
注意:
①修改hosts文件达到访问域名的目的,原因很简单,这个域名不是我们自己的,我们没办法修改这个域名在公网上的DNS。
②如果使用了虚拟主机,默认必须全部使用虚拟主机,即之前的默认网站必须通过虚拟主机方式配置,否则访问不到。
③如果虚拟主机的端口使用的不是80端口,需要在主配置文件中添加一对对这个端口的监听。
必看:上述所有配置如果要起作用,必须重启Apache服务器。
2.3 PHP的安装
安装好Apache之后,开始安装PHP模块。它是开发和运行程序的核心。在Windows中PHP安装有两种方式:一种是使用CGI二进制文件;另一种是使用Apache模块DLL,其中第二种方式比较常见。
安装文件:见QQ群或者去官网下载。
第一步:将压缩包解压至指定目录,博主解压在D:\Development\PHP文件夹下。注意解压文件中必须包括php7apache2_4.dll文件,解压目录为纯英文目录
第二步:在Apache中添加PHP模块
第三步:在<IfModule mime_module>节点中添加.php扩展名解析支持
第四步:默认文档配置节点<IfModule dir_module>中添加index.php文件
重启Apache
配置完毕,我在site2站点下写一个php文件,显示效果如图:
PHP-----PHP程序设计基础教程----第一章PHP开篇的更多相关文章
- PHP-----PHP程序设计基础教程----第二章PHP基本语法
博文结构: 2.1 PHP语法风格 2.1.1 PHP标记 PHP有四种风格的标记,具体如表2-1所示: 表2-1 PHP开始和结束标记 标记类型 开始标记 结束标记 示例 说明 标准标记 <? ...
- [ABP教程]第一章 创建服务端
Web应用程序开发教程 - 第一章: 创建服务端 关于本教程 在本系列教程中, 你将构建一个名为 Acme.BookStore 的用于管理书籍及其作者列表的基于ABP的应用程序. 它是使用以下技术开发 ...
- [Learn Android Studio 汉化教程]第一章 : Android Studio 介绍
注:为了看上去比较清晰这里只转载了中文 原地址: [Learn Android Studio 汉化教程]第一章 : Android Studio 介绍 本章将引导您完成安装和设置开发环境,然后你就可 ...
- 《进击吧!Blazor!》系列入门教程 第一章 8.部署
<进击吧!Blazor!>是本人与张善友老师合作的Blazor零基础入门教程视频,此教程能让一个从未接触过Blazor的程序员掌握开发Blazor应用的能力. 视频地址:https://s ...
- 村田噪声抑制基础教程-第一章 需要EMI静噪滤波器的原因
1-1. 简介 EMI静噪滤波器 (EMIFIL®) 是为电子设备提供电磁噪声抑制的电子元件,配合屏蔽罩和其他保护装置一起使用.这种滤波器仅从通过连线传导的电流中提取并移除引起电磁噪声的元件.第1章说 ...
- javascript进阶教程第一章案例实战
javascript进阶教程第一章案例实战 一.学习任务 通过几个案例练习回顾学过的知识 通过练习积累JS的使用技巧 二.实例 练习1:删除确认提示框 实例描述: 防止用户小心单击了“删除”按钮,在用 ...
- OpenGL完全教程 第一章 初始化OpenGL
第一章 初始化OpenGL 无论是什么东西,要使用它,就必须对它进行初始化.如果你之前使用过GDI,你应该也多多少少了解到GDI在绘制图形之前要为之创建渲染环境.OpenGL也一样.本章给出的代码,大 ...
- python 教程 第一章、 简介
第一章. 简介 官方介绍: Python是一种简单易学,功能强大的编程语言,它有高效率的高层数据结构,简单而有效地实现面向对象编程.Python简洁的语法和对动态输入的支持,再加上解释性语言的本质,使 ...
- 【Java】《Java程序设计基础教程》第一章学习
一.Java概述 1.介绍了Java语言的由来 2.Java语言的特点:简单.面向对象.分布式.高效解释执行.健壮.安全.结构中立.可移植.高效率.多线程.动态 3.Java语言的实现机制,引入虚拟机 ...
随机推荐
- Week2——提交表单后后台的工作
在我理解看来,发生请求后主要是通过域进行相互间的协调作用的.表单数据可以从request域中获得,也可以通过response域返回数据给前台. 当发起http请求后,已经启动的Tomcat服务器解析收 ...
- 自学git心得-3
转眼到第三节了,我们进入分支管理. git领域里的分支可以理解为一个有安全保障的临时仓库,有时我们新修改了代码,突然发现有bug需要回到之前的版本,有时我们开发到一半,突然要出去一趟,如何安全保存当前 ...
- RoCE、softRoCE与iWRAP
RoCE - RDMA over Converged Ethernet 以太网在全球互联的广域网中毫无异议的老大,但在高带宽.低延时的专有网络领域却明显混不开.伴随网络融合概念兴起,IETF发布了DC ...
- SCCM2007日志文件
Microsoft System Center Configuration Manager 2007 中的所有客户端和站点服务器组件都将过程信息记录在单个日志文件中.您可以使用客户端和站点服务器日志文 ...
- Java学习---传输安全设计
1.计算机安全的概念 用于保护数据和阻止Hacker的工具统称为计算机安全(Computer Security).信息安全最基本的方法就是利用加密信息防止未授权的人窃听,加密是以某种特殊的算法改变原有 ...
- Asp.net core 项目实战 新闻网站+后台 源码、设计原理 、视频教程
首先说明,视频教程.源码并非本人原创 本人将项目分割开,并写了一些说明. 该视频教程 地址 https://study.163.com/course/courseMain.htm?courseId= ...
- 《梦断代码》读书笔记 part3
第六章:搞掂设计方案 备份很重要. 必须从小项目开始,而且永远不要期望它变大,如果你这么想,就会做过度设计,把它想象得过于重要,更坏的情况是,你可能会被自己想象中的艰难工作所吓到.所以要从小 处起步, ...
- iOSUI的绘图事务--Core Animation Pipeline--BackBoard(render server)
Core Animation Pipeline 流水线 在 iOS上,动画和视图的渲染其实是在另外一个进程做的(下面我们叫这个进程 render server),在 iOS 5 以前这个进程叫 Spr ...
- 使用jenkins SonarQube gitlab 构建自动化发布系统
目前持续集成的生态越来越完善,工具也有很多,开源的或商业的.如: 最最流行的,也是使用最多的 Jenkins 有着持续集成DNA的ThoughtWorks GO.理念:"Deployment ...
- [USACO09MAR]Look Up
嘟嘟嘟 题面说的有点问题,应该是向后看齐. 于是我们维护一个单调递减栈,如果当前a[i]比栈顶元素大,就执行pop操作,然后把pop出来的元素的答案都用 i 更新即可. #include<cst ...