Apache作为一款开源软件,是广泛应用的web应用之一,Apache有两个主要版本1.X和2.X,一般我们使用2.X版本,比起1.X版本它支持很多新的功能,下载Apache源码包的地址为:https://httpd.apache.org ,下载到源码包后开始准备安装:
1、为避免发生端口冲突,程序冲突等问题,如果有rpm方式安装的httpd服务,建议将其卸载。
2、挂载系统镜像,切换至系统盘中的Packages目录,安装相关依赖包(注意,最好一个一个的依次安装,因为如果有些安装包已经安装了,一次安装下面的安装包的话,就会报错)
3、将httpd源码包进行解包,并指定释放目录,然后切换到展开后的源码目录中:
4、配置:
上面配置命令中,各个选项的含义如下:
--prefix:指定将httpd服务安装到哪个目录下。
--enable-so:启用动态加载模块支持,让httpd具备进一步扩展功能的能力。
--enable-rewrite:启用网页地址重写功能,用于网站优化和目录迁移维护。
--enable-charset-lite:启用字符集支持,以便支持使用各种字符集编码的网页。
--enable-cgi:启用CGI脚本程序支持,便于扩展网站的应用访问能力。
5、执行make && make install命令进行编译安装:
若在上面配置、编译、安装过程中报错,排除命令错误的前提下,那么一般是少了依赖包,检查依赖包有没有少装吧!
6、安装完成后,切换至安装成功的目录后,会看到以下几个目录:
各个主要子目录的用途如下:
7、优化执行路径(根据实际情况来定,可以不进行优化):
通过源码安装的httpd服务属于第三方服务,所以程序路径并不在默认的搜索路径中,如果现在要启动Apache的话,需要执行命令:/usr/local/httpd/bin/apachectl start,也就是安装完成后bin目录下的程序控制文件的绝对路径,加上需要进行的操作即可。
那么,为了使这个服务使用起来更加方便些,可以进行执行路径优化,过程如下:
为相关程序添加符号链接:
这样,再执行相关命令时,就不用输入很长的路径了,如若想要启动服务,直接执行/usr/local/bin/apachectl start即可,但这样依旧没有控制系统服务那么方便,那么,还可以继续操作,添加httpd系统服务,有以下两种方法:
方法1
复制apachectl文件到/etc/init.d/httpd,然后编辑该文件,:
按照下面进行修改,然后保存退出:
添加系统服务:
至此,即可跟控制系统服务一样,使用systemctl start/status/restart httpd来控制apache服务了。
还有一种方法可以将它添加为系统服务,不过还要编辑配置文件,比较麻烦,可能可以对服务进一步的定义,个人觉得了解即可吧,没有什么特殊要求的话,采用上面的那种方法即可。
方法2:
建立httpd.service配置文件(注意配置文件的路径,其中配置文件中写入的apachectl路径,需根据实际情况来定)
配置文件中的各配置项的作用如下所示:
两种方法各有各的好处,方法2可以对服务进行详细的控制定义,并且还可以使用systemctl enable httpd.service
来设置httpd服务开机自动启动,这是方法1无法实现的。
当服务的控制进行优化后,即可对httpd服务进行基本配置:
1、编辑httpd服务的主配置文件httpd.conf 在末行模式下执行/ServerName,在附近添加一行内容:ServiceName www.aaa.com ,用于设置网站对应的域名。如下:
进入末行模式查找ServerName:
修改httpd.conf文件的配置内容后,可以使用命令apachectl -t或httpd -t对配置内容进行语法检测,如若没有错误,将会显示如下:
2、部署网页文档:
对于新编译安装的httpd服务,网站根目录位于/usr/local/httpd/htdocs
下,需要将web站点的网页文档复制或上传到此目录下。
3、查看web站点的访问情况
httpd服务器使用了两种类型的日志:访问日志和错误日志。这两种日志的文件名分别为acces_log和error_log,都在/usr/local/httpd/logs目录下。可以使用命令tail -f /usr/local/httpd/logs/access_log来动态查看网站访问情况。
4、最为主要的httpd.conf主配置文件 httpd.conf中的注释行以“#”开头,剩下的则是设置行。根据配置所作用的范围不同,设置行又可分为全局配置、区域配置。每条全局配置都是一项独立的配置,不需要包含在其他任务区域中,常用的一些全局配置项作用如下:
除了全局配置项以外,httpd.conf文件中的大多数配置时包括在区域内的。区域配置使用一对组合标记,限定了配置项的作用范围,如下: