简介:
都说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默认文件中的值
修改完毕