(1)httpd.conf的配置php
使用文本编辑工具(推荐使用Editplus、UltraEdit等工具),打开httpd.conf。html
其中,行首为#的部分为注释部分,不会被apache服务器程序进行读取和执行,没有#部分为正式配置部分,会被服务器读取并运行。apache
首先为上图中的“Define SRVROOT "/Apache24"”,此处为服务器的根目录,应根据你的实际配置进行修改,前文所述,咱们将apache的目录apache24放置于C盘的根目录下了,所以,此处应该为为“Define SRVROOT "C:/Apache24"”,以下图windows
(约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配置、特性细节,咱们下一个小节进行描述。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相关配置的意义所在!