1、首先安装一系列依赖
yum -y install gcc gcc++ zlib-devel zlib #如果报错可以试试一个一个的安装
2、下载相应的源码包(相应的源码包,我已经下载到root目录下)
1)apr-1.5.2.tar.gz
2)apr-util-1.5.4.tar.gz
3)pcre-8.39.tar.gz
4)httpd-2.4.29.tar.gz
最好需要按照相应的顺序安装,否则可能会出错,因为他们之间可能存在依赖关系
3、安装apr
1)首先进入相应的目录(root目录)
cd ~
2)解压相应的文件apr-1.5.2.tar.gz
tar -zxvf apr-1.5.2.tar.gz
3)进入解压目录
cd apr-1.5.2
4)测试存在的特性,设置安装路径(--prefix=***),我这里设置的安装路径为/usr/local/apr/
./configure --prefix=/usr/local/apr/
5)编译并安装
make && make install
4、安装apr-util,我设置的路径还是/usr/local/apr-util/
步骤同3,不过第4)设置安装路径时命令为(需要依赖apr):
./configure --prefix=/usr/local/apr-util/ --with-apr=/usr/local/apr/
5、安装pcre,我设置的路径还是/usr/local/pcre
同3,不过在步骤4)测试存在特性时,最下面报了一个错误:
这个时候需要再安装c++编译环境,命令:
yum -y install gcc-c++
然后再重新进行步骤4)
6、安装apche2.4
1)首先进入相应的目录(root目录)
cd ~
2)解压相应的文件httpd-2.4.29.tar.gz
tar -zxvf httpd-2.4.29.tar.gz
3)进入解压目录
cd httpd-2.4.29
4)测试存在的特性,设置安装路径(--prefix=***),这里我的目录安装如下:
./configure --prefix=/usr/local/server/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre
5)编译并安装
make && make install
注意:目录没有建可能会引起安装错误,可以先建目录,我是把目录先建好了的
7、启动apahe
1)启动停止命令
cd /usr/local/apache2/bin/
./apachectl start #开启:start 停止:stop 重启:restart
或者:
apahce启动命令:/usr/local/server/apache2/bin/apachectl start
apahce停止命令:/usr/local/server/apache2/bin/apachectl stop
apahce重启命令:/usr/local/server/apache2/bin/apachectl restart
2)启动报错解决
首次启动报错:AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1
解决办法:
进入目录:
cd /usr/local/server/apache2/conf/
修改文件:
vim httpd.conf
修改内容:
找到 #ServerName www.example.com:80 这一行,在下面添加一行代码:
ServerName localhost:80
就好了。
8、开机自启
1)添加Apache自启动
cp /usr/local/server/apache2/bin/apachectl /etc/rc.d/init.d/httpd
vim /etc/rc.d/init.d/httpd #编辑httpd文件
在#!/bin/sh下面添加以下两句后保存
#chkconfig: 345 70 70
#description: apache
chkconfig: 2345 70 60中的2345是指脚本的运行级别,即在2345这4种模式下都可以运行,234都是文本界面,
5是图形界面X,70是指脚本将来的启动顺序号,如果别的程序的启动顺序号比70小(比如44、45),则脚本需要等这些程序都启动以后才启动。60是指系统关闭时,脚本的停止顺序号
2)把Apache添加到系统服务并自启
chkconfig --add httpd #加入系统服务
chkconfig httpd on #开机自启
这样就可以使用systemctl start|stop|restart httpd 启动|关|重启Apache服务了
9、防火墙问题
1)CentOS 7.0默认使用的是firewall作为防火墙,使用办法如下,apche默认端口是80
>>> 关闭防火墙
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
>>> 开启端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
命令含义:
--zone #作用域
--add-port=80/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效
>>> 重启防火墙
firewall-cmd --reload
>>>常用命令介绍:
firewall-cmd --state ##查看防火墙状态,是否是running
firewall-cmd --reload ##重新载入配置,比如添加规则之后,需要执行此命令
firewall-cmd --get-zones ##列出支持的zone
firewall-cmd --get-services ##列出支持的服务,在列表中的服务是放行的
firewall-cmd --query-service ftp ##查看ftp服务是否支持,返回yes或者no
firewall-cmd --add-service=ftp ##临时开放ftp服务
firewall-cmd --add-service=ftp --permanent ##永久开放ftp服务
firewall-cmd --remove-service=ftp --permanent ##永久移除ftp服务
firewall-cmd --add-port=80/tcp --permanent ##永久添加80端口
iptables -L -n ##查看规则,这个命令是和iptables的相同的
man firewall-cmd ##查看帮助
>>>查询端口号80 是否开启:
firewall-cmd --query-port=80/tcp
>>>永久开启80端口:
firewall-cmd --add-port=80/tcp --permanent ##永久添加80端口
2)如果要使用iptables,不使用firewall,可以查看这个链接
https://blog.csdn.net/qq_20565303/article/details/79754820
10、测试
直接访问ip,会出现成功