Trong quá trình nghiên cứu và thử nghiệm rộng rãi để viết một câu hỏi thích hợp xứng đáng với stackexchange tôi đã tìm thấy một giải pháp: xây dựng lại libapr1
gói bên trong khách.
Tôi nghĩ rằng tôi vẫn đăng thông tin này vì nó có thể hữu ích cho người khác.
Vấn đề
Khi tôi cài đặt libapache2-mod-php5
bên trong khách Wheezy và nó cố gắng khởi động, tôi nhận được những điều sau:
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
Đây là cài đặt gói nguyên sơ không thay đổi mà theo mặc định không quản lý để khởi động.
Thử nghiệm của tôi
Theo tài liệu chính thức, Nghe 80 thực sự tốt . Biến nó thành Listen 127.0.0.1:80
cho tôi:
[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.
Vậy tại sao Apache không có được một ổ cắm? Tôi đã chạy các deamon khác (tức là nginx trên bản cài đặt Wheezy khác; exim4 nghe trên cổng 25 trên cùng bản cài đặt) mà không gặp vấn đề gì.
Môi trường
Tổ chức
Debian Lenny trên 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.
Khách mời
Debian Wheezy, được xây dựng với 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/
Nghiên cứu cho đến nay
Các internets đã chứng minh cho tôi với những điều sau đây cho đến nay:
- Đã khắc phục sự cố trên fedorra bằng cách nâng cấp APR
- Sự cố được khắc phục bằng cách nâng cấp gói
- Không tương thích hạt nhân
- Một giải pháp khác yêu cầu nâng cấp kernel
Nỗi sợ hãi lớn nhất của tôi, và đây là kết luận hiện tại của tôi, đó là apache bên trong máy chủ ảo phụ thuộc vào một số tính năng hạt nhân mới hơn mà máy chủ của tôi không cung cấp. Xét cho cùng, kernel mặc định Wheezy chắc chắn không cũ bằng 2.6,26 của tôi.
Tôi muốn tránh nâng cấp kernel host bằng mọi giá.
Tại sao?
- Thiếu thời gian và kiến thức (phần cứng là máy chủ HP, không biết phải đề phòng điều gì)
- Wheezy không hỗ trợ vserver nữa (ngoài hộp; để tự cài đặt, xem 1) ...)
- Đã chạy các trình so sánh được yêu cầu khả dụng 24/7 (toàn bộ hệ thống là nội bộ của công ty và không được tiếp xúc với internet)
- Không có phần cứng thứ hai để thực hiện kiểm tra
Tôi sẵn sàng vá Apache
Nếu có thể tìm ra vấn đề là gì, tôi sẽ sẵn sàng xây dựng gói gỡ lỗi tùy chỉnh cho các nhiệm vụ Wheezy của mình.