Apacheを起動しようとすると、次のエラーが表示されます
root@server11362:~# Sudo /etc/init.d/Apache2 restart
Restarting web server Apache2 (98)Address already in use:
make_sock: could not bind to address 111.90.150.93:80
no listening sockets available, shutting down
Unable to open logs
Action 'start' failed.
The Apache error log may have more information.
実際、Apacheログにはこれ以上の情報は含まれていません。
netstat -tulpn
は次を返します
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1098/mysqld
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 1414/redis-server
tcp 0 0 111.90.150.93:53 0.0.0.0:* LISTEN 1068/named
tcp 0 0 111.90.150.92:53 0.0.0.0:* LISTEN 1068/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1068/named
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 1194/postgres
tcp 0 0 0.0.0.0:44888 0.0.0.0:* LISTEN 845/sshd
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 1395/master
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 1068/named
tcp 0 0 0.0.0.0:6081 0.0.0.0:* LISTEN 1435/varnishd
tcp 0 0 127.0.0.1:6082 0.0.0.0:* LISTEN 1434/varnishd
tcp6 0 0 :::53 :::* LISTEN 1068/named
tcp6 0 0 :::44888 :::* LISTEN 845/sshd
tcp6 0 0 :::25 :::* LISTEN 1395/master
tcp6 0 0 ::1:953 :::* LISTEN 1068/named
tcp6 0 0 :::6081 :::* LISTEN 1435/varnishd
udp 0 0 111.90.150.93:53 0.0.0.0:* 1068/named
udp 0 0 111.90.150.92:53 0.0.0.0:* 1068/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 1068/named
udp6 0 0 :::53
ポート80には何もありませんが、まだ再起動できません
あなたも得るので、おそらくもっと壊れている
Unable to open logs
まず、より多くのログを有効にします
LogLevel debug
/etc/Apache2/Apache2.conf
で。
/var/log/Apache2
でファイルの権限を確認してください。
私は頻繁に次のコマンドを使用してデバッグします:
strace -f Apache2ctl start 2>&1|grep -v " ENOENT " | grep -Ee " E[A-Z]+"
どの呼び出しが失敗したかを正確に示します。
[編集]
別の理由は、次のような重複したリスニングアドレスを生成する可能性があります。
Listen *:80
Listen 1.2.3.4:80
したがって、すべてのインターフェイスをリッスンし、2番目のリッスンラインはすでに開いているポートを開こうとしました。説明されているように ここ 。
非rootユーザーとしてApacheを起動しようとしていますか? Apacheを1024未満のポートにバインドする権限がない可能性があり(通常はrootユーザーのみが可能)、ログファイルはApache:apache以外のユーザーが所有するか、rootが所有します。それらを開きます。
/ etc/Apache2/logsがApache2ユーザーによって所有されていること、およびルートとしてサービスを開始していることを確認します(そして/etc/Apache2/conf/Apache2.conf(またはhttpd.conf)のユーザーとグループが正しいユーザーに指定されます)。