一、 CentOS7.0安装Apache服务器httpd
Apache在Linux系统中,其实叫“httpd”,可以使用yum来安装。
1、查看httpd包是否可用:
# yum list | grep httpd
2、安装Apache
# yum install httpd
3、配置ServerName
# vi
/etc/httpd/conf/httpd.conf
如果没有域名,则:ServerName localhost:80
启动
# httpd
停止
# httpd -k stop
设置开机自动启动:
chkconfig httpd on
安装目录介绍
Apache默认将网站的根目录指向/var/www/html 目录
默认的主配置文件是/etc/httpd/conf/httpd.conf
配置存储在的/etc/httpd/conf.d/目录
二、centos7下源码编译方式安装httpd
参考文章
http://www.cnblogs.com/xhkj/p/6568379.html
http://www.cnblogs.com/jipeng87/p/6308725.html
http://www.centoscn.com/CentosServer/www/2015/0417/5204.html
前言
Apache至少需要apr、apr-util、pcre组件的支持。
APR(Apache portable Run-time libraries,Apache可移植运行库)的目的如其名称一样,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。在早期 的Apache版本中,应用程序本身必须能够处理各种具体操作系统平台的细节,并针对不同的平台调用不同的处理函数。随着Apache的进一步开 发,Apache组织决定将这些通用的函数独立出来并发展成为一个新的项目。这样,APR的开发就从Apache中独立出来,Apache仅仅是使用 APR而已。目前APR主要还是由Apache使用,不过由于APR的较好的移植性,因此一些需要进行移植的C程序也开始使用APR。
APR-util是在APR的基础上提供了更多的数据结构和操作系统封装接口。APR-util依赖于APR,必须先安装APR再安装APR-util。
PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括perl兼容的正则表达式库。
源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)。
1.查询安装httpd
rpm -qa|grep httpd
httpd-2.4.6-45.el7.centos.x86_64
httpd-tools-2.4.6-45.el7.centos.x86_64
2.卸载系统自动httpd
#停止httpd服务器
httpd -k stop
#卸载httpd服务器
yum remove httpd
3 检查系统是否安装了GCC
gcc
bash: gcc: 未找到命令...
#出现未找到命令提示,说明没有安装GCC
如果已经安装,会提示
gcc: 没有输入文件
则可以跳过,4,5两步
4 安装GCC和gcc-c++
yum -y install gcc gcc-c++
yum install automake autoconf libtool
注意:如果没有安装gcc-c++,那么在 执行./configure --prefix=/usr/local/pcre 时会报错误
configure: error: You need a C++ compiler for C++ support.
5 下载相关软件
httpd-2.4.25 apr-1.5.2 apr-util-1.5.4 pcre-8.40
wget https://mirrors.tuna.tsinghua.edu.cn/apache/httpd/httpd-2.4.25.tar.gz
wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-1.5.2.tar.gz
wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-util-1.5.4.tar.gz
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz
6 将下载的压缩文件拷贝到/usr/local目录下
cp apr-1.5.2.tar.gz /usr/local
cp apr-uril-1.5.4.tar.gz /usr/local
cp httpd-2.4.25.tar.gz /usr/local
cp pcre-8.40.tar.gz /usr/local/
7 编译安装apr-1.5.2
#解压缩apr文件
tar -zxvf apr-1.5.2.tar.gz
#改变目录到apr-1.5.2
cd apr-1.5.2
#指定apr的安装目录为/usr/local/apr 配置
./configure --prefix=/usr/local/apr
#编译安装
make && make install
安装Apr出现的问题 rm: cannot remove `libtoolT': No such file or directory
.configure配置参数:
S1:编辑 configure文件,查找 $RM "$cfgfile"这个地方,用#注释掉
S2:在configure里面 RM='$RM -f' 这里的$RM后面一定有一个空格。 如果后面没有空格,直接连接减号,就依
然会报错。把RM='$RM'改为RM='$RM -f'
8 编译安装 apr-uril-1.5.4
#解压缩apr-util文件
tar -zxvf apr-util-1.5.4.tar.gz
#改变目录到apr-util-1.5.4/
cd apr-util-1.5.4/
#指定apr-util的安装路径,指定apr-util所对应的apr
./configure --prefix=/usr/local/apr_util --with-apr=/usr/local/apr
#编译安装
make && make install
10 编译安装pcre
#卸载系统自带的pcre
rpm -qa pcre
#解压缩apr-util文件
tar -zxvf pcre-8.40.tar.gz
#改变目录到pcre-8.40/
cd pcre-8.40/
#指定prce的安装路径,指定apr-util所对应的apr
./configure --prefix=/usr/local/pcre
#编译安装(make是编译 make install是安装)
make && make install
11 编译安装apache
编译和安装apache分为动态、静态两种方式。动态编译是指在以后的使用中随时调整配置文件就可以加载模块;静态则相反,在编译时就决定了相应的模块。
#解压缩httpd-2.4.25文件
tar -zxvf httpd-2.4.25.tar.gz
#改变目录到httpd-2.4.25/
cd httpd-2.4.25/
#配置
./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr_util --with-pcre=/usr/local/pcre --enable-mods-shared=all --enable-deflate --enable-speling --enable-cache --enable-file-cache--enable-disk-cache --enable-mem-cache --enable-so --enable-expires=shared --enable-rewrite=shared --enable-static-support --disable-userdir
#编译安装
make && make install
12配置apache防火墙
#永久开放http服务
firewall-cmd --permanent --add-service=http
#重新加载防火墙
firewall-cmd --reload
12 启动,停止apache服务
#编辑httpd.conf文件
vi /etc/httpd/httpd.conf
在#ServerName www.example.com:80 下增加下面的语句
ServerName localhost:80
找到更改配置
#AllowOverride none
#Require all denied
Options FollowSymLinks
AllowOverride None
Order deny,allow
allow from all
#使用脚本控制Apache,启动服务
/usr/local/apache2/bin/apachectl start
#使用脚本控制Apache,停止服务
/usr/local/apache2/bin/apachectl stop
#服务启动后,在浏览器输入http://localhost浏览器内容显示出it works,该内容存在于/usr/local/apache2/htdocs/index.html文件中
13 设置apache开机启动
方法一
1、将apachectl命令拷贝到/etc/init.d目录下,改名为httpd
cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd
2、编辑/etc/init.d/httpd文件,在第1行#!/bin/sh的后面添加如下两行
# vi /etc/init.d/httpd
# chkconfig: 2345 70 30 //注意:前面的#号是要保留的
# description: Apache //注意:前面的#号是要保留的
其中,所增加的第二行中三个数字,第一个表示在运行级别2345下启动Apache,第二、三是关于启动和停止的优先级配置。
3、Apache服务尚未被添加到chkconfig列表中,需要使用–add参数将其添加进去
chkconfig --add httpd
chkconfig --list httpd
通过上面的设置,每次开机时apache服务都是自动启动的
注意:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。
如果您想列出 systemd 服务,请执行 'systemctl list-unit-files'。
欲查看对特定 target 启用的服务请执行
'systemctl list-dependencies [target]'。
httpd 0:关 1:关 2:开 3:开 4:开 5:开 6:关
注:chkconfg是检查,设置系统的各种服务。
chkconfg语法如下:
chkconfig --list [name]
chkconfig --add name
chkconfig --del name
chkconfig [--level levels] name
chkconfig [--level levels] name
方法二: 将服务加到/etc/rc.d/rc.local中 vi /etc/rc.d/rc.local 添加以下内容
/usr/local/apache/bin/apachectl start
14 去除开机启动
[root@localhost ~]# chkconfig --del httpd
[root@localhost init.d]# rm -f httpd
vi /etc/rc.d/rc.local 删除以下内容
/usr/local/apache/bin/apachectl start