如何更改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状态:
[root@cacti-test httpd]# sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: enforcing
Mode from config file: enforcing
Policy version: 21
Policy from config file: targeted
或者用
[root@cacti-test httpd]# getenforce
Enforcing
关闭selinux状态:(使用无启重启系统的方法)
详见:http://blog.itechol.com/space-33-do-blog-id-5088.html
[root@cacti-test httpd]# setenforce 0 关闭命令
[root@cacti-test httpd]# getenforce 重新查看selinux状态
Permissive
尝试再次启动apache
[root@cacti-test 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详解
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