01 安装apache php配置 时区 环境变量 安装mysql 虚拟主机 文件夹访问权限 目录别名

php介绍

简介与历史

应用领域:

php运行环境

php语言运行原理

安装apache:

PHP的命令行运行模式(独立运行):

配置apache以运行php网页

配置php的基本运行环境

确定php配置文件(php.ini)的位置:

配置时区:

设置环境变量

检测apache配置文件语法

配置数据库连接机制

安装mysql数据库

虚拟主机配置

端口监听:

主机配置关键项

配置文件夹访问权限

主机别名设置

文件夹访问控制的文件控制方式

目录别名设置Alias

多站点配置:


 

php介绍

简介与历史

        缩写:Personal Home Page==>>PHP:HypeText Preprocessor

        历史

o    1995PHP/FI,Rasmus Lorderf,Personal Home Page

o    1997PHP/FI2.0,1998PHP3,2000PHP4,2005PHP5

应用领域:

web服务器端脚本:就是我们最常用的用来“生成”网页的程序脚本――所谓web开发。

命令行脚本:

wKioL1ZuepSCds9XAAAXaeAydmM244.png

应用程序图形界面:就是指可以做出window窗口的软件(界面),比如计算器,画图板

 

php运行环境

php语言运行原理


wKiom1Zueqagnw6hAACmADdYqlY799.png

 

客户端技术:                                                                                    服务器端技术:

html                                                         web服务器软件:               服务器端语言:           数据库:

css                                                           Apache                                PHP                             Mysql

javascript                                                  IIS                                      Java                             Mssql

.........                                 ......                             .....

实际上,apache可以独立运行,php也是可独立运行的,mysql同样可以。

 

安装apache

要求:

1,不要安装到有中文的目录中:


wKioL1ZuesSAnVyDAAAJg1qG3cQ666.png

2,尽量将apachephpmysql安装到一个总的目录,便于管理。


wKioL1ZuetnT_ho5AAAR6hjCVJA284.png

3,尽量将之前安装的amp集成安装环境删除,并删除已经配置的环境变量:


wKioL1ZueujSJrLJAACvOlwSiGI569.png

 wKiom1ZuexOx3v0XAACLAMmXn6Q503.png

wKioL1ZueyqQHxT1AABylpnsJ6s309.png


 wKiom1Zue0fC1N-JAACk81DRRpk411.png


完成之后:

wKioL1Zue4PzcemqAAAdQEbpjwA294.png


apache安装后的默认主页(站点)的位置为:

apache的安装位置/htdocs/

 

localhost:是一个特殊域名(站点),其本身就代表“本机服务器”

127.0.0.1是一个特殊IP地址,代表“本机服务器”

 

如果输入的是常规性域名,比如:www.php34.com

此时,浏览器就会先找该域名对应的IP地址,找到IP之后,再去“请求该IP所代表的服务器”――网络上,只有IP才能真正确定一台电脑(服务器)的准确位置。

此时就需要将该域名“转换”为IP。这个转换的过程,就称为“域名解析”。

互联网上,有很多很多的这种专门解析域名的服务器:DNS服务器(域名解析服务器)

对于开发环境,我们常常并没有(也不需要)专门的域名解析服务器,而是使用一个简单的文本文件来解析域名:规则非常简单,就是一个域名对应一个IP,如下所示:

192.168.1.1           www.abc.com       

192.168.1.100        www.php.com       

。。。。。。。。

该文本文件就是操作系统的hosts文件(也是系统文件),位置在这里:

window操作系统目录/system32/drivers/etc/hosts

注意:

1hosts就是文件名,它没有后缀。但它是纯文本文件

2,它是系统文件,需要管理员身份才能修改(win7win8

2.1:先用管理员身份打开编辑器(记事本,Editplus.....

2.2:在该编辑器中打开hosts文件

2.3:修改,保存。

PHP的命令行运行模式(独立运行):

php语言包,无需安装,可直接copy作为一个文件夹放得合适的位置。

 

php语言模块中有一个可执行文件,为php.exe,它就可以用来“运行php代码”。

php.exe所在的位置:就在php的语言包文件夹的根目录。

php模块独立运行php代码,有两种方式(注意都是在cmd命令行中):

        运行php文件:php.exe -f "php文件路径"

这两种写法不行(无法确定php.exephp文件的路径):

wKioL1Zue9rTkdItAAAQe64URNE808.png

wKiom1Zue_HgmMQVAAASnXyMA-Q160.png

只有确定这两个位置才可以行:

wKioL1ZufBXSltXYAAAVTAf7ZFE483.png


        运行php代码:php.exe -r "php脚本代码"


wKioL1ZufDKBFFyDAAANDA2d1Ww542.png

配置apache以运行php网页

初始apache安装完之后,其配置项还不能运行php脚本(代码)。

我们需要对apache进行自定义配置,以完成该目标:运行php脚本。

apache配置文件所在位置:

apche安装目录/conf/

主配置文件为:httpd.conf

 

apache的功能是以“模块化”的方式来运行的,其中有很多默认的功能模块

wKiom1ZufEPAgYuSAABvhWGbV6g049.png


那么,php其实也是作为apache的其中一个功能模块而已!

但我们得自己去配置(无默认配置代码)。

代码如下:

wKioL1ZufFuRT9USAADVW_F46Fs217.png


配置文件修改后,需要重启apache

其中第二步,还有另一个方式:

wKiom1ZufGuR9uHJAACE37vrDqE345.png


配置php的基本运行环境

 

php的配置文件是:

php语言包/php.ini

实际上,php初始语言包,提供了2个推荐配置文件:

wKiom1ZufICxLv2mAAAzU5JY278585.png


我们只要拿其中一个修改其后缀就可以了。

wKioL1ZufJTCyoN-AAA_gNCTtDk239.png


 

确定php配置文件(php.ini)的位置:

使用一个简单的php网页,其中只有一行代码:

wKiom1ZufKWSrWGEAAAIxQfxBkA547.png


运行后看到:

wKioL1ZufLvQAtHeAABNjMxZa5E156.png


于是,我们可以在apache的配置文件中,来指定php.ini的位置:


wKioL1ZufN7iwBSCAACUdnI2I_c272.png

再重启apache,运行phpinfo.php,结果为:

wKiom1ZufPPDA4zGAAAujtrPMNA051.png


配置时区:

根据关键字timezone找到配置行:

初始:

wKiom1ZufQvhvA9YAAAjSgYkjaU684.png


修改为:

wKiom1ZufR_BRRgsAAAkkNGX6S0613.png


 

设置环境变量

所谓设置环境变量,就是将常用的一些命令的位置,加入到操作系统的path路径设置中去。

我们通常可以加入以下:

apachebin目录:(假设)C:\itcast\class\bj-php-34\amp\apache\bin

mysqlbin目录:(假设)C:\itcast\class\bj-php-34\amp\mysql\bin

 

计算机〉属性〉高级系统设置〉高级〉环境变量〉系统变量〉path〉编辑:添加上述目录,用英文分号分开

wKiom1ZufU-TUNB1AAFNra7Z_Fw406.png

 

检测apache配置文件语法

使用apache/bin/目录中的httpd.exe命令,可以检测apache的配置文件中的语法问题。

使用形式如下:

httpd.exe  -t


wKioL1ZufXTwc5-WAAAJlvJ6rCQ325.png

配置数据库连接机制

初始执行连接数据库的代码:

wKiom1ZufYfAfLmAAAAhQShyWmQ794.png


执行结果为:

wKioL1ZufaCSfCdmAAAxWoZveRU863.png


 

实际桑,php虽然本身是作为apache的一个模块,被apache调用,

但是,php作为一个完整的语言包,其内部又是有很多个“子模块”构成。

php中的模块配置如下(在php.ini文件中):


wKiom1Zufa7TDDrhAABLU7GyW9I624.png

extension:扩展的意思,即扩展模块

这里就可以轻松“打开/关闭”某个模块。

我们现在需要连接mysql数据库的模块,则打开它:


wKioL1ZufdGT6bSxAAAvXL-CF18850.png

实际上,还不够!

因为我们要需要具体指出该模块在哪里

(对比apache打开php模块的语法:

wKioL1ZuffmycFIKAAAfEX-qCgc046.png

      

即同样需要指出模块位置。

php中,模块位置的设定是一个单独的设置项,而且所有模块都放一起:

wKioL1ZufgvAB39IAAAlqyjx9hw905.png


该为如下:


wKioL1ZufingXRLXAABQpxKwzN8041.png

重启apache


wKioL1Zufj6jNoj4AABBdbvbGLc522.png

 

安装mysql数据库

安装包:

wKiom1Zufk3DqWRQAABDoZls38g243.png


开始安装:


wKiom1Zufnvx4w_tAAJCC_sBVUA317.png

下面开始配置:

wKioL1Zufy7xbo4nAAbgRy53Ps4340.png


点击Excute(执行),才开始真正执行刚才的所有配置项(此时可能失败):



mysql的执行原理:


wKioL1ZugnfDAF6AAACNmRvPK5M602.png

mysql客户端有多种:

1cmd命令行

2php网页文件

3navicat软件

。。。。。。。。

 

虚拟主机配置

端口监听:

端口:就是一个数字,目的是让一台电脑(对外只有一个IP)能够对外提供多项服务(多种功能)。

行业默认有如下常见的服务和端口对应:

web服务: 80

ftp服务: 21

邮件收取服务:110

邮件发送服务:25

mysql数据库服务:3306

一台电脑中,有6万多个端口,但通常一台服务器,一般只提供几个或10几个服务。

apache的端口监听设置,是指设定apache这个软件针对当前服务器的哪些端口提供web服务:

apache是“服务生”,至于“外界”想要当前服务器提供什么服务,由外界提出“申请”(请求)。

通常,浏览器提出的都是web请求,但有些请求可能不在apache的服务范围内(端口不符)。

原始的配置:

wKiom1Zug9yB-K8xAACz2u02PSg727.png


但如果:

wKioL1Zug_XxLzn1AAAy5PRfbXw217.png


 

apache配置文件改为:

wKiom1ZuhAGR5tXXAAAlxRvCdY4911.png


则再次访问:


wKiom1ZuhBTR6FV_AAAhe7YBCLo264.png

主机配置关键项

主机,虚拟主机,web站点,是指一个可以通过浏览器并使用某个域名进行访问的“web应用”。

一个主机(站点),最核心的就两件事:

主机(站点)的名字:ServerName  “主机名

主机(站点)的实际文件夹位置:DocumentRoot  “站点的实际完整路径

apache的作用其实就是一个“转换”角色:将当前电脑中的某个文件夹,对外以某个域名(站点)的方式展现出来。换句话说:站点的本质就是一个文件夹

 

wKioL1ZuhD_iHY3fAAAqPnqRN7c631.png


 

当一个请求通常域名解析进入到当前apache并端口匹配成功后,apache就会开始“提供服务”。

1,在站点设置中找ServerName项,看是否匹配请求中的主机名。

2,如果找到,则在对应的目录(DucumentRoot配置项)中找相应的文件(可能是index.php,或其他)

3,如果找到,则返回该文件(或调用php语言模块执行后返回)

4,如果没第2步没有找到对应请求中的主机名,那么就将第一个主机当作准备提供服务的主机

可见:只要ip解析和端口能够进入到当前服务器并匹配apache的端口设定,则apache一定会提供服务――即使主机名不匹配。

 

根据上述思想,我们来修改一下默认配置:

wKiom1ZuhFiindi0AAA9tCI1S-I840.png


然后进行访问,发现被禁止:

wKioL1ZuhG3TNV3hAAAz9mFP70Q699.png


 

原因是:一个文件夹的访问,是有权限的。初始的站点所对应的文件夹,安装的时候已经设置好权限了。

现在改了,但权限还没设置,所以被禁止。

配置文件夹访问权限

下面添加该文件夹访问权限:


wKiom1ZuhHnC9wNWAAB4pA-azwk718.png

 

我们访问一个站点的时候,可以指定要访问的网页,比如:

http://www.php34.com/day1/page1.php

http://www.php34.com/day1/page2.html

也可以不指定,比如:

http://www.php34.com

http://www.php34.com/day1/

则对于后一种情况,apache就可以设定“默认网页”以提供给用户,形式为:

wKioL1ZuhJWSvxhoAAB4pA-azwk811.png

(默认配置中)

修改为:

wKiom1ZuhJ2xt53bAAAz1sjc6HI332.png


此时,对于没有指定要访问明确网页的请求,会按顺序从前往后找这些文件,找到后就“返回”给用户。

但是,如果最终都没有找到,此时Options中的Indexes就发挥作用了:显示该文件夹中的所有文件(和文件夹)

我们也可以将DirectoryIndex设置项放在一个单独的站点或单独的文件夹中,则只对该单独的站点或单独的文件夹起作用。


wKioL1ZuhLnAvb_wAACMWdO8SAw475.png

 

主机别名设置

在应用中,我们常常可以使用一下两种形式来访问一个站点:

http://www.abc.com

http://abc.com

通常,现在越来越流行后者。

此时,就相当于“2个站点(主机名)”但访问的是一个内容

此时就需要使用主机别名来实现:

ServerAlias   别名别名别名3  ......

 

文件夹访问控制的文件控制方式

通常,我们在config配置文件中,使用Directory配置项,目的是用来控制文件夹的访问权限。

但我们也可以使用一个独立的文件来控制某文件夹的访问权限。

该文件名必须是:  .htaccess

注意:

1,只有后缀和点号(无文件名部分)

2,该文件必须放在要被控制访问权限的文件夹中(不同的文件夹可以放不同的该文件)

3,其“上级文件夹”(通常是Directory设定中的文件夹)必须使用如下代码允许.htaccess发挥作用:

AllowOverride  All

4.htaccess文件中出现代码,几乎可以跟Directory设定中出现的代码一样。

5,如果.htaccess文件有效,则其设置会覆盖其上级设置。

6,此.htaccess文件修改后可以立即发挥作用,无需重启apache


wKiom1ZuhMrBFKFGAABKywkvWQE505.png

并设置:

wKiom1ZuhNqBLwVtAAAYUzXAm5o049.png


 

目录别名设置Alias

目录别名也叫虚拟目录

 

一个站点是一个文件夹(目录)。

该文件夹中自然可以有其下级文件夹(目录)。

实际存在的下级目录,可以按正常的文件夹访问层级关系进行访问,比如:

http://www.php34.com/                根文件夹(也就是站点目录)

http://www.php34.com/day1/        根文件夹中的day1目录

http://www.php34.com/day1/abc/  根文件夹中的day1目录中的abc目录

如果这些都是实际存在的,则就可以以该方式访问。

然而:

在一个站点中,如果不存在某个文件夹(目录),我们可以通过配置项,来做到“对外”看起来却存在一样,比如:

http://www.php34.com/soft/         假设站点中不存在soft目录

但我们可以让该地址“可访问”

这就是目录别名(虚拟目录)


wKioL1ZuiViQSyouAAAseO1LuLM103.png

然后开始设置:

wKiom1ZuiWeD2CCbAAAlgPt6H_w180.png


再访问:

wKiom1ZuiXmCwtgVAAA8WyKE2gs707.png


然后去设置该文件夹的访问权限就可以了:


wKiom1ZuiYnjipJlAAAj6-ElpuY451.png

再次访问:


wKiom1ZuiZjyx4gqAAAw2PwFRb8929.png

可见,通过在技术,可以将一个站点之外的“网页/数据/内容”也呈现在当前站点中。

 

多站点配置:

1,首先,在httpd.conf中打开多站点配置文件:


wKioL1ZuibGgoRIEAAAXqccC22s763.png

改为:


wKiom1ZuibyAUtz1AAARiqW5rCs684.png

实际上,该文件所在位置一目了然:

 

2打开改文件(httpd-vhost.conf设置要进行多站点配置的ip和端口,形式如下:

NameVirtualHost  IP:端口

*可以代表当前服务器的所有IP地址(通常也就一个)

wKiom1ZuidqBGITaAAAWWbkocvk012.png


 

3,往后就依次一个一个站点配置就可以了,如下所示:

(注意:一旦进行多站点配置,则原来httpd.conf中的默认站点配置就失效了)


wKioL1ZuigGAX25kAADixnYQLEk655.png


 wKioL1ZuihWgRSCNAAC4XsKRgOs346.png

 

 


你可能感兴趣的:(时区,环境变量,虚拟主机,安装mysql,01,php配置,安装apache,目录别名,文件夹访问权限)