Linux系统下Apache2.4.17的安装过程
Linux系统下安装Apache Server2.4.17。还是先声明一下,Linux命令我不进行讲解,因为我不是讲Linux命令的。有需要注意的地方,我会上图,没什么值得的注意的地方,我就不上图了。还有就是怎样将压缩包上传到Linux系统中去,我不进行讲解,还是那句话:网上教程太多了!最后,确保你的Linux是连网的!
工具/原料
- Linux系列系统
- Apache Server2.4.17源码包
- APR源码包
- APR-Util源码包
- PCRE源码包
方法/步骤
- 1
首先,秉承我一贯的风格,来看一小段官方文档:
The following requirements exist for building Apache httpd:
APR and APR-Util
Make sure you have APR and APR-Util already installed on your system.
Perl-Compatible Regular Expressions Library (PCRE)
This library is required but not longer bundled with httpd.
Disk Space
Make sure you have at least 50 MB of temporary free disk space available.
ANSI-C Compiler and Build System
Make sure you have an ANSI-C compiler installed. The GNU C compiler (GCC) from the Free Software Foundation (FSF) is recommended.
Accurate time keeping
Elements of the HTTP protocol are expressed as the time of day. So, it's time to investigate setting some time synchronization facility on your system. Usually the ntpdate or xntpd programs are used for this purpose which are based on the Network Time Protocol (NTP).
我来翻译一下:
要编译Apache httpd,存在以下要求:
APR and APR-Util
确保你的系统中已经安装了APR和APR-Util。
Perl-Compatible Regular Expressions Library (PCRE)
这个库是必需的,但它不再与httpd捆绑在一起。
Disk Space
确保你有至少50MB的临时空闲磁盘空间可以使用。
ANSI-C Compiler and Build System
确保你已经安装了一个ANSI-C编译器。推荐使用由自由软件基金会(FSF)编写的GNU C编译器(GCC)。
Accurate time keeping
HTTP协议的元素会以一天的时间进行表示。所以,它的时间会参照你系统中的一些时钟同步设备的设置。通常基于网络时间协议(NTP)的程序ntpdate或xntpd就是用来做这样的事情。
通过官方文档我们了解到,在安装Apache2.4之前我们要做的是:安装APR、APR-Util和PCRE。
- 2
无论你是要安装APR、APR-Util、PCRE还是Apache Server或者是其他的一些软件,总之,只要是源码安装,那么就需要一个ANSI-C编译器。如果你没有,那就用yum装一个吧,既然推荐使用GCC,那就装个GCC吧。执行命令:yum install -y gcc。如果,你闲得发慌,你可以不依赖yum,自己进行安装GCC试试,相信你会爽歪歪的!
- 3
接下来,就是要安装APR、APR-Util和PCRE。安装之前,来看下怎么下载它们。先来看下APR与APR-Util的下载,大家可以去http://apr.apache.org进行下载,看下面两张图:
再来看下怎么下载PCRE。大家可以去http://www.pcre.org进行下载,看下面四张图:
将下载的3个压缩包上传到你的Linux系统中去。我上传到了我Linux系统下/mysoft目录中。进入这个目录:cd /mysoft。我们先解包APR,并查看/mysoft目录下的文件,依次执行命令:
gzip -d apr-1.5.2.tar.gz
tar -xf apr-1.5.2.tar
ls -l
可以看到/mysoft目录下多了一个目录apr-1.5.2。
进入apr-1.5.2目录:cd ./apr-1.5.2/。然后,进行APR的源码安装,依次执行命令:
./configure
make
make install
安装完成后,我们可以在make install过程中看到如下图所示信息,我们可以看到APR的安装路径/usr/local/apr。当然,你也可以使用 --prefix=目录 选项来指定一个安装目录。
接着,我们来解包APR-Util,并查看/mysoft目录下的文件,依次执行命令:
gzip -d apr-util-1.5.4.tar.gz
tar -xf apr-util-1.5.4.tar
ls -l
可以看到/mysoft目录下多了一个目录apr-util-1.5.4。
进入apr-util-1.5.4目录:cd ./apr-util-1.5.4/。然后,进行APR-Util的源码安装,依次执行命令:
./configure --with-apr=/usr/local/apr
make
make install
在安装APR-Util时,需要指定APR的安装路径,所以需要带上选项--with-apr=/usr/local/apr,如果你不带上这个选项,在configure的时候会看到下图的错误提示。
下面,我们来安装PCRE。首先,解包PCRE,并查看/mysoft目录下的文件,依次执行命令:
gzip -d pcre-8.36.tar.gz
tar -xf pcre-8.36.tar
ls -l
可以看到/mysoft目录下多了一个目录pcre-8.36。
进入pcre-8.36目录:cd ./pcre-8.36/。然后,进行pcre-8.36源码安装,但是,当你在执行./configure时,会看到下图所示提示:
configure: error: You need a C++ compiler for C++ support
不用担心,yum又派上用场了,执行命令:yum install -y gcc gcc-c++ 。
gcc-c++安装完成后,我们继续我们的pcre-8.36源码安装,依次执行命令:
./configure
make
make install
至此,准备工作就绪,开始准备安装Apache Server2.4,首先,来看下怎么下载Apache2.4,我们可以去http://httpd.apache.org进行下载,看下图。
安装Apache之前,我们再来看一小段官方文档:
--enable-mods-shared=MODULE-LIST
Defines a list of modules to be enabled and build as dynamic shared modules. This mean, these module have to be loaded dynamically by using the LoadModule directive.MODULE-LIST is a space separated list of modulenames enclosed by quotation marks. The module names are given without the preceding mod_. For example:
--enable-mods-shared='headers rewrite dav'
Additionally you can use the special keywords reallyall, all, most, few and none. For example,
--enable-mods-shared=most will compile most modules and build them as DSO modules
--enable-mods-shared=few will only compile a very basic set of modules
The default set is most.
The LoadModule directives for the chosen modules will be automatically generated in the main configuration file. By default, all those directives will be commented out except for the modules that are either required or explicitly selected by a configure --enable-foo argument. You can change the set of loaded modules by activating or deactivating the LoadModule directives in httpd.conf. In addition the LoadModule directives for all built modules can be activated via the configure option --enable-load-all-modules.
--enable-mods-static=MODULE-LIST
This option behaves similar to --enable-mods-shared, but will link the given modules statically. This mean, these modules will always be present while running httpd. They need not be loaded with LoadModule.
--enable-modules=MODULE-LIST
This option behaves like to --enable-mods-shared, and will also link the given modules dynamically. The special keyword none disables the build of all modules.
我来翻译一下:
--enable-mods-shared=MODULE-LIST
定义一个要启用的模块列表,并且这些模块会以动态共享模块进行编译。这就意味着,这些模块需要通过使用LoadModule指令进行动态加载。MODULE-LIST是一个由引号引起来且由空格进行分隔的模块名列表。这些模块名要以去掉前面的mod_的形式给出。例如:
--enable-mods-shared='headers rewrite dav'
你还可以使用特殊关键字reallyall,all,most,few和none。例如:
--enable-mods-shared=most 编译大部分模块并将它们作为动态共享模块进行编译
--enable-mods-shared=few 只编译一组比较基本的模块
默认关键字是most。
对于已选择的模块来说,LoadModule指令会自动在主要配置文件中生成。默认情况下,所有这些指令会被注释掉,除了一些必需的或是通过一个--enable-foo参数明确指定的模块。你可以在httpd.conf文件中通过激活或注销LoadModule指令来改变已加载模块的设置。另外,可以通过配置选项--enable-load-all-modules来将所有已编译模块的LoadModule指令激活。
--enable-mods-static=MODULE-LIST
这个配置选项的行为与--enable-mods-shared类似,但会静态链接给出的模块。这就意味着,在运行httpd的时候,这些模块总是存在。它们不需要用LoadModule指令进行加载。
--enable-modules=MODULE-LIST
这个配置选项的行为与--enable-mods-shared类似,也会动态链接给出的模块。可以使用特殊关键字none来禁用所有要编译的模块。
更多的内容大家可以自己去官网看,这里我就不再多讲了。进入正题,解包httpd,并查看/mysoft目录下的文件,依次执行命令:
gzip -d httpd-2.4.17.tar.gz
tar -xf httpd-2.4.17.tar
ls -l
可以看到/mysoft目录下多了一个目录httpd-2.4.17。
- 14
进入httpd-2.4.17目录:cd ./httpd-2.4.17/。然后,进行Apache源码安装,依次执行命令:
./configure --enable-mods-shared=all
make
make install
Apache默认安装在/usr/local/apache2目录下。同样,这里你也可以使用
--prefix=目录名
来指定一个安装目录,例如:
./configure --prefix=/usr/mydir --enable-mods-shared=all
- 15
Apache已经安装成功,现在启动httpd服务。执行命令:
/usr/local/apache2/bin/apachectl -k start。
大家会发现,httpd服务并没有启动,而是出现了一条如下图所示的错误信息:
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
- 16
出现上述错误信息,是因为配置文件httpd.conf中的ServerName没有修改。
我们用Vim打开httpd.conf配置文件,执行命令:
vi /usr/local/apache2/conf/httpd.conf
设置Vim在执行搜索时不区分大小写,执行命令:
:set ic
搜索"servername"字符串,执行命令:
/servername
找到servername后,按A键进行编辑。将ServerName前的#号去掉,将ServerName后面的字符串改为:localhost:80,如下图所示。
修改完成后,按Esc键由编辑模式切换到命令模式,然后执行保存退出命令:
:wq
- 17
在启动httpd之前,我们先为其创建一个软链接(相当于windows下的快捷方式),否则每次重启Apache都要输那么一长串,很费劲。
为httpd创建软链接,并查看一下软链接是否创建成功,依次执行命令:
ln -s /usr/local/apache2/bin/apachectl /mylinks/httpd。
ls -l /mylinks
来吧,启动httpd服务,执行命令:/mylinks/httpd -k start
- 18
在测试Apache是否已经正常工作之前,我们先看下防火墙的状态:
systemctl status firewalld
如果处于running运行状态,就把它关掉:
systemctl stop firewalld
然后,查看一下防火墙是否已经关掉:
systemctl status firewalld
如果处于dead状态,就说明已经关掉了。
如果你希望每次系统启动的时候都不要启动防火墙,可以执行命令:
systemctl disable firewalld
同样,如果你希望每次系统启动的时候都启动防火墙,可以执行命令:
systemctl enable firewalld
- 19
防火墙关闭后,接着来看下你系统的IP地址:ifconfig -a。可以看到我的IP是192.168.0.104。
- 20
打开浏览器,在地址栏中输入:192.168.0.104,回车。可以看到It works!
Linux系统下Apache2.4.17的安装过程的更多相关文章
- Linux 系统下用源码包安装软件
Linux系统下用源码包安装软件 by:授客 QQ:1033553122 下载源码安装包,解压或者直接双击打开(如果有安装zip或rar等压缩/解压缩软件的话),查找相关的安装说明文件,一般是READ ...
- Linux 系统下原版 texlive 2016 的安装与配置
尽管大部分常见的linux系统的包管理器内都会包含texlive,然而最好还是安装TUG发布的原版texlive.这是由于:1,软件仓库内的texlive通常版本较陈旧:2,由于版权因素一些tex宏包 ...
- Linux系统下rz/sz工具的安装
(1)编译安装 root 账号登陆后,依次执行以下命令: wget http://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz tar zxvf lrzs ...
- Linux系统下C语言程序的构建过程
本文转载自:http://www.ruanyifeng.com/blog/2014/11/compiler.html 源码要运行,必须先转成二进制的机器码.这是编译器的任务. 比如,下面这段源码(假定 ...
- linux系统下使用apt-get install 方法安装lamp环境
1.更新源,获得最近的软件包的列表,列表中包含一些包的信息,比如这个包是否更新过. sudo apt-get update 2.更新系统中已安装的软件包 sudo apt-get upgrade 3. ...
- Day 1 linux系统的发展史与虚拟机的安装过程
自由软件之父 Richard M. Stallman 1984 发起了GNU组织 copyleft opensourc free GPL copyleft 代表无版权.copyright 代表有版权. ...
- Linux系统环境下MySQL数据库源代码的安装
Linux系统环境下MySQL数据库源代码的安装 基本环境:CentOS Linux release 7.8.2003 (Core).MySQL5.6 一. 安装环境准备 若要在Linux系 ...
- Linux系统下修改环境变量PATH路径的三种方法
这里介绍Linux的知识,比如把/etc/apache/bin目录添加到PATH中有三种方法,看完之后你将学会Linux系统下如何修改环境变量PATH路径,需要的朋友可以参考下 电脑中必不可少的就是操 ...
- Linux系统下Redis安装(一)
最近项目要使用Redis,特将这段时间将Redis的学习经验与大家分享,算是对这段时间学习成果的总结和技术提炼,不足之处还望大家批评指正. 项目背景: 有些很少改动的数据和经常使用的数据(例如系统中下 ...
随机推荐
- js展开一颗树
Tree View 指令不支持 树结构数据源, 只支持单层数组.(也许是我没发现,人家可以设置) .我只能把树展开,变成单层数组.然后还要记录已经递归到第一层了.比如这样. <!doctype ...
- Python开发【第七章】:Python异常处理
一.异常处理 1.异常基础 在编程过程中为了增加友好性,在程序出现bug时一般不会将错误信息显示给用户,而是现实一个提示的页面,通俗来说就是不让用户看见大黄页!!! #异常处理 list = [&qu ...
- ionic cordova 热更新
因为项目需要,使用cordova的热更新插件,本地调试很简单,看连接https://github.com/nordnet/cordova-hot-code-push,就几步,这里不说了. 下面两个要装 ...
- ionic实现手机检测app是否安装,未安装则下载安装包,已安装则打开app(未实现iOS平台)
插件需求(上cordova官网下载): com.lampa.startapp cordova-plugin-appavailability cordova-plugin-inappbrowser 代码 ...
- 【转】HTTP 头部解释,HTTP 头部详细分析,最全HTTP头部信息
HTTP 头部解释 ========================================================================================== ...
- HTTP协议上传boundary确定&下载content-disposition理解
HTTP协议上传文件-协议 上传文件需要将form标签 的 ENCTYPE 属性设置为 multipart/form-data属性, 与 application/x-www-form-urlencod ...
- .Net分布式架构(一):Nginx实现负载均衡
一:负载均衡简介 负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器.FTP服务器.企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务. ...
- 字符编码 and cpp
预备知识 字符:抽象的最小文本单位.仅代表符合没有实际意义(如:¥, a, 国) 字符集:字符的集合(如gb2312, ASCII, UNICODE) 编码:是对字符集的描述,计算机要准确的处理各种字 ...
- MVC异常日志生产者消费者模式记录(异常过滤器)
生产者消费者模式 定义自己的异常过滤器并注册 namespace Eco.Web.App.Models { public class MyExceptionAttribute : HandleErro ...
- Hadoop之hive的drop table恢复
一.引言: 快下班的时候我开发同事问能不能将hive中drop掉的数据恢复过来,我记得是有开回收站的,当时我回答说可以恢复的. 二.恢复过程: 在之前我有对hadoop的回收站有过了解,就是将hdfs ...