您的位置:首页 > 运维架构 > Apache

PHP环境安装(Widows+Apache+PHP)

2016-06-20 08:27 399 查看
版权声明:本文为博主原创文章,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 https://blog.csdn.net/neomwang/article/details/51718431

  学习PHP的第一步就是搭建安装PHP环境,当然本文不会介绍类似phpMyAdmin这种一键安装的软件的环境搭建,这种安装方式只需要狂点下一步就好,没有什么可说的,我想把Apache+PHP和IIS+PHP的安装方式在本文详细说明下。很多初学者不解,为什么学习PHP要安装Apache这种软件,不难理解,PHP是服务端脚本,它的诞生就是为了BS软件架构设计的,所以免不了需要一个Web Server作为中间桥梁。如下图:

  具体流程是这样的,当服务器接收到来自客户端的请求时会根据请求资源的MIME类型做出不同的处理方式,一般情况下,Web server 针对静态资源会直接回发给客户端,比如.txt,.png,.html等,针对需要进行处理后才回发给客户端的文件则需要在服务器中将文件交给能解析该文件的处理程序来处理之后再回发给客户端,这就是这也是BS软件的一个特点,基于请求而响应的交互模式。

  然而PHP正是服务端的脚本语言,一般来讲,以.php为后缀名的文件被称为PHP脚本文件,如果需要被解析的话需要使用PHP解析引擎的支持,故而,我们只需要为web server 添加PHP处理引擎的模块并将针对.php文件的MIME类型的请求交给PHP引擎来处理就能成功实现PHP的环境搭建了。

  PHP是开源免费的软件,可以到http://php.net/downloads.php去下载安装包,根据自己操作系统选择不同的版本,window版本是一个zip包,没什么好说的,解压就可以使用了。

Window+Apache+PHP

  这里我没有写上MySQL,个人感觉MySQL并不是必须的,因为在一个操作系统上安装一个web server软件和PHP解释引擎后就能成功执行PHP代码了,至于MySQL,需要的时候再加进去也是可以的,如果使用phpMyAdmin一键安装的话,会自动将MySQL也给安装好了,额,作为初学者,个人感觉最好还是自己手动多安装几遍,弄清他们之间的关系最好。

  Apache跟PHP一样也是免费软件,可以到http://httpd.apache.org/download去下载安装包。本文以Windows10下安装Apache2.4+PHP5.6为例详细说明下安装步骤:

  1. 解压PHP压缩包,将解压文件放到合适的文件夹,我个人比较习惯将第三方软件安装到【D:\Program】目录下,缺省情况下,PHP和Apache的压缩包均带有符号【-】个人不建议在目录中出现不符合变量命名法的其他字符,一般来讲,最好是选择字母,数字或者下划线作为目录名,不推荐使用数字或者下划线开头,当然,这是我的个人习惯,我的PHP根目录是【D:\Program\PHP5\】,我的Apache的根目录是【D:\Program\Apache24\】

  2. 对于PHP而言,没什么好做调整的,我不知道为什么网上有很多说法是需要将PHP根目录下的ini文件放到系统目录下,好像是为了方便调用,但是我们可以完全可以不这样的,针对PHP的配置,以后涉及到需要配置的时候在详细说,缺省情况下,不需要对PHP做任何配置就能直接运行PHP程序,并且符合很多工作需要。但是第一次安装的时候还是有必要知道PHP的配置文件在哪,解压后,会发现在PHP的根目录下名为【php.ini-development】和【php.ini-production】的两个文件,没错,这就是PHP的配置文件,只需要将其中之一更名为【php.ini】即可,当然,个人不建议直接这样做,如果以后配置出错,不知道缺省配置值的话,就比较麻烦,保守起见,推荐做法是,将其中之一的副本重命名为【php.ini】最佳,我一般选择将【php.ini-development】的副本更名为【php.ini】。

  3. 对于Apache而言,就比较麻烦了,需要做的配置比较多,而且,自Apache2.4版本后,配置文件是允许使用Define关键字来定义常量,配置文件在Apache根目录下的conf目录下,httpd.conf文件正是Apache的配置文件,话不多说,我们来认识认识这个配置文件吧。

3.1. 打开配置文件可以看到【ServerRoot “${SRVROOT}”】的代码,该代码上面有一个使用Define关键字定义的名为SRVROOT的常量,用来定义Apache的根目录的,很明显,需要将这句话更改正确的目录才对。

Define SRVROOT "D:/Program/Apache2/"

说到这里,其实我们还可以定义一个常量来标识站点根目录,方便在配置文件中调用。假设我需要以【D:\Web\】作为站点根目录,则紧接上一句话这样写(需要保证目录的存在性):

Define WEBROOT "D:/Web/"

如下图所示:

3.2. 继续往下看,可以看到【Listen80】的一行,这是Apache的监听端口,因为本机已经安装了IIS并且已经占用了80端口,故而,我这里将端口更改下为8080端口,如下图所示:

3.3 接着往下,可以看到很多的【LoadModule】,这就是Apache针对不同的MIME类型调用的程序模块,很明显,如果需要让请求的脚本文件能够被解析PHP代码,就必须为Apache添加PHP解析模块。故而,我们在LoadModule这段话后添加一行,为Apache添加PHP模,需要注意的是指定的路径是针对PHP根目录下的【php5apache2_4.dll】文件的绝对地址,并且将PHP的配置文件所在的目录也告诉给Apache,这样就不用将php.ini拷贝到系统目录下了,如下图所示:

3.4 接着,我们需要为Apache指定网站的站点根目录,找到DocumentRoot设置项,使用刚刚调用常量SRVROOT的方式调用自定义的常量WEBROOT,如下图所示:

3.5 接下来我们需要设置下网站的缺省页面,找到DirectoryIndex节点,更改为index.html和index.php,这里需要注意的是,越靠前,优先级越高。

3.6 最后一项配置,我们需要为Apache设置MIME类型,告诉Apache针对以.php为后缀的文件交给PHP引擎去处理就完成了,找到mime_module,添加一个类别【AddType application/x-httpd-php .php】,这里我做个测试,如果确实像我说的那样,那是不是如果在后面添加一个.html文件,Apache也会将.html文件交给PHP引擎处理呢?当然,大家不用再后面添加一个.html,我的配置如下图所示:

  1. Apache配置好了之后,我们需要将Apache安装到服务中,使其能够运行起来,打开命令提示符,输入【D:\Program\Apache2\bin\httpd.exe -k install -n Apache2】安装Apache,我来解释下,前面那一串当然是指的Apache主程序绝对地址,-k参数有两个值,一个是install,一个是uninstall,相信大家知道用来干嘛的了吧,至于-n参数好说,就是安装到服务中的服务名称,可以随便取名,当然,个人推荐取名最好选择变量命名法。出现下图说明安装成功。

    安装过程中如果出现下图记得点击允许

    我们可以确认下是否成功安装到服务中,打开服务,出现下图,说明安装成功。

  2. 最后,我们一个做个小测试,检测在【D:\Web\】新建一个index.php,文件其中编写如下代码

<?php phpinfo(); ?>

保存,打开浏览器,地址栏输入localhost:8080,注意这里的8080,指的是刚刚配置Apache的时候为Listen选项定义的值,至于localhost,我就不用多解释了,当然,这里把localhost改为127.0.0.1也是OK的,出现如下图说明安装成功:

  1. 为了证明html页面能被PHP引擎处理,我们将index.php更名为index.html,效果一样。

总结:

  Apache通过MIME类型来判断被请求的文件该直接回发还是交给某个模块去处理后回发,如果将html页面也设定了需要被处理后回发则不会直接回发,而是将其当作脚本处理完毕后回发,这需要使用LoadModule把PHP加到Apache中,让Apache能够在面对请求的时候找得到能够处理的程序,当然,PHP的配置文件所在目录也需要告诉Apache,这样便于调用,就不用将配置文件拷贝到系统目录下了。
  在配置Apache的MIME类型的时候不建议将html文件也交给PHP引擎去处理,从本文的第一张图中可以知道,如果经过了PHP引擎来处理页面后再回发给客户端的话,响应速度必然没有直接回发要来的快。

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: