Apache做为一款开源软件,是普遍应用的web应用之一,Apache有两个主要版本1.X和2.X,通常咱们使用2.X版本,比起1.X版本它支持不少新的功能,下载Apache源码包的地址为:https://httpd.apache.org ,下载到源码包后开始准备安装:html
一、为避免发生端口冲突,程序冲突等问题,若是有rpm方式安装的httpd服务,建议将其卸载。web
二、挂载系统镜像,切换至系统盘中的Packages目录,安装相关依赖包(注意,最好一个一个的依次安装,由于若是有些安装包已经安装了,一次安装下面的安装包的话,就会报错)apache
[root@localhost Packages]# rpm -ivh apr-1.4.8-3.el7_4.1.x86_64.rpm [root@localhost Packages]# rpm -ivh apr-devel-1.4.8-3.el7_4.1.x86_64.rpm [root@localhost Packages]# rpm -ivh cyrus-sasl-devel-2.1.26-23.el7.x86_64.rpm [root@localhost Packages]# rpm -ivh expat-devel-2.1.0-10.el7_3.x86_64.rpm [root@localhost Packages]# rpm -ivh libdb-devel-5.3.21-24.el7.x86_64.rpm [root@localhost Packages]# rpm -ivh openldap-devel-2.4.44-13.el7.x86_64.rpm [root@localhost Packages]# rpm -ivh apr-util-devel-1.5.2-6.el7.x86_64.rpm [root@localhost Packages]# rpm -ivh pcre-devel-8.32-17.el7.x86_64.rpm [root@localhost Packages]# rpm -ivh pcre-8.32-17.el7.x86_64.rpm [root@localhost Packages]# rpm -ivh apr-util-1.5.2-6.el7.x86_64.rpm
三、将httpd源码包进行解包,并指定释放目录,而后切换到展开后的源码目录中:vim
[root@localhost media]# tar zxf httpd-2.4.25.tar.gz -C /usr/src [root@localhost media]# cd /usr/src/httpd-2.4.25/
四、配置及编译安装:服务器
[root@localhost httpd-2.4.25]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi && make && make install
上面配置命令中,各个选项的含义以下:ide
--prefix:指定将httpd服务安装到哪一个目录下。工具
--enable-so:启用动态加载模块支持,让httpd具有进一步扩展功能的能力。优化
--enable-rewrite:启用网页地址重写功能,用于网站优化和目录迁移维护。网站
--enable-charset-lite:启用字符集支持,以便支持使用各类字符集编码的网页。ui
--enable-cgi:启用CGI脚本程序支持,便于扩展网站的应用访问能力。
若在上面配置、编译、安装过程当中报错,排除命令错误的前提下,那么通常是少了依赖包,检查依赖包有没有少装吧!
六、安装完成后,切换至安装成功的目录后,会看到如下几个目录:
[root@localhost httpd-2.4.25]# cd /usr/local/httpd/ [root@localhost httpd]# ls bin cgi-bin error icons logs manual build conf htdocs include man modules
各个主要子目录的用途以下:
七、优化执行路径(根据实际状况来定,能够不进行优化):
经过源码安装的httpd服务属于第三方服务,因此程序路径并不在默认的搜索路径中,若是如今要启动Apache的话,须要执行命令:/usr/local/httpd/bin/apachectl start,也就是安装完成后bin目录下的程序控制文件的绝对路径,加上须要进行的操做便可。
那么,为了使这个服务使用起来更加方便些,能够进行执行路径优化,过程以下:
为相关程序添加符号连接:
[root@localhost httpd]# ln -s /usr/local/httpd/bin/* /usr/local/bin/
这样,再执行相关命令时,就不用输入很长的路径了,如若想要启动服务,直接执行/usr/local/bin/apachectl start便可,但这样依旧没有控制系统服务那么方便,那么,还能够继续操做,添加httpd系统服务,有如下两种方法:
方法1
复制apachectl文件到/etc/init.d/httpd,而后编辑该文件,:
[root@localhost httpd]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd [root@localhost httpd]# vim /etc/init.d/httpd
按照下面进行修改,而后保存退出:
添加系统服务:
[root@localhost httpd]# chkconfig --add httpd
至此,便可跟控制系统服务同样,使用systemctl start/status/restart httpd来控制apache服务了。
还有一种方法能够将它添加为系统服务,不过还要编辑配置文件,比较麻烦,可能能够对服务进一步的定义,我的以为了解便可吧,没有什么特殊要求的话,采用上面的那种方法便可。
方法2:
创建httpd.service配置文件(注意配置文件的路径,其中配置文件中写入的apachectl路径,需根据实际状况来定)
配置文件中的各配置项的做用以下所示:
两种方法各有各的好处,方法2能够对服务进行详细的控制定义,而且还可使用systemctl enable httpd.service
来设置httpd服务开机自动启动,这是方法1没法实现的。
当服务的控制进行优化后,便可对httpd服务进行基本配置:
一、编辑httpd服务的主配置文件httpd.conf
在末行模式下执行/ServerName,在附近添加一行内容:ServiceName www.aaa.com ,用于设置网站对应的域名。以下:
进入末行模式查找ServerName:
修改httpd.conf文件的配置内容后,可使用命令apachectl -t或httpd -t对配置内容进行语法检测,如若没有错误,将会显示以下:
二、部署网页文档:
对于新编译安装的httpd服务,网站根目录位于/usr/local/httpd/htdocs
下,须要将web站点的网页文档复制或上传到此目录下。
三、查看web站点的访问状况
httpd服务器使用了两种类型的日志:访问日志和错误日志。这两种日志的文件名分别为acces_log和error_log,都在/usr/local/httpd/logs目录下。可使用命令tail -f /usr/local/httpd/logs/access_log来动态查看网站访问状况。
四、最为主要的httpd.conf主配置文件
httpd.conf中的注释行以“#”开头,剩下的则是设置行。根据配置所做用的范围不一样,设置行又可分为全局配置、区域配置。每条全局配置都是一项独立的配置,不须要包含在其余任务区域中,经常使用的一些全局配置项做用以下:
除了全局配置项之外,httpd.conf文件中的大多数配置时包括在区域内的。区域配置使用一对组合标记,限定了配置项的做用范围,以下: