apache启动报错原因和解决方案
一.现象
今天项目搭建测试环境时,启动apache报错,错误日志如下:
[wolf@ccbudev150133x bin]$ ./startws Start server copy ...... OK! Start JBoss configuration copy ...... OK! [color=red](13)Permission denied:[/color] make_sock: could not bind to address [::]:80 (13)Permission denied: make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down Unable to open logs /home/wolf/legal/intl-legal/deploy/bin/apachectl start: httpd could not be started HTTP Start in 19 seconds.
二、分析
从错误现象可以看出,apache启动监听80端口失败,原因是因为Permissiondenied,权限不够,httpd执行需要root权限,只需给apache启动脚本httpd授权即可。执行下面两条命令即可:
1. chmod u+s httpd 2. chown root httpd
三、我的弯路
出现这个问题后,我执行了第一条命令,重试,问题依旧。在我原来的理解中,+s操作是给当前用户赋予root执行权限,所以误以为该文件已经是root执行权限,进而从其他方面排查原因。兜圈了一小时后,仅人提点,才发现原来对"chmod+s"理解有误。
四、chmod命令
执行两条命令之前httpd文件特性:
-rwxr-xr-x 1 wolf admin 2429431 Nov 4 13:35 httpd
执行两条命令之后:
-rwsr-xr-x 1 root admin 2429431 Nov 4 13:35 httpd
chmod命令+s参数解释如下:
s在文件执行时把进程的属主或组ID置为该文件的文件属主。
原来只有wolf这个用户可以执行httpd这条命令,u+s后其他用户都可享有文件属主的权限。通过chown将文件属主调整为root,这样其他用户即可以root权限操作该文件。
五、示例
通常开发过程中需要编辑/etc/hosts文件,每次编辑以sudo方式执行,每次都要输入密码令人不爽,通过执行以下命令即可解决:
chmod u+s /etc/hosts
相关推荐
Kafka 2020-09-18
Wepe0 2020-10-30
杜倩 2020-10-29
windle 2020-10-29
minerd 2020-10-28
mengzuchao 2020-10-22
Junzizhiai 2020-10-10
bxqybxqy 2020-09-30
风之沙城 2020-09-24
kingszelda 2020-09-22
大唐帝国前营 2020-08-18
yixu0 2020-08-17
TangCuYu 2020-08-15
xiaoboliu00 2020-08-15
songshijiazuaa 2020-08-15
xclxcl 2020-08-03
zmzmmf 2020-08-03
newfarhui 2020-08-03
likesyour 2020-08-01