使用环境Centos7.5,安装最新的apache
rpm包安装方式
1.apache安装
1.1 查看是否有httpd进程正在运行(下图是有的情况)
ps -ef|grep httpd
1.2 查看是否安装
rpm -qa|grep httpd
1.3 使用rpm方式会自动添加到systemctl的启动命令,可以直接使用systemctl start httpd
1.4 开启开机自启
systemctl enable httpd.service(取消:disable)
1.5 启动httpd以及查看httpd启动情况
启动:systemctl start httpd
查看:systemctl status httpd
其他相关命令
(1) 启动、终止、重启
systemctl start httpd.service #启动(等价于service httpd start 等价于systemctl start httpd)
systemctl stop httpd.service #停止
systemctl restart httpd.service #重启
(2)设置开机启动/关闭
systemctl enable httpd.service #开机启动
systemctl disable httpd.service #开机不启动
systemctl list-unit-files | grep httpd # 检查Apache是否已经安装了开机自动启动
显示htttpd.service enable即已成功设置:
(3)检查httpd状态
systemctl status httpd.service #检查状态
1.6遇到问题:
8月 02 16:12:49 redmine.juchaosoft.com httpd[21176]: (13)Permission denied: AH00072: make_sock: could not bind to address [::]:8800
8月 02 16:12:49 redmine.juchaosoft.com httpd[21176]: (13)Permission denied: AH00072: make_sock: could not bind to address 0.0.0.0:8800
在确定8800端口已经启动的情况下,任然无法启动httpd。
解决方法,执行以下命令:
(1)semanage port -l | grep http
(2)semanage port -a -t http_port_t -p tcp 8800
(3)再次执行semanage port -l|grep http
发现已经把8800添加上去了,此时再启动httpd即可。
原因解释:
先了解什么是selinux:https://blog.csdn.net/yanjun821126/article/details/80828908
然后我们知道:上边命令中的semanage有三个作用
1.semanage是一个软件中的一部分,
2.可在linux中用命令行的方式使用
3.它可以管理SELinux
而且SELinux的默认设置
默认情况下,最小化安装的CentOS,SELinux是开启的
SELinux默认情况下,只允许非root权限用户,使用几个固定端口,(包括http端口和其他协议的端口)
所以,第一条命令是查看可以非root使用的端口,第二条命令是添加非root可以使用的端口