楠Go随笔

第三课:PHP学习之WAMP环境介绍

2017-10-30 15:43:05 admin 阅读 网站首页 > PHP > PHP学习

WAMP 环境指的就是在Windows系统下用Apache作Web服务器来结合PHP编程语言和Mysql数据库做业务处理。

为什么需要用 Aapche 作为Web服务器呢?

        首先,它是世界上使用排名第一的Web服务器软件,可以跨平台部署,减少其他兼容性问题。

        其次, Apache是开源软件,可以吸引全世界优秀的编程人员不断的修改源代码完善处理机制,修改隐藏的Bug。

        再有就是它简单、快速、稳定、可以通过修改配置文件更改容器配置,支持日志记录,支持多个虚拟主机设置,支持Http请求重写。

    Apache主配置文件为 httpd.conf 通常存放在Aapche目录下的conf目录中,还有一个虚拟主机配置目录 vhosts.conf 同样存放在conf目录下 。

    打开 httpd.conf 文件,相关配置参数的解释如下列表所示

  • ServerRoot  "C:/phpStudy/PHPTutorial/Apache" 表示Apache 服务器软件的存储位置

  • Listen 80       表示web服务器监听80端口 如果有特殊需求可以修改或添加监听端口(端口不能被占用)

  • LoadModule xxx/xxx.so  表示加载相应的模块 不需要加载可以在行头用#注释掉

  • ServerAdmin admin@php.cn  网站所有者邮箱 

  • ServerName localhost    服务器地址别名 你也可以改为你喜欢的字符串 需要在hosts文件添加地址解析

  • DocumentRoot  "C:\phpStudy\PHPTutorial\WWW" 表示服务器文档根路径 里面存放你的项目文件

  • ErrorLog "logs/error.log"   开启服务器运行错误日志记录 便于故障排查

  • LogLevel error  日志记录级别 emerg|alert|crit|error|warn|notice|info|debug 当触发相应类型会启动日志记录

  • ErrorDocument 404 /missing.html  表示发生404错误时服务器跳转处理 

  • Include conf/extra/httpd-vhosts.conf 加载额外的配置文件 此处加载虚拟主机配置文件 通过划分文件按需加载可以分清模块 便于查找修改

  • KeepAlive On 开启持久化连接 客户端请求时不用重复进行TCP连接 关闭时设置为Off 默认开启

  • KeepAliveTimeout 30 持久化连接时间多少 如果在该时间段内没有新的请求则断开持久化连接

  • MaxKeepAliveRequests 100 一个连接最多可以发送多少个请求。

     打开 vhosts 文件 可以看到 如下一段配置信息

<VirtualHost *:81>

                #虚拟主机监听81端口

                    DocumentRoot "C:\blog"  #虚拟主机项目根路径

                    ServerName www.blog.com #虚拟主机域名

                    ServerAlias www.blog2.com#虚拟主机域名别名 通过以前域名也能访问

                 # 该目录下的设置

                      Options FollowSymLinks ExecCGI  #Options 参数设置该目录下有哪些特性 参数值有 FollowSymLinks 允许使用符号连接  ExecCGI 允许执行CGI脚本  Indexes 访问该目录找不到指定主页文件 显示该目录下列表给用户

                      AllowOverride All #是否允许重写 根据.htacess文件指令设置 参数值 All None 

                      Order allow,deny #设立访问规则 allow deny 的优先级 当前表示先导入允许 后禁止再判断

                      Allow from all #允许规则 设立允许所有来源地址访问

                     Require all granted #所有请求都允许 如果是 Require all denied 则拒绝所有请求

                      DirectoryIndex index.php index.html index.htm  默认首页文件 越靠前优先级越高

    </VirtualHost>

Apache是怎么识别PHP模块的呢?

在配置文件中我们可以看到 Include conf/extra/httpd-php.conf 打开该配置文件可以看到

        TIM截图20171030115847.png

当然你也可以在主配置文件 IfModule mime_module 模块判断处做额外处理 例如你可以把后缀名为php2的也指派给php处理 AddType application/x-httpd-php .php2

为啥要采用PHP作为我们的编程工具?

首先PHP是一款在服务器端动态脚本编程语言,既可以嵌入到HTML文档中混编 ,也可以单独在命令行中执行。有PHPer戏谑PHP是Pai Huang Pian 的简写,这其实是一种自我调侃,PHP是Hypertext Preprocessor 超文本预处理语言的简写。从1995年诞生之日起就备受关注,随着新版本的发布也增加了许多新的特性,如命名空间namespace、面向对象设计等。PHP开放源代码,可以根据自身需求做出相应修改,满足不同层次人士需求。另外就是PHP不像ASP只能在微软系统下跑,它可以在其他操作系统 Unix、Linux、Mac OS下运行,跨平台特性强,开发完方便移植。由于PHP是用C语言写的,在要求效率和源代码安全的环境下,会C语言的还可以将C源码编译成动态链接库dll形式引入PHP调用,拓展性也很强。

以下是2017年编程语言排名,多年排名都位居前十,随着PHP7的发布,其功能特性以及性能将会更加完善。

2017年编程语言排行榜.jpeg

在我看来使用PHP相较于其他编程语言如C最大的好处就是可以 动态定义变量类型 ,属于弱语言一类。可以不用具体考虑值类型,你可以把bool值赋值给一个变量后再把一个字符串赋值给该变量,可以很灵活得对变量进行处理。

什么是MySQL?

MySql是当下最流行的一种关系型数据库,最初是由瑞典的MySQL AB公司开发,该公司2008年被Sun公司收购,Sun公司旗下最拿得出手的一款软件级产品就是Java,然后风水轮流转,2009年的时候Sun被Oracle公司收购,就这样MySQL成为Oracle公司另一个数据库产品,由于MySQL具有轻小、简洁、灵活和速度快,更重要是免费的优点上备受用户喜爱,大大减轻运营网站的成本,因此MySQL现在稳坐开源免费数据库市场头把交椅。本来Oracle公司卖的就是企业级付费的数据库软件以及服务,一套收费软件要加不菲,中小企业难以接受,正因此收购完MySQL后完成对数据库市场高中低档三线铺垫,牢牢抓住每一位用户,在数据为王的大数据时代,Oracle深刻影响着我们生活中的方方面面。

MySQL作为一款数据库管理软件,将数据拆解保存在不同的表中而不是单单存在一个大数据仓库里面增加了速度的同时也提高了灵活性,整个MySQL采用标准的SQL语言可以屏蔽各种数据库底层差异顺利实现移植,减轻移植成本的同时减少移植所需要的宝贵时间,这是多么的功德无量呀。试想每款数据库都各自为政,各搞各的特性,跟微软IE浏览器和网景浏览器之争一样,让如今的前端设计师都为之咬牙切齿,这该多么糟糕呀!正因为这些优点,PHP4开始就集成MySQL 作为默认的数据库,PHP+MySQL似乎已经成为一种主流共识,加上MySQL是一款开源软件,世界上优秀的工程师都可以加进来不断完善其特性,阿里云团队也在MySQL开源代码的基础上完成了自己的一套分支ALiSQL,号称其特性只在千万级别以上增删改查才会跟Oracle有所差异。开发者可以根据自己的喜好选择相应版本。MySQL5默认将InoDB作为默认的存储引擎,该引擎支持行级锁和事务,可以处理死锁和业务回滚需求。杀鸡焉用牛刀,对付中小级别的网站业务,MySQL足矣。

php请求过程.png

在HTTP请求中,客户端发送的请求到达服务器 www.test.com 时会经过web容器如Apache处理,判断是不是索取静态资源,是的话直接返回静态资源,如果是请求php资源则指派给PHP处理,在处理过程中如果是获取商品信息或信息信息时会携带id参数,根据该id PHP会操作数据库去获取相应的对象信息随后返回给客户端。

Apache、PHP、MySQL都支持跨平台,为啥要选择Windows系统作为开发环境?

由于Linux和Mac操作系统都是基于Unix操作系统上完善起来,用过Linux的朋友想必一开始很不习惯这种纯粹用命令行去处理的情况,切换路径、查看文件列表、查找指定文件名的文件等都得采用命令行形式,虽然可以在其安装桌面可视化窗口,但是在正常的服务器环境下是不允许安装视窗的,一方面是会增加系统资源负载,另一方面则是桌面化开关机操作都是root权限,不需要授权就可以随意关机,这要是犯错误分分钟被炒鱿鱼。而最亲民的Mac价格都在1万元左右,一般公司不会在工作环境配置,而Windows环境是我们平时使用最多的一种操作系统,在熟悉的环境中逐步摸索,偏于排查各类故障。

因为我推荐在WMAP环境开发PHP程序,然后再移植到线上部署。


标签:   WAMP环境

搜索

关于楠Go

2015年毕业于吉林大学珠海学院,现今工作已两年有余,2014年在珠海一家游戏公司从事手机游戏开发,后离职转型为网络端PHP工程师,时至今日。熟练掌握PHP面向对象编程网络编程TP框架使用Discuz论坛插件开发。掌握前端框架Bootstrap的使用,掌握JS框架Jquery的使用。已开发多款网站,有着一定基础的开发经验,希望能在互联网领域再上一层楼!

了解更多: 开源中国 ThinkPHP


Powered by MetInfo 5.3.19 ©2008-2018 www.MetInfo.cn