PHP安装及配置-分布式部署

简介:

都说PHP是世界上最好的语言,那么我们来说说它到底好在哪里呢?

1.跨平台、既能在windows下运行,还能在Linux下运行

2.开源

3.简单,易上手

4.在服务端运行,对客户端访问压力小,易于普及

5.开发效率高,快速建站

世界上没有完美的东西,这个大家都懂,所以我再讲讲它的缺点。

1.运用不是很广泛,就只能开发web服务,写写网站什么的。

2.安全性这一块没有Java这些完善,这是由于它的语法简单所致

3.解释型语言,在运行上,如果没有缓存的存在,运行效率会没有编译型语言快。

可能还有其他的有点和缺点没有完全指出来,如果有其他的不同的想法的,可以留言给我,欢迎斧正。

 

PHP套装(WAMP):Windows + Apache +MySQL+PHP

    既然说PHP是一门服务端语言,就必然需要有运行它的环境,它的运行环境就是Apache server .这是一个开源的服务器,可以免费使用

,还有数据库使用的是MySQL,也是开源了,免费的,所以也就很方便学习了。

 

软件安装:

1.Apache安装:

点击下载链接:http://httpd.apache.org/

 

 

 

 

安装:下载了安装包之后解压到指定的目录就可以了

配置环境变量:

进入bin 目录中 D:\WAMP\Apache24\bin

然后将此目录配置到环境变量中

 

然后修改配置文件中安装目录:

 

修改成自己的安装目录:

Define SRVROOT "D:\WAMP\Apache24" 

 

然后进入到bin目录下找到ApacheMonitor.exe文件,启动即可

会在屏幕下方出现图标,双击出现如下界面

 

 

也可以通过命令行的方式进行操作:

进入bin目录 : Shilft + 右键选择打开CMD命令行面版

启动命令:httpd -k start

关闭命令:httpd -k stop

重启命令:httpd -k restart

 

启动后在浏览器地址栏中输入:http://localhost/

 

至此安装完成!

 


PHP安装

进入到PHP官网下载安装包: https://windows.php.net/download

放入到指定目录中,可以双击php.exe执行

 

 

将PHP作为模块提供给Apache进行加载

加载模块用法:LoadModule 模块名  模块路径        备注:LoadModule 不区分大小写,但是模块名区分大小写

.dll 文件为动态链接库文件

 

在Apache的配置文件中,添加配置如下:

 

保存,重启服务器:

在命令行中输入: http -M 检测是否加载成功

配置apache服务器:

让Apache在请求PHP页面时调用PHP模块

 

加载php文件:

在PHP文件夹下,可以发现两个PHP培训文件的版本。

 

将php.ini-development文件复制一份,并改名为php.ini.

更改apache的配置,告诉apache到指定的地方加载php.ini文件

 

更改php.ini扩展文件位置:

 

extension_dir  = 安装目录\ext

测试安装:

重启服务器 :在apache安装目录htdocs 下面新建一个index.php 

里面输入

这是打印PHP的一些信息

保存,在浏览器中输入: http://localhost/index.php

 

如上图,安装完毕

设置时区:

在php.ini 文件中设置

MySQL 安装:

由于本人以前已经安装过了,所以这里略过!!

在PHP(php.ini)中开启mysql扩展:

 

 

mysql链接测试环境

 

验证通过

 

更改虚拟目录:

默认目录在:D:\WAMP\Apache24\htdocs

httpd.conf :  

 

更改虚拟目录

 

没有权限访问

没有权限访问

为虚拟目录增加权限

 

重启服务,发现重启失败错误如下

D:\WAMP\Apache24\bin>httpd -M

AH00526: Syntax error on line 278 of D:/WAMP/Apache24/conf/httpd.conf:

Invalid command 'Allow', perhaps misspelled or defined by a module not included in the server configuration

后经过查询才知道相应的模块没有启用,在http.conf中的配置,需要启用以下模块即可

LoadModule access_compat_module modules/mod_access_compat.so#基于主机的组授权(名称或IP地址) httpd 2.x兼容的模块

LoadModule proxy_module modules/mod_proxy.so#apache的代理模块

LoadModule proxy_http_module modules/mod_proxy_http.so#代理http和https请求

LoadModule vhost_alias_module modules/mod_vhost_alias.so#虚拟主机动态配置

LoadModule authz_host_module modules/mod_authz_host.so#基于主机的组授权

Include conf/extra/httpd-vhosts.conf#启用虚拟主机配置

打开之后,重启服务器:

http://localhost/myweb/index.php

把默认配置下的文件删除,那么就可以看到只有加上myweb的时候才会成功显示出phpinfo页面来了

 

更改默认首页

 

在httpd.conf配置文件中修改

 

一定要加上/myweb才可以,否则就是forbidden

更改端口号:listen 端口号

 

同时监听多个端口

 

如果不是80的时候,必须带上端口号进行访问

配置虚拟主机:

开启虚拟主机:

 

把这个打开

 

进入这个目录配置虚拟目录

主配置文件:主机目录

 

主配置虚拟目录

虚拟目录配置文件

 

配置文件配置虚拟目录

hosts文件配置:

 

域名解析

当他们都存在时,先回去主配置文件中查找,如果匹配到了,后续就不会去找其他的虚拟目录了

先找到就会执行

所以想要使用虚拟主机,需要注释掉Documentroot

 

新版的不需要加Directory访问权限控制也能访问,但是老版的不可以

 

 

能够访问到,说明一切都OK了·

Mysql客户端:

Web界面的客户端:phpadmin

地址:https://www.phpmyadmin.net/   

 

放入站点中

配置站点

 

这样就可以通过浏览器来访问了

 

开发的时候用Navicat客户端,维护的时候用phpmyadmin

站点、虚拟目录、虚拟主机的区别:

站点:一个用来保存与网站有关的文件的文件夹、

虚拟目录:站点+权限控制 

虚拟主机:虚拟目录 + 域名 绑定

 

分布式部署:

为什么要用分布式部署:

    由于有多个虚拟主机,但是Apache(httpd.conf)和php配置文件(php.ini)只有一份,所以当它们改变的时候,所有引用的站点的配置文件都会随之改变,为了实现不同的虚拟主机有不同的配置信息,我们需要在每一个虚拟主机中配配置一个分布式部署文件,用来覆盖顶层的配置文件。

.htacess文件:又称为分布式部署文件,这个文件可以覆盖httpd.conf文件中的配置,此文件一个网站下可以有多个分布式部署文件。

每个.htaccess文件只能作用于当前目录及其子目录

 

需要借助工具才能创建成功

 

此时没有权限访问

 

无权限

但是当我们在D:/www文件夹下配置 .htaccess文件加加上访问权限时 :

 

如上

但是我们还是没有权限进行访问,因为还没有打开启动 .htaccess文件

启动 .htaccess文件

httpd.conf 文件中 : 

 

打开注释

 

允许覆盖

重启apache生效

相当于在站点配置文件中加了

 

如上

Apache配置文件由主配置文件和分布式配置文件组成

主配置文件修改后需要重启配置文件,分布式配置修改后不需要重启服务器

分布式部署会降低Apache的性能,尽量不要使用

 


分布式部署修改PHP配置

通过php_value  和 php_flag来更改PHP配置的值

 

php_flag用来更改开关性质的配置,php_value用来更改值性质的配置

 

这是php默认文件中的值

 

修改完毕

你可能感兴趣的:(PHP)