IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> PHP_环境搭建(9) -> 正文阅读

[PHP知识库]PHP_环境搭建(9)


1.?? ?PHP与运行环境介绍


1.1.?? ?PHP介绍


1.1.1.?? ?静态网页(网站)


就是不会“变化”的网页(内容)。


1.1.2.?? ?动态网页(网站)


就是会因浏览的时间或不同的人而呈现不同内容的网页。

重要理念:后台程序(比如php)的运行结果(动态程序),最终的目的,是为了“输出”前台的静态网页。


1.1.3.?? ?PHP发展史


英文:PHP: Hypertext ?Preprocessor,超文本预处理器
??? ??? ?PHP/FI (form Interpreter)在 1995 年由 Rasmus Lerdorf 创建。起初脚本取名为“Personal Home Page Tools”。
??? ? ?? ?PHP/FI 2.0 于 1997 年 11 月发布了官方正式版本。
??? ?Andi Gutmans 和 Zeev Suraski 在开发中,发现 PHP/FI 2.0 功能明显不足,于是他们重写了代码。这就是 PHP 3.0,这是比较接近现在PHP语法的一个版本。
??? ?2000年5月,PHP4.0诞生,性能得到很大的提升。
??? ?2004 年 7 月,PHP5.0发布,引入了新的对象模型和大量新功能,也是目前应用中的主流版本(5.4)。
??? ?PHP6由于种种原因,没有正式发布。
??? ?最新的PHP版本是PHP7。

全世界大约80%以上的网站都使用了php技术作为网站后台服务程序,如下所示:

数据来源:w3techs.com


1.1.4.?? ?PHP的特点


–?? ?web服务器端的主流开发语言,用来实现用户的请求
–?? ?开源软件,所有操作系统下均可运行。
–?? ?入门简单,快速开发。
–?? ?支持主流数据库,比如MySQL,MSSQL,Oracle等

1.2.?? ?PHP运行环境介绍


1.2.1.?? ?网络应用发展介绍


C/S模式(结构):
C: Client(客户端)
S: Server(服务器端)

B/S模式(结构):
B: Browser(浏览器)
S: Server(服务器)

B/S模式的访问原理,就是通常所说的“上网”,图示如下:

1.2.2.?? ?PHP动态网站运行原理


图示如下:
?

数据库软件:?????? ?????? MySQL, MSSQL, Oracle,? db2,? informix。。。。。

Web服务器软件:?????? Apache,? Nginx,? IIS, 。。。

浏览器软件: ???? ?????? Chrome, FF, IE。。。

那,PHP在哪儿?继续展开“网站服务器”部分,如下图所示:

Web服务器:Apache
后端语言:PHP

数据:MySQL

?

1.3.?? ?几个不同的PHP运行环境


WAMP环境: ?Windows + Apache + MySQL + PHP

LAMP环境:?? ?Linux + Apache + MySQL + PHP

LNMP环境:?? ?Linux + Nginx + MySQL + PHP

今天要解决的最主要的问题:搭建一个可以执行PHP程序的web服务器,并使用PHP输出“hello world”, 以及当前时间,并能够“连接到数据库”


2.?? ?Apache的安装、配置与管理


2.1.?? ?PHP运行环境安装总体目录规划


确定我们要安装的3个软件的对应目录类似如下所示:
H:/itcast/class/bj-php-69/wamp/
apache/
php/

mysql/


特别注意:
1,安装的整个路径中不要出现中文和空格等特殊字符。
2,以后php文件名也不要出现中文和空格等特殊字符。

2.2.?? ?Apache的安装


2.2.1.?? ?Apache的安装

对应的软件如下:

Apache安装步骤:

  1. 解压“httpd-2.4.29-x86-r2.zip”,并将解压后的所有文件拷贝到目标文件夹wamp/apache下。
  2. 修改apache主配置文件(httpd.conf)中的“SVRROOT”为apache的实际目录。

提示:要修改的文件为:wamp/apache/conf/httpd.conf,大约第38行处。

?

3,管理员模式下运行cmd(或powershell),并在其中运行apache/bin下的命令httpd.exe,如下所示:
?httpd.exe ?-k ?install
提示:?? ?1,httpd.exe所在位置为:apache/bin/目录中
2,如果想要删除该服务,则运行:httpd.exe ?-k ?uninstall
?4,双击打开如下文件并启动服务:wamp/apche/bin/ApacheMonitor.exe

?

右下角有如下图标:?

再双击图标:?

?

注意

如果安装失败,有可能是缺少如下的windows系统模块:

?

则先双击安装它,然后再安装apache!?

2.2.2.?? ?测试安装结果


在浏览器中测试安装后的“默认网站”:
浏览这个地址: ? http://localhost,或http://127.0.0.1
可以看到页面,就表示安装配置成功!

我们还可以将之前做好的“京东商城”项目文件(index.htm和相关文件夹和文件)拷贝到apache/htdocs/jingdong/目录中,并进行浏览,就成为了一个较为正式的网站的网页了。

一个重要理念:

所谓一个网站,就是一个文件夹!

所谓一个网页,就是一个文件!!

?2.2.3.?? ?Apache目录介绍

目录/文件

介绍

bin/

.exe, .dll等主要可执行程序的目录。

ApacheMonitor.exe

监视程序,通常用于apache服务的启停操作。

httpd.exe

web服务器的主程序。该程序启动时,才能访问服务器。

(通常都是以系统服务的形式启动)

conf/

apache的配置文件目录

httpd.conf

Apache的主配置文件,每次启动都会读取的文件。

conf/extra/

其他配置文件目录

httpd_vhosts.conf

Apache虚拟主机的配置文件

htdocs/

网站的默认根目录,用于保存网站中的网页文件(htmlphp等)

logs/

存放apache运行时的有关运行记录

modules/

存放Apache的可扩展模块文件。

2.3.?? ?Apache的配置


2.3.1.?? ?apache主配置文件:httpd.conf

apache的主配置文件为:wamp/apache/config/httpd.conf

注意:

1,配置文件可以修改以实现某些功能。

2,配置文件修改后,需要重启apache才生效。

3,配置文件代码如果出错——则apache重启时会失败。

2.3.2.?? ?检测配置文件语法

我们当然是试图写“正确的”代码,但谁都有可能出错。

关键是,我们常常不容易看出错在哪里!

这就需要有个“工具”来给我们指引方向:尽可能指出错误所在!

工具有现成的,就是:wamp/apache/bin/httpd.exe 这个文件(命令行文件)

用法:

在cmd命令行窗口中:

h:/itcast/....../amp/apache/httpd.exe(写完整路径)?? - t

示例如下:

2.3.3.?? ?配置环境变量?

如果配置好环境变量,该命令的执行就更便捷,类似这样:

httpd.exe(直接写文件名,无需路径)?? - t

配置环境变量的具体做法:

我的电脑》》右键》》属性,如下所示:

在上述“path”中进行编辑:

将httpd.exe所在的文件夹路径添加到里面,并使用英文分号(;)跟前面的隔开。

特别注意:不要删除之前的内容!!!!!!!!!!!!

配置好之后,就可以直接使用简单的命令语法了,如下:

?

?2.4.?? ?Apache的启动和停止


启动了apache,就表示web服务器可以使用(网站可以访问)。
停止了apache,就表示web服务器不能使用(网站不能访问)。


2.4.1.?? ?方式1:通过Apache服务监视器(apachemonitor.exe)


文件apachemonitor.exe的位置在wamp/apache/bin目录中。

2.4.2.?? ?方式2:通过window系统服务:

2.4.3.?? ?方式3:通过命令行方式(需管理员身份):


启动:net ?start ?apache2.4
停止:net ?stop ?apache2.4


2.5.?? ?认识几个相关概念


2.5.1.?? ?服务器:


一般,指对外界提供某种功能服务的计算机系统。
通常有这些常用服务器: web服务器, 邮件服务器, ftp服务器, ?.....


2.5.2.?? ?客户端:


通常就是访问服务器的终端设备。在web访问领域,通常也指浏览器软件。


2.5.3.?? ?请求:


就是客户端向服务器端发出一定的“信息”,告知服务器“需要什么”。


2.5.4.?? ?响应(应答):


服务器根据访问者(请求方)的请求所返回的相应结果,结果其实就是一个网页。

?

2.5.5.?? ?IP地址:


就是一个服务器的在互联网上的“数字身份”,是其给分配的一个数字编码,类似这样:
192.168.19.22
112.34.123.82
小细节:共分4段,用英文点号(.)分割,每一段的数字只能从0-255。

特殊IP地址:
127.0.0.1:表示本机,就是自己正在操作(运行程序)的电脑的ip
192开头,172开头的ip地址:规定只用于局域网的ip地址。


2.5.6.?? ?域名:


就是一个服务器的对外“好看好记”的名字。
取域名的作用,最主要是给人看,使人容易记住。
浏览器通过域名并不能找到对应服务器,而需要转换为ip地址才能找到——这就是“域名解析”过程。


2.5.7.?? ?域名解析:


就是,输入域名时由某种设备或技术,将该域名转换为“ip地址”的过程——这样才能找到该服务器。
域名解析服务器(DNS):互联网上放置的很多的专门用于进行域名解析(域名转换为ip)的服务器设备。

所谓,解析,其实非常简单,就是“找对应关系”,比如:
192.168.155.61?? ?www.luo.com ??
23.12.87.33 ?? ??? ?www.lining.com
其含义是:访问某个域名(网站),就可以找到对应该域名所在行的IP地址。

每台电脑,都有一个最精简的最小规模的“域名解析服务器”,其实只是一个文件:
位置在这里:windows/system32/drivers/etc/hosts(注意,最后这个是一个没有后缀的文件名)。
在有些操心系统中,需要使用“管理员身份”才能修改该文件。
演示:

?

2.5.8.?? ?端口:


可以理解为软件(网络)领域的电子化的“窗口”。其实,无非就是对于“一台”电脑,用于区分其可以对外提供的“多项服务”的一种数字编号设定。
Apache(或别的web服务器软件),默认都使用80端口来提供网站对外访问服务(就是web服务)!
又比如:
ftp服务器通常使用21端口来提供文件上传下载服务。
邮件服务器通常使用25端口提供发送邮件服务,并使用110端口来提供收取邮件服务。

图示如下:

2.5.9.?? ?统一资源定位器(url)


url就是 uniform ?resouece ?locator,即“统一资源定位器”,即我们通常所说的“网址”,是用于描述网络上某种资源的详细位置信息的一种规范,是一串字符串。其形式如下:
协议://服务器名[:端口号][/路径][/文件名]?? ?
其中,上述中括号中的部分是可以根据具体情况进行省略的。

比如:

http://www.baidu.com

http://www.baidu.com/index.php

http://ent.people.com.cn/n1/2018/0603/c1012-30030747.html

?2.6.?? ?网站访问流程


从浏览器输入一个网址,到我们看到这个网页展示出来,其中的过程大致为:
1,先在本机的hosts文件中,查找域名所对应的ip;
2,如找到,则根据该ip就可以找到并访问该服务器了,服务器返回相应网页信息,访问结束。
3,如没有找到,则到互联网上的dns服务器中,查找域名所对应的ip;
4,如果找到,则根据该ip就可以找到并访问该服务器了,服务器返回相应网页信息,访问结束。
5,如果没有找到,则浏览器会有类似“无法找到服务器”的报错提示,访问结束。
完整图示如下:

?

php的基本的运行原理:浏览器》apache》php》数据库模块》数据库
apache的安装和基本配置:
1,拷贝文件
2,修改apache/conf/httpd.conf文件中的SRVROOT的值。
3,执行安装命令: httpd.exe  -k  install
4,启动apache的服务


apache的语法检测命令:
httpd.exe  -t

环境变量的配置:
apache的启动和停止:

几个概念:
服务器(软件),客户端(软件),请求,响应,IP地址,域名,
域名解析:将域名转换为IP的过程
先由本机的hosts文件来解析:windows/system32/drivers/etc/hosts
再由网络上的DNS服务器来解析
端口:就是一台“强大的服务器”可以对外提供多种服务的一种区分机制(数字化的标志)
url:网址。。
访问过程:先hosts文件,后DNS服务器。

?3.?? ?PHP的安装与配置(重点)

任务描述:

建立一个php文件(hello.php),内容如下:

<?php

echo “hello world!”;

?>

放到apache/htdocs/目录下,并访问它:

http://localhost/hello.php

3.1.?? ?PHP的安装:


PHP的安装也非常简单,就是拷贝文件——因为给大家的是一个“绿色版”。
将PHP语言包的压缩文件解压到计划中的文件夹中即可。

3.1.1.?? ?PHP语言包中重要文件和文件夹:


1, php.exe:?? ?php程序,用于执行我们写的php脚本代码。
2, php7apache2_4.dll:?? ?供apche2.4使用的php7模块文件。
3, php.ini-development 和 php.ini-production:用作php的配置文件。
4, ext目录: ?用于存放php中的扩展模块的文件

3.2.?? ?配置Apache使Apache可以调用PHP:


在apche的主配置文件apache/conf/httpd.conf中,添加以下两行:
1,加载PHP模块到Apache中(作为Apache的众多模块之一):
在大约180行后,添加如下一行:
LoadModule ? php7_module ? php7apache2_4.dll这个文件的完整路径(在php文件夹中)


2,给apache设定,php文件的后缀为“.php”:
在随后添加如下一行:
AddType ?Application/x-httpd-php ?.php

测试:
新建一个网页hello.php,其中输出“hello ?world” :

然后访问它:http://localhost/hello.php
结果如下:

?

?查看源代码,如下:

3.3.?? ?PHP的基本配置:


PHP的基本配置是一次性工作,做这一次就可以了。


3.3.1.?? ?任务描述


下一个任务:通过PHP输出当前时间,代码如下:
?

我们发现输出的时间结果是不对的。
这是因为PHP默认使用的时区是“格林威治时间”,比我们早8小时。
我们需要对PHP进行配置,并设定其运行时间为我们的北京时间。

3.3.2.?? ?获得PHP的配置文件(php.ini)


在php语言包文件夹中,将php.ini-development文件拷贝一份,并修改文件名为:php.ini。

?

现在我们将前者改为(或复制为)php.ini,就得到我们需要的php配置文件。

3.3.3.?? ?配置相关文件


这里需要做两件事情:
1,在apache的配置文件(httpd.conf)中设置php.ini的路径
就是让Apache知道我们的php.ini文件在哪里!apache是需要先读取到php.ini才能生效的。
具体做法:
在apache的配置文件(httpd.conf)中,添加php模块那行之后,再添加这一行:
PHPIniDir ? “php.ini文件所在路径”?? ??? ??? ?
//注意:只要路径,不要文件名

2,在php配置文件(php.ini)中设置timezone为PRC:?

?

然后重启apache,并访问刚才的网页(http://localhost/hello.php),结果为:?

提示:
1,以后,还可以(需要)在php.ini中进行其他项目的配置,但在apache的httpd.conf文件指定php.ini文件的位置的工作就不需要重复做了!

3.4.?? ?查看php执行环境
执行如下语句,就可以查看整个php的执行环境相关信息:

<?php
phpinfo();
?>

4.?? ?MySQL的安装与配置

4.1.?? ?php.ini中设置mysql数据库模块


下一步的工作:在php中连接到数据库,
测试代码如下:

具体做法分3步:?

?1步,php.ini中,设置php的模块位置(找关键字extension_dir)。

2步,php.ini中,开启mysqli模块(实际上,只是去除注释,关键字php_mysqli)。?

3步,安装mysql数据库并配置它(这是一个完整的安装过程)。?

4.2.?? ?MySQL的安装

然后一步一步往下安装:?

?

?

?

?

?

4.3.?? ?MySQL的配置


mysql安装结束后,就可以理解进入到配置环节:
?

?

?

?

?

?

?

?

?

4.4.?? ?测试在PHP中连接MySQL数据库


重新测试刚才的连接数据库的程序, 结果为:
?

?至此,我们有关PHP的开发运行环境的所有环节都打通了!

?

5.?? ?多站点虚拟主机配置


5.1.?? ?默认的初始站点配置


apache安装后,有一个默认站点,其配置都在apache的主配置文件(apache/conf/httpd.conf)中。
主要包括如下几项:
1,站点域名:
ServerName ?localhost
域名是可以设置的!
2,站点位置(文件夹位置):
DocumentRoot ?H:\itcast\class\bj-quanzhan4\amp\Apache\htdocs
站点位置是可以设置的!
3,站点文件夹的访问权限设置:
使用<Directory> ... </Directory>配置项来配置。
4,站点默认显示的网页(首页):
DirectoryIndex ?index.php ? index.html
默认网页(首页)是可以设置的。

一项项的设置示例如下所示:


5.1.1.?? ?网站域名的设置


语法为:

ServerName:要设定的网站域名(服务器名)

?5.1.2.?? ?网站位置的设置

?

语法为:
DocumentRoot ?要设定的网站所在的位置(文件夹)


5.1.3.?? ?网站文件夹访问权限的设置。


文件夹的访问权限的设置形式如下所示:
<Directory ?“要设置权限的文件夹路径”>
Options设置项
AllowOverride设置项
Require权限设置项
</Directory>
各项解释如下:
Options:用于设置一些系统选项,通常window系统中就用Indexes就可以了。
Options ?Indexes ? ? //表示允许列出目录结构(如果没有可显示的网页)
AllowOverride:用于设置“可覆盖性”,即是否允许在项目文件中覆盖这里的访问权限设置:
AllowOverride ?All?? ?//表示可覆盖
AllowOverride ?None?? ?//表示不可覆盖?
Require:用于设置可访问权限,常用的有:
??? ?允许所有来源的访问:——推荐
Require ?All ?granted
??? ?拒绝所有来源的访问:——网站需要临时关闭时使用
Require ?All ?denied
??? ?允许所有但拒绝部分来源的访问:
<RequireAll>
?? ?Require ?all granted
?? ?Require not ip 192.168.1.102 192.168.1.103
</RequireAll>
??? ?拒绝所有但允许部分来源的访问:
<RequireAny>
?? ?Require all ?denied
?? ?Require ip 192.168.1.102 192.168.1.103
</RequireAny>

典型权限设置示例:
<Directory ?“h:/itcast/php60/wamp/www”>
Options ?Index
AllowOverride ?All
Require ?All ?granted
</Directory>


5.1.4.?? ?网站默认网页的设置


默认网页就是输入一个不带网页的文件名的路径的时候(最常见的就是只输入域名),自动打开的网页。
比如这样的一个网址:
http://www.itcast.cn/subject/phpzly/
就能打开一个网页(虽然地址上没给出要查看的网页文件名)。

默认网页的设置方式如下:

(其中IfModule指令是可以省略的)
语法为:
DirectoryIndex ?网页名1 ?网页名2 ?网页名3 ?....
说明:
1,可以设置多个网页,前面的不存在,就依次找后面的。
2,该设置项可以放在<Directory>配置段中,表示该站点文件夹下的默认网页设置。

5.2.?? ?多站点虚拟主机的含义:


多站点虚拟主机:
是指,在一台物理意义上的电脑(服务器)中,配置多个网站/站点,并都可以对外提供“web访问服务”,外界看起来就是有多个站点(或多个服务器)的样子!
每个站点,也就是类似一个主机——这就是虚拟主机。

5.3.?? ?配置多站点虚拟主机:


配置多站点虚拟主机可以分两步:
1, 在apache的主配置文件(httpd.conf),引入多站点的配置文件(虚拟主机配置文件)
2, 在虚拟主机配置文件(httpd-vhosts.conf)中,再挨个网站进行配置(每个网站一段配置)
分述如下:


5.3.1.?? ?在apache的主配置文件中引入虚拟主机配置文件:


5.3.2.?? ?在虚拟主机配置文件(httpd-vhost.conf)中挨个站点进行配置


在虚拟主机配置文件中,就可以配置多个站点了,每个站点的形式大致如下:

?

最后,一个观念总结:

一个网站,就是一个文件夹;反过来说,一个文件夹,就可以当做一个网站!

谁在其中发挥作用?——Apache

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-08-14 13:46:45  更:2021-08-14 13:50:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 16:24:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码