我可以用它停止
/etc/init.d/apache2 stop
但是当我想使用以下命令重新启动它时:
/etc/init.d/apache2 start
我收到此错误:
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]
答案1
关于您所遇到的错误的一些话,希望可以帮助您避免将来遇到类似的情况。
在 Linux 中,0 到 1024 之间的端口是为系统保留的。这意味着,要使用某个端口,您必须具有更改(访问)基本系统设置的权限。root 用户具有此类权限,并且实际上可以使用 0 - 1024 范围内的端口。
在您的问题中,正如您所看到的,系统通过 Apache2 响应指出了问题的根源([...]无法绑定到地址等等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
当 Apache2 http 守护程序启动时,它会尝试绑定 80 端口,因为它是 HTTP 中使用的默认端口看,这是系统分配端口内的端口,因此只有 root 才能访问。
您以没有 root 权限的普通用户身份执行了启动命令,导致执行失败。
简单来说:
你:
你好,Apache2。我是 Kongthap,我告诉你开始 (
/etc/init.d/apache2 start
)
Apache2:
好的。我正在启动(启动 Web 服务器 apache2)
系统,请给我80端口来使用并监听连接。
系统:
好的。请稍等片刻检查...
啊...抱歉,Apache2,但我不能让你在 80 端口运行,这是供个人使用的。
并且您没有正确的权限来绑定它。(
Operation not permitted
)
Apache2:
哦,Kongthap,我启动失败,系统不允许我这样做(
(13)Permission denied:[...]
)
结论
解决这个问题主要有两种方案:
使用 root 权限运行 Apache2 HTTP 守护程序
sudo
:sudo service apache2 start
或者:
sudo /etc/init.d/apache2 start
将默认端口从 更改
80
为大于 的端口1024
,例如2000
、2500
、9000
等。在这种情况下运行的典型端口是8080
sudo vi /etc/apache2/ports.conf
查找,如果没有,则添加:
Listen 8080
或您选择的任何其他端口,例如端口
> 1024
,并且所选端口是不是被另一个进程使用。
答案2
以下是启动/停止/重新启动 apache 服务器的命令:
开始:
sudo /etc/init.d/apache2 start
停止:
sudo /etc/init.d/apache2 stop
重启:
sudo /etc/init.d/apache2 restart
答案3
通过发出命令检查 selinux 端口上下文
semanage port -l | grep http
如果它存在于 http_port_t 列表中,那么就可以了,否则通过以下方式添加你的端口
semanage port -a -t http_port_t -p tcp 80
或者您想要分配的内容。
答案4
这是 selinux 错误,至少我的情况是这样的。要么更改布尔值,要么禁用 selinux,要么使用 将其设置为宽容setenforce 0
。
布尔值更改需要您运行getenforce -a | grep http
,并查找“允许 http 连接网络”。复制它并将列表中显示“--off”的位置替换为“on”