如何更改linux(centos)下的Apache http埠號
# vi /etc/httpd/conf/httpd.conf 檔案
修改兩個地方
#Listen 12.34.56.78:80
Listen 80
#把80改為你設定的埠,我設定埠為82
Listen 82
NameVirtualHost *:80
#把80改為你設定的埠,我設定埠為82
NameVirtualHost *:82
啟動Apache
# service httpd start 發現啟動失敗
解決:(轉自)http://blog.itechol.com/space-33-do-blog-id-5114.html
Google 一下,發現原來是 SELinux 安全機制的作用。
(很難搞,如果很多牽扯的許可權的事情找不到原因,就可以分析是否是它的作用)
解決方法如下:
檢視selinux狀態:
[[email protected] httpd]# sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: enforcing
Mode from config file: enforcing
Policy version: 21
Policy from config file: targeted
或者用
[[email protected] httpd]# getenforce
Enforcing
關閉selinux狀態:(使用無啟重啟系統的方法)
詳見:http://blog.itechol.com/space-33-do-blog-id-5088.html
[[email protected] httpd]# setenforce 0 關閉命令
[[email protected] httpd]# getenforce 重新檢視selinux狀態
Permissive
嘗試再次啟動apache
[[email protected] httpd]# service httpd start
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[ OK ] 成功!!
附: selinux 管理命令semanage詳解
semanage使用詳解
NAME
semanage - SELinux Policy Management tool SYNOPSIS Output local customizations:匯出selinux當前策略 Input local customizations:匯入selinux策略 Manage booleans. Booleans allow the administrator to modify the confinement of processes based on his configuration.:管理一些程序、服務的開關、配置等等,全是開關兩個狀態 Manage SELinux confined users (Roles and levels for an SELinux user) semanage user [-S store] -{a|d|m|l|n|D} [-LrRP] selinux_name Manage login mappings between linux users and SELinux confined users:將linux已存在的使用者user對映到登陸保護 semanage login [-S store] -{a|d|m|l|n|D} [-sr] login_name | %groupname -a:新增 -d:刪除 -m:修改 -l:列舉 -n:不列印說明頭 -D:全部刪除 例子:semanage login -a -s unconfined_u leowang Manage network port type definitions:管理網路埠 -t:型別 -r:角色 例子:semanage port -a -t http_port_t -p tcp 81 Manage network interface type definitions Manage network node type definitions Manage file context mapping definitions:管理檔案安全上下文的對映 -f:檔案 -s:使用者 -t:型別 r:角色 Manage processes type enforcement mode Disable/Enable dontaudit rules in policy Execute multiple commands within a single transaction. |
檢視一下預定義
#semanage port -l
http_cache_port_t tcp 3128, 8080, 8118, 11211, 10001-10010
http_cache_port_t udp 3130, 11211
http_port_t tcp 80, 443, 488, 8008, 8009, 8443
soundd_port_t tcp 8000, 9433, 16001
原來8000 已經被預定義佔用了,所有不能使用8000埠。
# semanage port -a -t http_port_t -p tcp 81
為Http 服務增加一個埠 81 ,同時將httpd 的埠改成 81 ,啟動成功
Centos selinux