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

因目前nginx已经成了主流反向代理软件,因此在linux服务器系统上,咱们几乎都会安装nginx这个东东,这就给同时使用apache带来了麻烦,由于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这一行,修改成
python

Listen 8000

继续修改httpd.conf文件,找到
linux

#ServerName www.example.com:80
在下面增长一行
ServerName localhost:8000

修改保存httpd.conf后,执行
nginx

# service httpd restart
糟糕!会出现不少错误提示,主要是
Permission denied: make_sock: could not bind to address [::]:8000

2.须要尝试执行semanage增长8000端口,执行
shell

# semanage port -l|grep http

若是没有semanage命令,能够先安装semanage及selinux
apache

# yum provides /usr/sbin/semanage
或者
# yum whatprovides /usr/sbin/semanage
查看一下,而后执行安装命令:
yum -y install policycoreutils-python

安装完后从新执行
centos

#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端口,因而执行
tcp

# 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端口未打开,就增长这个防火墙规则便可。

ide

相关文章
相关标签/搜索