我正在使用 Ubuntu 虚拟机。我在其中安装了依赖于 AOLServer 的 OpenACS。为此,我首先关闭了这台机器上的 Apache,然后按照此处给出的说明进行操作
http://openacs.org/xowiki/ubuntu
步骤 1)aptitude 安装 postgresql
步骤2)aptitude安装openacs
我必须关闭 Apache 才能进行上述安装。现在安装已完成。因此我可以访问http://本地主机:8000
但每当我尝试在这台在安装过程中关闭的机器上启动 Apache 时,我都会看到错误
service apache2 start
* Starting web server apache2 (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
所以我想可能是 OpenACS 安装了 AOLServer,所以 Aolserver 可能正在监听端口 80。我检查了一下
/etc/aolserver4/conf.d/openacs.sh
和这里
AOL_USER=www-data
AOL_GROUP=www-data
AOL_ADDRESS=192.168.1.15
AOL_PORT=8000
RUN_DAEMON=yes
因此,到目前为止,已确认 AOLServer 没有在端口 80 上监听。
netstat -tualp | grep 80
tcp 0 0 somemachine.somedimain.:8000 *:* LISTEN 21321/aolserver4-ns
因此 netstat 仅显示正在使用 8000。那么为什么在这种情况下我无法启动 Apache?
编辑
正如下面的 ooshro 指出的那样,检查 我得到的netstat -tualp | grep \:www
输出
是
tcp 0 0 localhost:www *:* LISTEN 2883/aolserver4-nsd
答案1
去检查:
netstat -tualpn | grep 80
或者
netstat -tualp | grep \:www
没有‘n’选项,80 解析为 www。
编辑“/etc/aolserver4/aolserver4.tcl”:
array set debian_config {
HOSTNAME localhost
ADDRESS 127.0.0.1
HTTP_PORT 8080
HTTPS_PORT 443
}
然后重新启动aolserver4和apache2
/etc/init.d/aolserver4 restart
/etc/init.d/apache2 restart
答案2
好的,最后我解决了这个问题。默认的 openacs 安装在端口 8000 上监听,以避免与默认的 aolserver 在端口 80 上监听发生冲突。
我必须在 /etc/default/aolserver4 文件中放入 RUN_DAEMON=no,尽管此文件的所有行都被注释掉了,但我仍然需要添加
RUN_DAEMON=no
这对我有用。