修改APACHE端口后启动出错,原来是SELINUX安全问题。

 更改/etc/httpd/conf/httpd.conf端口号80为81后

[root@localhost tool]# service httpd restart

停止 httpd:[确定]

正在启动 httpd:(13)Permission denied: make_sock: could not bind to address [::]:81  //许可被拒绝,不能绑定这个端口

(13)Permission denied: make_sock: could not bind to address 0.0.0.0:81

no listening sockets available, shutting down

Unable to open logs

[失败]

[root@localhost tool]# 

将端口更改为80可以正常启动。于是考虑到安全方面的权限问题,首先看SELINUX

[root@localhost tool]# getenforce 

Enforcing   //已开启

[root@localhost tool]# setenforce 0   //暂时关掉它

[root@localhost tool]# getenforce 

Permissive

root@localhost tool]# service httpd start

正在启动 httpd:[确定]   //可以正常启动。于是确定是SELINUX的安全问题。但这种关闭的方法实在不是安全的选择。那就要考虑如何设置它的权限。

[root@localhost tool]# 

思路:

首先查找make_sock相关的文件,查看是否这个文件的SE安全问题。但并没有找到这个文件。于是上网求助。搜索Permission denied: make_sock: could not bind to address关键字。结果查到以下信息:

semanage port -l|grep http 
semanage port -a -t http_port_t -p tcp 81  

可我的本机并没有semanage这个命令。于是又有个新的问题。

考虑是否没有安装yum install semagage  没有找到此包。

于是上网求助:semanage安装

# yum provides /usr/sbin/semanage  

or  

#yum whatprovides /usr/sbin/semanage   //我用的这种方法。

  

#yum -y install policycoreutils-python  

#semanage

root@localhost src]# semanage  port -l | grep http  //查看现在支持的httpd端口。发现并没有80

http_cache_port_t              tcp      3128, 8080, 8118, 8123, 10001-10010

http_cache_port_t              udp      3130

http_port_t                    tcp      80, 443, 488, 8008, 8009, 8443

pegasus_http_port_t            tcp      5988

pegasus_https_port_t           tcp      5989

[root@localhost src]# semanage port -a -t http_port_t -p tcp 81  //添加81端口

[root@localhost tool]# service httpd start

正在启动 httpd:

[root@localhost tool]# netstat -tunlp | grep 81  //此时已成功启动

tcp        0      0 :::81                       :::*                        LISTEN      13737/httpd         

问题解决。 

你可能感兴趣的:(apache)