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

相關文章
相關標籤/搜索