Durante una extensa investigación y pruebas para escribir una pregunta adecuada digna de stackexchange, encontré una solución: reconstruir el libapr1
paquete dentro del invitado.
Sin embargo, pensé que publicaría esta información, ya que podría ser útil para otros.
Problema
Cuando instalo libapache2-mod-php5
dentro del invitado Wheezy e intenta iniciarse, obtengo lo siguiente:
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
Esta es la instalación del paquete sin cambios que, de forma predeterminada, no logra iniciarse.
Mi prueba
Según la documentación oficial, Listen 80 está realmente bien . Convertirlo en Listen 127.0.0.1:80
me da:
[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.
Entonces, ¿por qué Apache no podría obtener un zócalo? Tengo otros demonios ejecutándose (es decir, nginx en otra instalación de Wheezy; exim4 escuchando en el puerto 25 en la misma instalación) sin problemas.
Medio ambiente
Anfitrión
Debian Lenny en 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.
Invitado
Debian Wheezy, construido con 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/
Investiga hasta ahora
Los internets me proporcionaron lo siguiente hasta ahora:
- Problema en fedorra solucionado al actualizar APR
- Problema solucionado al actualizar el paquete
- Incompatibilidad del núcleo
- Otra solución requería una actualización del kernel
Mi mayor temor, y esta es mi conclusión actual, es que apache dentro del servidor virtual depende de alguna característica más nueva del núcleo que mi host no proporciona. Después de todo, el kernel predeterminado de Wheezy ciertamente no es tan antiguo como mi 2.6.26.
Quiero evitar actualizar el núcleo del host a toda costa.
¿Por qué?
- Falta de tiempo y conocimiento (el hardware es un servidor HP, no tengo idea de qué tener en cuenta)
- Wheezy ya no es compatible con vserver (listo para usar; para la autoinstalación, consulte 1) ...)
- Ya está ejecutando vservers que deben estar disponibles 24/7 (todo el sistema es interno de la compañía y no está expuesto a Internet)
- No hay segundo hardware para realizar pruebas
Estoy dispuesto a parchear Apache
Si es posible averiguar cuál es el problema, estoy dispuesto a construir un paquete de deb personalizado para mis misiones de Wheezy.