(1)httpd.conf的配置

使用文本编辑工具(推荐使用Editplus、UltraEdit等工具),打开httpd.conf。

其中,行首为#的部分为注释部分,不会被apache服务器程序进行读取和执行,没有#部分为正式配置部分,会被服务器读取并运行。

首先为上图中的“Define SRVROOT "/Apache24"”,此处为服务器的根目录,应根据你的实际配置进行修改,前文所述,我们将apache的目录apache24放置于C盘的根目录下了,因此,此处应该为为“Define SRVROOT "C:/Apache24"”,如下图

(约67行),此行数根据apache具体版本不同,可能区别,但顺序一致,下同)我们向下阅读该配置文件,,有一处

这是配置apache的服务器监听端口,按照HTTP协议,默认端口就是80。因此,此处如无特殊需要,不需修改。注意:有关网络协议和端口相关知识,有兴趣的读者可以参考计算机网络相关书籍,这里不做详细介绍。

(约190行左右)再向下阅读此配置文件,是有关加载哪些动态库对象部分,此处先安装默认即可。但是,在动态库对象最后,我们要加入对php的支持,因为php解析器本身也是一个动态库对象。

在最后一行“#LoadModule”的后面加入下面的代码:

# php7 support

LoadModule php7_module "D:/php7/php7apache2_4.dll"

AddType application/x-httpd-php .php .html .htm

# configure the path to php.ini

PHPIniDir "D:/php7"

这里,我们使用的是php7.4.15(下载地址:https://windows.php.net/download#php-7.4-nts-vc15-x64),该php库与apache服务器所依赖的运行库均为VC15(VS2017),不必重复安装运行库。截至目前,php的最高版本为8.0,依赖运行库为VS2017/2019,读者们也可以下载使用,配置方法与此相同,这里的库文件和ini路径按照php实际存放路径仿照上述填写即可。

有关php7配置、特性细节,我们下一个小节进行描述。

(约223行左右)再向下看该配置文件,配置管理员邮箱,apache服务器遇到错误时,会向用户显示错误页面,上面会有管理员的邮箱地址,这个地方改为你的邮箱,有助于用户将错误信息及时通过邮件发给你(当然不改也可以,不影响使用)。

(约232行左右)向下看配置文件,此处需要配置服务器名和端口,服务器名是服务器识别自身的一个属性,需要根据实际情况进行配置,如果你前面已经申请了域名,你可以使用域名+端口的形式进行配置,如果没有域名,需要使用IP地址+端口的形式配置。

(约240行左右)此处开始配置网站目录,首先,这里给出了一个全部权限禁止访问的目录配置,而且说明了,你需要在其他目录明确的写出该目录可被访问的权限。这是一个安全配置,即先禁用全部,然后按照需要逐个放开权限,此处无需修改。

(约256行)此处为网站根目录及其访问权限配置,按下图配置即可。

如果还有其他目录,比如虚拟主机中另外端口对应其他目录,对那个目录也需要按上述方法配置权限。(不配置权限也可以在虚拟主机中使用,但可能由于权限太大,导致不可预料的安全问题。)有关此处配置的详细详细,读者可以参考apache相应文档,此处不再赘述。

(约289行)此处是配置apache服务器默认执行文件,即如果用户直接通过浏览器输入一个路径,而不指定具体的访问文件,apache应该解析该路径下的哪个文件呢?

下面两个配置是客户端无法显示*.ht*文件以及错误日志输入路径,按其配置即可(此处注意,如果在虚拟主机配置中配置了错误日志输出文件,则此处对虚拟主机无效,按虚拟主机配置执行)。

(约482行之前)这部分配置主要是错误级别配置、外部路径访问权限配置、压缩文件的支持、错误页面的自定义等,这些保持默认配置即可,并不影响本文所讨论的应用。

(约482行)从这里开始,为apache服务器增强能力配置,配置这部分内容,需要配合conf/extra/目录中其他文件配置。我们在此处需要为配置两个重要的能力:虚拟主机能力和SSL安全链接能力。(此处不做配置,apache服务器运行http协议已经没有问题了)。

虚拟主机主要是解决一个apache服务器运行多个网站的问题,这些网站(即多个网站空间路径)可以使用不同端口、不同地址、不同的域名,我们这里使用的不同的端口。

(约509行)虚拟主机需要增强能力httpd-vhosts的支持,如下图,将httpd-vhosts打开。

虚拟主机文件conf/extra/httpd-vhosts.conf文件的配置本文下面再做详细介绍。

(约525行)这里是这部分要详细介绍的SSL安全链接增强能力的支持。在微信服务号开发中,尤其是自定义菜单的链接,很多时候是需要安全链接的(也就是https链接),因此,这部分是必须要配置的。

请在此处加入下列配置代码,完成SSL能力配置,关于conf/extra/httpd-ssl.conf有关设置细节,在本文后面会有详细描述。

<IfModule ssl_module>

Include conf/extra/httpd-ssl.conf

SSLRandomSeed startup builtin

SSLRandomSeed connect builtin

</IfModule>

<IfModule http2_module>

    ProtocolsHonorOrder On

    Protocols h2 h2c http/1.1

</IfModule>

<IfModule mod_headers.c>

    Header set Access-Control-Allow-Origin: "*"

    Header set Access-Control-Allow-Methods: "GET,POST,PUT,DELETE,OPTIONS"

    Header set Access-Control-Allow-Headers: "Content-Type"

</IfModule>

该文件最后是关于Fast-CGI的配置,按照默认配置即可,至此,httpd.conf文件讲解和配置完成!

小结:本章详细描述了httpd.conf文件的组成和配置过程,之所以描述的如此详细,就是因为这个文件太重要了,它是apache服务器最重要的配置文件,没有之一!很多apache服务器出现问题,甚至安全问题,都与该文件配置问题相关。本书既然面向0基础的读者,有必要对这个文件进行详细描述,请读者务必数量掌握该文件的配置和重要属性的意义,后期网站出现问题时,可能需要从此处着手排除问题。

(2)extra/httpd-vhosts.conf的配置

extra/httpd-vhosts.conf是apache服务器的增强配置,主要用于配置多个网站空间时,虚拟主机的配置方案。要使extra/httpd-vhosts.conf生效,在前文中提及的httpd.conf必须解除Include conf/extra/httpd-vhosts.conf注释,使其生效。

(如果读者的网站至运行一个网站空间,则不必接触Include conf/extra/httpd-vhosts.conf注释,extra/httpd-vhosts.conf也无需配置也是可以的)

这里我们看一下extra/httpd-vhosts.conf文件的具体内容。

上图中是一个实体服务器上配置两个虚拟主机的例子,按照端口(一个是80端口-默认,一个是5094端口-自定义)不同进行分别配置,在每一个虚拟主机中写明各自的根目录地址,其他信息按照实际填写即可。

(3)extra/httpd-ssl.conf的配置

SSL作为安全链接传输协议,在微信服务号设置时,经常需要用到的。我们将网站配置成为SSL链接,有利于增强数据传输的安全性,这在敏感数据传输时尤为重要。

SSL也是apache服务器增强功能之一,在extra/httpd-ssl.conf进行配置。配置前,需在httpd.conf中打开Include conf/extra/httpd-ssl.conf。

我们下面详细介绍下extra/httpd-ssl.conf。

(约37行)这里是SSL链接默认的监听端口,按照协议要求,默认是443端口,这里无需修改。

(约63行开始)这个配置文件剩下部分是对SSL虚拟主机的配置,与上一个部分虚拟主机的配置相同,根目录、主机名称、错误日志、运行日志的路径是需要配置的,如下

(约74行)打开SSL引擎。

以上配置结束后,其余默认配置即可,你的https网站就可以访问了,但访问时浏览器会出现下列提示:

从英文的错误可以看出,是无效的授权证书错误,因此,我们必须还要配置正确的证书。

证书的获取,可以从腾讯云控制台来获取,具体为“云产品”中,“域名与网站”中选择“SSL证书”。

在“SSL证书”界面选择切换到“我的证书”,选择“申请免费证书”。

下面是最重要的三个文件路径的配置,这

弹出的界面中,选择默认的“亚洲诚信”的免费证书即可,然后点击确定。

分步骤填写必要的信息。

验证成功后,在“我的证书”界面,可以查看已申请完成的证书。

点击已经申请完成的证书后面的“下载”将证书下载至本地。下载至本地的文件是一个以网站域名命名的zip压缩文件,将该文件解压后得到1个文本文件和4个文件夹,我们用的是apache服务器,所以我们要使用apache文件夹下的3个证书相关文件进行部署。

将这3个文件放置于服务器中的某个文件路径下,如放置于“C:/MyPHPSite/conf-on1BsW6mX0d/”路径(路径名由读者自定义,在配置文件下一致即可)下,

(约94行)将SSL证书文件的路径写成

(约104行)将SSL密钥文件的路径写成

(约116行)将CA认证文件的路径写成

最后,对网站路径访问权限进行配置

(约182行)

此处配置与前述httpd.conf中相应配置相同,请参考本文上述内容。

该配置文件其余部分,从其默认配置即可,至此,文件配置完成。

上述文件配置完成后,在服务器端浏览器中,输入http://127.0.0.1或 https://127.0.0.1 可以访问C:\MyPHPSite\ 下的网页index.php。

本章小结:请熟练掌握apache的配置文件和配置方法,尤其是根目录、访问权限、虚拟主机、安全链接等的定义和配置技巧,从某种程度上来讲,这并不比编写程序要简单。我们不但要会使用工具,我们也要熟悉我们的工具,常见的工具问题,我们应能及时排除,这就是我们花很大篇幅来介绍apache相关配置的意义所在!

1.3.1 apache的配置(下)的更多相关文章

  1. APACHE 在windows下的配置

    目前apache在windows下只支持到2.2 所以php必须下载相应的线程安全的 然后打开apache的配置页面 listen directory 和 load_module修改 httpd -k ...

  2. LAMP_02_WIN下Apache安装配置

    1.下载http://httpd.apache.org/download 2.配置 下载完解压后有readme,首先进行阅读其中的VC运行库必须安装,否则会出现各种奇葩问题用命令行安装服务 发现报错, ...

  3. 【高可用HA】Apache (4) —— Mac下配置Apache Httpd负载均衡(Load Balancer)之mod_jk

    Mac下配置Apache Httpd负载均衡(Load Balancer)之mod_jk httpd版本: httpd-2.4.17 jk版本: tomcat-connectors-1.2.41 参考 ...

  4. 【高可用HA】Apache (3) —— Mac下配置Apache Httpd负载均衡(Load Balancer)之mod_proxy

    Mac下配置Apache Httpd负载均衡(Load Balancer)之mod_proxy httpd版本: httpd-2.4.17 参考来源: Apache (1) -- Mac下安装Apac ...

  5. [转载]Apache在windows下的安装配置

    Apache在windows下的安装配置 转载自:http://blog.sina.com.cn/s/blog_536f16b00100cfat.html     1 Apache的下载 Apache ...

  6. windows下apache+php配置 问题总结

    以下为转帖内容: 原文出处:http://www.cnblogs.com/angelox/archive/2008/10/09/1306732.html PHP5+APACHE2.2配置成功案例:第一 ...

  7. Windows 下apache https配置(phpstudy)

    1.首先获取证书,https://www.pianyissl.com/  免费三个月的 或者 自己生成私钥.证书,然后应用到apache中. http://blog.sina.com.cn/s/blo ...

  8. 【只需3步】源码手动安装Apache以及配置(亲测可行)

    作者小波/QQ463431476欢迎转载! redhat6采用centos yum源. 第一步下载apache依赖的软件包并安装 安装 apr下载地址:http://apr.apache.org/do ...

  9. centos apache svn配置

    单独安装svn服务: 安装svn软件 yum install subversion 创建根目录 mkdir -p /var/www/svn 创建版本库repos svnadmin create /va ...

随机推荐

  1. MDK中用C++开发STM32

    ​作者:良知犹存 转载授权以及围观:欢迎添加微信:Allen-Iverson-me-LYN 前言     最近想开发一段单片机的代码,代码本身有很多的重复元素,这重复定义的一些结构体使用起来有些繁琐, ...

  2. mysql查询太慢,我们如何进行性能优化?

    老刘是即将找工作的研究生,自学大数据开发,一路走来,感慨颇深,网上大数据的资料良莠不齐,于是想写一份详细的大数据开发指南.这份指南把大数据的[基础知识][框架分析][源码理解]都用自己的话描述出来,让 ...

  3. 动态规划TG.lv(1) (洛谷提高历练地)

    动态规划TG.lv(1) P1005 矩阵取数游戏 分析:每行不超过80个数字,直接区间DP即可,\(dp[i][j]\)表示区间\([i,j]\)之间取数可以得到的答案,每次向右或者向左扩展即可.但 ...

  4. centos 7下安装配置Supervisor

    1.安装Supervisor centos下安装yum install supervisor 2. systemctl enable supervisord 开机自启 systemctl start ...

  5. codeforce 849B

    B. Tell Your World time limit per test 1 second memory limit per test 256 megabytes input standard i ...

  6. redis字符串-sds

    redis自己实现了一种名为简单动态字符串的抽象类型(simple dynamic string)作为字符串的表示.下面将简单介绍sds的实现原理. 一.sds的结构

  7. SPOJ REPEATS Repeats (后缀数组 + RMQ:子串的最大循环节)题解

    题意: 给定一个串\(s\),\(s\)必有一个最大循环节的连续子串\(ss\),问最大循环次数是多少 思路: 我们可以知道,如果一个长度为\(L\)的子串连续出现了两次及以上,那么必然会存在\(s[ ...

  8. HDU 3341 Lost's revenge (AC自动机 + DP + 变进制/hash)题解

    题意:给你些分数串,给你一个主串,主串每出现一个分数串加一分,要你重新排列主串,最多几分 思路:显然这里开$40^4$去状压内存不够.但是我们自己想想会发现根本不用开那么大,因为很多状态是废状压,不是 ...

  9. Linux错误记录贴

    add-apt-repository 不要写成 add-apt-repository service  不要写成 sevice 总之在打命令的时候要注意不要拼错单词 对于ls命令权限不够我们可以先su ...

  10. Lenet车牌号字符识别+保存模型

    # 部分函数请参考前一篇或后一篇文章 import tensorflow as tf import tfrecords2array import numpy as np import matplotl ...