地址已被使用 - Amazon AWS

地址已被使用 - Amazon AWS

我遇到了一个非常奇怪的问题。我正在调试我们的 EC2 实例上的服务器 500 错误脚本,发现我们没有安装 ioncube 加载器。所以我去安装它们,我在 处创建了一个新文件,/etc/php.d/zend.ini最初我插入了 的值extension=/usr/local/ioncube/ioncube_loader_lin_5.3.so并重新启动了 httpd,此时它告诉我:

The ionCube Loader is a Zend-Engine extension and not a module
Please specify the Loader using 'zend_extension' in php.ini
PHP Fatal error:  Unable to start ionCube Loader module in Unknown on line 0

因此我将 zend.ini 的内容更改为 zend_extension=/usr/...etc。现在,当我尝试重新启动 httpd 时,出现此错误:

Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs

我甚至无法运行,/etc/init.d/httpd stop否则会出错。我已经删除了 zend.ini,看看是否是它导致的,但似乎不是。

有任何想法吗?

答案1

如果按照 David Schwartz 的建议,没有任何程序在端口 80 上监听,那么问题很可能是Listen 80您的 Apache 配置中有两个指令。它们可能不相邻,甚至不在同一个文件中。

尝试grep -r Listen /etc/httpd找到它们并删除其中一个。

答案2

应该删除 Zend-server

yum zend-server remove

消除

rm -f /var/lock/subsys/httpd

关闭进程httpd

ipcs -s | grep apache |  perl -e 'while (<STDIN>) { @a=split(/\s+/); print `ipcrm sem $a[1]`}'

查看 apache 状态

/etc/init.d/httpd status

然后启动 apache

/etc/init.d/httpd start

相关内容