Art*_*san 28 server permissions apache2
我可以停止使用
/etc/init.d/apache2 stop
Run Code Online (Sandbox Code Playgroud)
但是当我想使用以下方法再次启动它时:
/etc/init.d/apache2 start
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
Starting web server apache2 /usr/sbin/apache2ctl: 87: ulimit: error setting limit (Operation not permitted)
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
(13)Permission denied: 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
Action 'start' failed.
The Apache error log may have more information.
[fail]
Run Code Online (Sandbox Code Playgroud)
Ste*_*f K 59
关于您遇到的错误的一些话,希望将来可以使您免于类似的情况。
在 Linux 中,从 0 到 1024 的端口保留供系统使用。这意味着为了使用一个,您必须有权更改 - 访问基本系统设置。root 用户拥有这样的权限,实际上可以使用 0 - 1024 范围内的端口。
如您所见,在您的问题中,系统通过 Apache2 响应指示了问题的根源([...] 无法绑定到地址 blah blah 80):
(13)Permission denied: make_sock: could not bind to address [::]:80
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
Run Code Online (Sandbox Code Playgroud)
当 Apache2 http 守护进程启动时,它会尝试绑定 80 端口,因为它是 HTTP see 中使用的默认端口,这是系统分配端口中的一个端口,因此它只能由 root 访问。
您以没有 root 权限的典型用户身份执行了 start 命令,但导致执行失败。
简单来说:
你:
嗨Apache2。我是 Kongthap,我告诉你开始 (
/etc/init.d/apache2 start
)
阿帕奇2:
好的。我正在启动(启动 web 服务器 apache2)
系统,请给我80端口使用和监听连接。
系统:
好的。一分钟检查...
啊...对不起Apache2,但我不能让你在80端口运行,它是供个人使用的。
而且您没有正确的权限来绑定它。(
Operation not permitted
)
阿帕奇2:
哦,Kongthap 我启动失败,系统不让我启动 (
(13)Permission denied:[...]
)
结论
这个问题主要有两种解决方法:
使用 root 权限运行 Apache2 HTTP 守护进程sudo
:
sudo service apache2 start
Run Code Online (Sandbox Code Playgroud)
或者:
sudo /etc/init.d/apache2 start
Run Code Online (Sandbox Code Playgroud)
从更改默认端口80
的东西大于1024
,比如说2000
,2500
,9000
,等。典型的端口运行时在这样的情况是8080
sudo vi /etc/apache2/ports.conf
Run Code Online (Sandbox Code Playgroud)
寻找或如果没有添加:
Listen 8080
Run Code Online (Sandbox Code Playgroud)
或您选择的任何其他端口(例如端口)> 1024
并且所选端口未被其他进程使用。
以下是启动/停止/重启apache服务器的命令:
开始:
sudo /etc/init.d/apache2 start
Run Code Online (Sandbox Code Playgroud)停止:
sudo /etc/init.d/apache2 stop
Run Code Online (Sandbox Code Playgroud)重启:
sudo /etc/init.d/apache2 restart
Run Code Online (Sandbox Code Playgroud)小智 5
通过发出命令检查 selinux 端口上下文
semanage port -l | grep http
Run Code Online (Sandbox Code Playgroud)
如果它存在于 http_port_t 列表中,那就没问题,否则添加你的端口
semanage port -a -t http_port_t -p tcp 80
Run Code Online (Sandbox Code Playgroud)
或者你想要分配的东西。
归档时间: |
|
查看次数: |
171509 次 |
最近记录: |