(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. 500行SQL快速实现UCF

    写在前面话 UCF通常是User-base Collaborative Filter的简写;大体的算法思路是根据用户行为计算相似群体(邻居),为用户推荐其邻居喜好的内容:感觉是不是很简单.那废话不多说 ...

  2. PostgreSQL 实现定时任务的 4 种方法

    数据库定时任务可以用于实现定期的备份.统计信息采集.数据汇总.数据清理与优化等.PostgreSQL 没有提供类似 Oracle.MySQL 以及 Microsoft SQL Sever 的内置任务调 ...

  3. zookper投票机制

    前提:已经搭建好zookper集群 1.先开启编号为01的服务器 2.开启编号为02的服务器,状态为leader,编号为01的变成follower 3.开启编号为03的服务器,状态为follower ...

  4. leetcode常见问题

    开学了 开始每日刷leetcode了  ,开一个新分类记录做题过程和心得. 1.出现本地调试无问题但提交后报错时,很有可能是全局变量导致的,解决办法 (1).尽量写成局部变量,函数尽量传参进入. (2 ...

  5. 2020 ICPC Universidad Nacional de Colombia Programming Contest

    2020 ICPC Universidad Nacional de Colombia Programming Contest A. Approach 三分 显然答案可以三分,注意\(eps\)还有两条 ...

  6. 如何用 4 个小时搭建一个新 “Clubhouse” ,引爆声音社交新风口

    Clubhouse,基于实时音频技术的声音社交现象级火爆 最近,让硅谷两位顶级 VC 大打出手争相投资的 Clubhouse 火到了国内,甚至在社交圈里 "一码难求",此种火爆程度 ...

  7. 整体算力提升40% 芯片级安全防护 | 阿里云发布第七代ECS云服务器

    2 月 8 日,阿里云宣布推出第七代 ECS 云服务器产品家族,基于最新的神龙架构,相较于上一代整体算力提升 40%,容器部署密度最大可提升 6 倍,是最佳的云原生载体,此外全量搭载安全芯片,实现&q ...

  8. Go中的Socket编程

    在很多底层网络应用开发者的眼里一切编程都是Socket,话虽然有点夸张,但却也几乎如此了,现在的网络编程几乎都是用Socket来编程.你想过这些情景么?我们每天打开浏览器浏览网页时,浏览器进程怎么和W ...

  9. CF1462-C. Unique Number

    题意: 给出一个数字x,让你找出一个由1到9这九个数字组成的数字,这个数字的每一位加起来等于x,并且1到9每个数字只能出现一次.若能找到这样的数字,输出这其中最小的一个,否则输出-1. 思路: 利用二 ...

  10. 实战交付一套dubbo微服务到k8s集群(5)之使用Jenkins进行持续构建交付dubo服务的提供者

    1.登录到jenkins,新建一个项目 2.新建流水线 3.设置保留的天数及份数 4.添加第一个参数:设置项目的名称 5.添加第二个参数:docker镜像名称 6.添加第三个参数:项目所在的git中央 ...