Apache + PHP配置

Posted 王明辉的部落

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apache + PHP配置相关的知识,希望对你有一定的参考价值。

  因工作需要,重新配置了Apache和php。想起当年曾经配置过,但是已经忘得差不多了。而且,也没有记录。从我个人来看,确实缺乏这样的训练,从国家教育体系来看,似乎也从未有过做科学记录的训练。中国的瓷器之所以有名气,是因为发展得早,各种能工巧匠各种灵感迸发,精美绝伦,然后各种失传,只留下一个精美的物件,而没有怎样再次制作的记录。到现在也不知道地动仪的内部结构吧?也许是他们没有做记录的习惯,也许是他们不想让别人知道,不想让别人学去自己的看家本领。从历史上中国人的个性来看,后者的可能性大。不是他们没有做记录的习惯,而是他们不想做记录。反观目前已经超越中国、处于世界顶级的德国瓷器,在奥古斯都大帝那个时代,为了仿制中国瓷器,进行了3万多次实验,并记录。可复现、可证实、可证伪,这是科学。需要训练,思维上,行动上。

==============言归正传双层线===============================

Apache安装与配置详解

安装

官方网站:http://www.apache.org/

顶层菜单找到:download

在下面的链接中选择官方推荐的第一个,清华的镜像服务器:

http://mirrors.tuna.tsinghua.edu.cn/apache/

会出现一个目录列表,Ctrl + F,查找httpd,点击进入。

如果想查看详细信息,就搜Apache HTTP Server Download Page,也可以直接打开http://httpd.apache.org/download.cgi

在这个页面上,我们可以看到一些说明和细节信息,各种下载方法。在这里,只说明windows系统的文件的下载方法。

在页面最明显的位置,有个

  • 2.4.29 (released 2017-10-23)

点击,会跳到本页面对应的节。如下:

是源码和安装文件的下载链接。apache服务器本身不存储文件,一律通过第三方服务器发布,大概是因为全世界的流量太大了,作为一个非盈利组织,无力也没有必要维护。

如果点击Binaries,又会进入目录浏览,兜兜转转又会回到第三方服务器,所以,直接点 a number of third party vendors,或者Files for Microsoft Windows,这俩链接是一样的,会出现一个第三方的列表:

如果想要纯的Apache服务器,就选前两个,后面三个是集成了mysql和php的版本。

下载后,解压,我放在了c:/apache24目录下。

配置

打开apache24/conf目录,用文本编辑器打开httpd.conf文件。

查找ServerRoot "${SRVROOT}"

(说明:因文件内有一些标记带有引号,故凡是需要查找的,一律用中文中括号标记,以便区别,使用时只需查找中括号内的内容即可,下同)

此处的${SRVROOT}"是apache配置文件中的变量,它的上一句是Define SRVROOT "/Apache24",意思是,把SRVROOT这个变量的值定义为/Apache24,

这里我们根据实际情况调整一下,改成Define SRVROOT "c:/Apache24",也就是我们Apache安装目录的绝对路径。

这个配置文件中,使用了很多${SRVROOT}变量来设置apache的安装路径,比如DocumentRoot,所以这里最好把这个变量用上,就不必到处改了。

 

查找【Listen  80】,这里是默认的,如无必要,不必修改。

查找【ServerName】

ServerName localhost:80

此处是主站点名称,即网站域名,根据实际情况修改

查找【ServerAdmin】

ServerAdmin [email protected]

此处是管理员的邮件地址,可自动向管理员发日志等邮件。

查找【DocumentRoot】

DocumentRoot "${SRVROOT}/htdocs"

此处是网站的根目录,SRVROOT即是前面定义的安装目录,可根据实际情况调整。可以设置在安装目录之外。

 

查找【<Directory />】

把其下的Require all denied 改为Require all granted

 

最后,使用httpd.exe文件进行安装,可以cmd进入D:\Apache24\bin目录执行,也可以任意目录D:\Apache24\bin\httpd.exe。

httpd -k install -n "Apache24"

引号内是自定义的别名。

如果需要删除这个服务:

httpd -k uninstall -n "Apache2.4"

 

至此,apache配置完毕。此时用http://localhost,应该就可以访问了。

如果外网无法访问,关闭防火墙或设置80端口通过,试试。

 

虚拟站点的配置

在http.conf 中将 httpd-vhosts.conf包含进来

# Virtual hosts

Include conf/extra/httpd-vhosts.conf

在 httpd-vhost.conf中配置

    (1)基于IP的虚拟主机

     修改hosts文件,添加3个域名与之对应

     192.168.1.11 www.test1.com

     192.168.1.12 www.test2.com

     192.168.1.13 www.test3.com

     建立虚拟主机存放文件的根目录,如

     www/test1/1.html

     www/test2/2.html

     www/test3/3.html

     在httpd-vhosts.conf进行如下配置

     <VirtualHost 192.188.1.11:80>

         ServerName www.test1.com

         DocumentRoot "www/test1"

         <Directory "www/test1">

             Options Indexs FollowSysLinks

             AllowOverride None

             Order allow deny

             allow from all

             DirectoryIndex  index.html index.htm index.php

         </Directory>

     </VirtualHost>

    

          

     <VirtualHost 192.168.1.12:80>

          ServerName www.test2.com

           DocumentRoot /www/test2/

          <Directory "/www/test2">

             Options Indexes FollowSymLinks

              AllowOverride None

              Order allow,deny

              Allow From All

           </Directory>

     </VirtualHost>

  

    

      <VirtualHost 192.168.1.13:80>

        ServerName www.test3.com

        DocumentRoot /www/test3/

        <Directory "/www/test3">

         Options Indexes FollowSymLinks

         AllowOverride None

         Order allow,deny

          Allow From All

       </Directory>

      </VirtualHost>

  

   (2)基于主机名

     设置域名映射同一个主机

     192.168.1.10 www.test1.com

     192.168.1.10 www.test2.com

     192.168.1.10 www.test3.com

     设置存放网页的根目录

     www/test1/1.html

     www/test2/2.html

     www/test3/3.html

     在使用基于域名的虚拟主机时,必须指定服务器的IP地址和可能的访问端口来使主机接受请求,可以

     使用NameVirtualHost指令来配置,如果服务器上所有的IP都会用到,则可以使用来表示,

     在NameVirtualHost指定的ip并不会让服务器监听这个IP

     然后配置<VirtualHost>

     如果在现有的WEB服务器上配置虚拟主机,则必须为现存的虚拟主机也配置<VirtualHost>,其中

     ServerName 和 DocumentRoot包含的内容应该与全局的内容一致,且要放在配置文件的最前面,

     作为默认主机的配置

     NameVirtualHost :80

     <VirtualHost :80>

        ServerName www.test1.com

        DocumentRoot "www/test2"

        <Directory "www/test1">

             Options Indexs FollowSymLinks

             AllowOverride None

             Order allow,deny

             allow from all

        </Directory>

     </VirtualHost>

       <VirtualHost :80>

        ServerName www.test2.com

        DocumentRoot "www/test2"

        <Directory "www/test2">

             Options Indexs FollowSymLinks

             AllowOverride None

             Order allow,deny

             allow from all

        </Directory>

     </VirtualHost>

       <VirtualHost :80>

        ServerName www.test3.com

        DocumentRoot "www/test3"

        <Directory "www/test3">

             Options Indexs FollowSymLinks

             AllowOverride None

             Order allow,deny

             allow from all

        </Directory>

     </VirtualHost>

  

   (3)基于端口

     修改httpd.conf

     设置为

Listen 8001

           Listen 8002

     修改虚拟主机配置文件 httpd-vhosts.conf

     <VirtualHost :8001>

         ServerName www.test1.com

         DocumentRoot "www/test1"

     </VirtualHost>

      <VirtualHost :8002>

         ServerName www.test2.com

         DocumentRoot "www/test2"

     </VirtualHost>

 

PHP配置

 

  配置文件是PHP目录下的php-development.ini和php-dist.ini,开发期间把php-development.ini改成php.ini

   1. 模块加载:

extension = php_mysql.dll

 

   2. 修改模块的目录

     extension_dir = "D:/php/ext"

也可以将 D:/php ,D:/php/ext 添加到系统环境变量中,此处最好用绝对路径

 

   3. 在Apache中配置php

更改httpd.conf

 

添加PHP模块

LoadModule php7_module "D:/php/php7apache2_4.dll

 

配置php.in路径

PHPIniDir "D:/php"

 

    配置AddType

    AddType application/x-httpd-php .php

    AddType application/x-httpd-php .txt

       

   4. register_globals = Off 设置是否开启全局变量

   若设置为On

   已GET/POST提交的参数,直接可以使用变量用调用, 建议不开启

   5.设置时区:date.timezone =PRC 

   6.设置session 

 

以上是关于Apache + PHP配置的主要内容,如果未能解决你的问题,请参考以下文章

mac下如何配置PHP apache?

配置apache支持php

windows 配置 apache + php

apache配置 php中没有php5apache2_4.dll

【求助】安装并且配置好apache+php+mysql之后该咋办捏?

B. 配置apache处理.php文件