在广泛的研究和测试中,我写了一个值得进行stackexchange的问题,我找到了一个解决方案:libapr1
在guest虚拟机内部重建软件包。
我以为仍然会发布此信息,因为它可能对其他人有用。
问题
当我libapache2-mod-php5
在Wheezy guest虚拟机内安装并尝试启动时,得到以下信息:
root@test01:~# /usr/sbin/apache2ctl start
[crit] (22)Invalid argument: alloc_listener: failed to get a socket for (null)
Syntax error on line 9 of /etc/apache2/ports.conf:
Listen setup failed
Action 'start' failed.
The Apache error log may have more information.
root@test01:~# tail /var/log/apache2/error.log
root@test01:~#
root@test01:~# head -n 9 /etc/apache2/ports.conf|tail -n 1
Listen 80
这是未更改的原始软件包安装,默认情况下不会启动。
我的测试
根据官方文档,Listen 80实际上很好。把它变成Listen 127.0.0.1:80
给我:
[crit] (22)Invalid argument: alloc_listener: failed to get a socket for 127.0.0.1
Syntax error on line 9 of /etc/apache2/ports.conf:
Listen setup failed
Action 'start' failed.
那么,为什么Apache无法获得套接字?我运行了其他恶魔(例如,在其他Wheezy安装上为nginx;在同一安装上的exim4上监听端口25)没有问题。
环境
主办
Debian Lenny在2.6.26-2-vserver-amd64上
# vserver-info
Versions:
Kernel: 2.6.26-2-vserver-amd64
VS-API: 0x00020303
util-vserver: 0.30.216-pre2772; Dec 13 2008, 04:56:19
Features:
CC: gcc, gcc (Debian 4.3.2-1) 4.3.2
CXX: g++, g++ (Debian 4.3.2-1) 4.3.2
CPPFLAGS: ''
CFLAGS: '-Wall -g -O2 -std=c99 -Wall -pedantic -W -funit-at-a-time'
CXXFLAGS: '-g -O2 -ansi -Wall -pedantic -W -fmessage-length=0 -funit-at-a-time'
build/host: x86_64-pc-linux-gnu/x86_64-pc-linux-gnu
Use dietlibc: yes
Build C++ programs: yes
Build C99 programs: yes
Available APIs: v13,net,v21,v22,v23,netv2
ext2fs Source: e2fsprogs
syscall(2) invocation: alternative
vserver(2) syscall#: 236/glibc
crypto api: beecrypt
use library versioning: yes
Paths:
prefix: /usr
sysconf-Directory: /etc
cfg-Directory: /etc/vservers
initrd-Directory: $(sysconfdir)/init.d
pkgstate-Directory: /var/run/vservers
vserver-Rootdir: /var/lib/vservers
Assumed 'SYSINFO' as no other option given; try '--help' for more information.
来宾
Debian Wheezy,建于 vserver $VSERVER build -m debootstrap --hostname $VSERVER --netdev eth0 --context $CONTEXT --interface v$CONTEXT=x.y.z.$CONTEXT/zz -- -d wheezy -m http://apt-proxy:9999/debian/
到目前为止的研究
到目前为止,互联网为我提供了以下几点信息:
我最大的担心是我目前的结论,那就是虚拟服务器内部的apache依赖于主机未提供的某些较新的内核功能。毕竟,Wheezy默认内核肯定不比我的2.6.26老。
我想避免不惜一切代价升级主机内核。
为什么?
- 缺乏时间和知识(硬件是HP服务器,不知道需要注意什么)
- Wheezy不再支持vserver(开箱即用;有关自动安装的信息,请参见1)...)
- 已经运行的虚拟服务器要求24/7可用(整个系统是公司内部的,并且不暴露于Internet)
- 没有第二个相同的硬件可以执行测试
我愿意修补Apache
如果有可能找出问题所在,那么我将为我的Wheezy任务构建一个定制的deb程序包。