我正在尝试在相同IP地址的不同端口上配置两个站点。
(13)Permission denied: make_sock: could not bind to address [::]:9000
我收到错误。这个错误的原因是什么以及如何解决这个错误?
我的httpd.conf
文件是
Listen 80
NameVirtualHost 192.168.2.10:80
<VirtualHost 192.168.2.10:80>
DocumentRoot /var/www/html/white-socks
ServerName www.white-socks.com
</VirtualHost>
Listen 9000
NameVirtualHost 192.168.2.10:9000
<VirtualHost 192.168.2.10:9000>
DocumentRoot /var/www/html/black-socks
ServerName www.black-socks.com
</VirtualHost>
我收到如下错误。
[root@ram conf]# service httpd start
Starting httpd: httpd: apr_sockaddr_info_get() failed for ram
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
(13)Permission denied: make_sock: could not bind to address [::]:9000
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:9000
no listening sockets available, shutting down
Unable to open logs
[FAILED]
[root@ram conf]#
我必须做些什么来解决这个问题?
答案 0 :(得分:1)
有两个问题需要解决:
sudo httpd
sudo允许您以root身份运行命令。如果它正常工作,那么它就是权限问题。
sudo bash -x /usr/sbin/apachectl -k stop
将停止MacOS中的默认服务器
sudo launchctl unload /System/Library/LaunchDaemons/org.apache.httpd.plist
将阻止未来在启动时运行
答案 1 :(得分:0)
如果您使用 Selinux (仅适用于RedHat基本操作系统)并且配置不正确,很多时候会出现此错误。尝试按setenforce 0
禁用Selinux,或者如果您不想禁用selinux而不是正确配置selinux: -
semanage port -l | grep http
semanage port -a -t http_port_t -p tcp 9000
重新启动Apache服务器并检查。
您还可以检查netstat命令输出以查看是否已使用端口。
netstat -tunalp | grep :9000
netstat -tunalp | grep :80