stackexchange에 적합한 적절한 질문을 작성하기 위해 광범위한 연구 및 테스트를 수행하는 동안 libapr1
게스트 내부에서 패키지를 다시 작성하는 해결책을 찾았습니다 .
그럼에도 불구하고이 정보는 다른 사람들에게 유용 할 수 있으므로 게시 할 것이라고 생각했습니다.
문제
libapache2-mod-php5
Wheezy 게스트 내부에 설치 하고 시작하려고하면 다음과 같은 결과가 나타납니다.
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; 동일한 설치의 포트 25에서 수신하는 exim4).
환경
주최자
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/
지금까지의 연구
인터넷은 지금까지 다음과 같은 것들을 제공했습니다.
저의 가장 큰 두려움은 이것이 현재 결론입니다. 가상 서버 내부의 아파치는 호스트가 제공하지 않는 새로운 커널 기능에 달려 있다는 것입니다. 결국, Wheezy 기본 커널은 확실히 2.6.26보다 오래되지 않았습니다.
모든 비용으로 호스트 커널 업그레이드를 피하고 싶습니다.
왜?
- 시간과 지식 부족 (하드웨어는 HP 서버이므로주의해야 할 사항 없음)
- Wheezy는 더 이상 가상 서버를 지원하지 않습니다 (기본 제공, 자체 설치의 경우 1 참조) ...)
- 연중 무휴 24 시간 사용 가능해야하는 이미 실행중인 가상 서버 (전체 시스템은 회사 내부이며 인터넷에 노출되지 않음)
- 테스트를 수행 할 동일한 하드웨어가 없습니다.
나는 아파치 패치를 기꺼이한다
문제가 무엇인지 알아낼 수 있다면 Wheezy 퀘스트에 대한 사용자 정의 deb 패키지를 작성하려고합니다.