(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相关配置的意义所在!