我按照官方的 OpenStack 文档构建了我的第一个环境,但在配置 Keystone 时遇到了困难(最后一步来自http://docs.openstack.org/kilo/install-guide/install/apt/content/keystone-install.html)
尝试重新启动 apache 时,我收到有关端口 5000 正在使用的错误消息
* Restarting web server apache2
(98)Address already in use: AH00072: make_sock: could not bind to address [::]:5000
(98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:5000
no listening sockets available, shutting down
AH00015: Unable to open logs
Action 'start' failed.
The Apache error log may have more information.
Netstat 表示该端口由 Python 使用,进一步调查显示它与 Keystone 有某种关联
/usr/bin/python /usr/bin/keystone-all --config-file=/etc/keystone/keystone.conf --log-file=/var/log/keystone/keystone.log
在这种情况下我应该采取哪种方法?重新配置 apache 以使用其他端口,还是尝试处理 Python 以使用其他端口?
编辑
参照https://ask.openstack.org/en/question/47137/devstack-fails-to-start-apache2-address-already-in-use-could-not-bind-to-address/我将 修改为/etc/apache2/sites-available/wsgi-keystone.conf
,但错误仍然存在。目前的消息是<VirtualHost *:5000>
<VirtualHost *:80>
* Restarting web server apache2
(98)Address already in use: AH00072: make_sock: could not bind to address [::]:80
(98)Address already in use: AH00072: make_sock: could not bind to address [::]:35357
(98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:35357
no listening sockets available, shutting down
AH00015: Unable to open logs
Action 'start' failed.
The Apache error log may have more information.
Apache 错误日志显然是空的,所以我无法去那里找到任何有用的信息。
答案1
您看到的错误是因为 Keystone 正在使用已弃用的 Eventlet 运行,因此它正在监听端口5000
。为了使其与 Apache 一起工作,您必须先停止并禁用 Keystone 服务。Keystone 不会作为服务执行,因为它将使用 执行为 Apache 中的 WSGI 应用程序mod_wsgi
。
因此,为了让一切正常,请回滚您的配置,以便<VirtualHost *:5000>
再次使用。然后,停止并禁用该keystone
服务并重新启动 Apache:
service keystone stop
update-rc.d keystone disable
service apache2 restart