centos6.5安装apache2.x与修改默认80端口

发布时间:2020-01-01编辑:脚本学堂
本文介绍了centos6.5安装apache2.x,并修改默认80端口的方法,需要的朋友参考下。

apache缺省使用的也是80端口,不想修改nginx的端口,于是只有修改apache的80端口。

1,首先,查找apache的httpd服务的配置文件httpd.conf,用rpm,yum等不同方式安装的apache的目录有所不同,
这里安装centos6.5时就已选择安装了apache2.2.15,配置文件位于/etc/httpd/conf/httpd.conf。

首先编辑这个文件
找到Listen 80这一行,修改为
Listen 8000 

继续修改httpd.conf文件,找到
#ServerName www.example.com:80 
在下面增加一行 
ServerName localhost:8000 

修改保存httpd.conf后,执行
# service httpd restart 
糟糕!会出现很多错误提示,主要是 
Permission denied: make_sock: could not bind to address [::]:8000 

2,需要尝试执行semanage增加8000端口,执行
 

# semanage port -l|grep http 
如果没有semanage命令,可以先安装semanage及selinux
# yum provides /usr/sbin/semanage 
或者 
# yum whatprovides /usr/sbin/semanage 

查看,然后执行安装命令: 
 

复制代码 代码示例:
yum -y install policycoreutils-python 

安装完后重新执行:
 

复制代码 代码示例:
#semanage port -l|grep http 
http_cache_port_t              tcp      3128, 8080, 8118, 8123, 10001-10010 
http_cache_port_t              udp      3130 
http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000 
pegasus_http_port_t            tcp      5988 
pegasus_https_port_t           tcp      5989 

但是在某些机器上执行上面的命令,可能会出现以下错误提示:
 

复制代码 代码示例:
# semanage port -l|grep http 
/usr/sbin/semanage: selinux policy is not managed or store cannot be accessed

显示策略有问题,一般来说重启系统可以解决这个问题。

如果能够正确执行,可以看到我的服务器列表中不包含8000端口,于是执行
 

复制代码 代码示例:
# semanage port -a -t http_port_t -p tcp 8000 
/usr/sbin/semanage: 端口 tcp/8000 已经存在 

却显示8000端口已存在,这时候仔细观察,发现http_port_t中包含9000端口,于是我将apache配置文件中的端口的两处配置改为了9000端口

3,再次重启httpd服务,提示apache启动成功了,如果需要,可以在nginx配置文件nginx.conf中代理apache的9000端口,这样就可以不用输入端口号直接访问你的apache服务了。
然而这里有个疑问,在我的机器上,9000端口已经存在于selinux中,apache最后使用了9000端口,会不会有神马冲突或隐患,哪位对selinux有深刻理解的专家能否给解释一下。

4,最后,如果iptables中的9000端口未打开,就增加这个防火墙规则即可。