Centos 7の新しいコピーをインストールしました。その後、Apacheを再起動しましたが、Apacheは起動に失敗しました。私はこの問題で3日間立ち往生しています。サポートでさえエラーを把握できません。
Sudo service httpd start
Failed to start Apache :
Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Mon 2016-05-09 16:08:02 BST; 59s ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 5710 (code=exited, status=1/FAILURE)
May 09 16:08:02 mike079.startdedicated.de systemd[1]: Starting The Apache HTTP Server...
May 09 16:08:02 mike079.startdedicated.de httpd[5710]: (98)Address already in use: AH00072: make_sock: could not bind to address 85.25.12.20:80
May 09 16:08:02 startdedicated.de httpd[5710]: no listening sockets available, shutting down
May 09 16:08:02 startdedicated.de httpd[5710]: AH00015: Unable to open logs
May 09 16:08:02 startdedicated.de systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
May 09 16:08:02.startdedicated.de kill[5712]: kill: cannot find process ""
May 09 16:08:02 .startdedicated.de systemd[1]: httpd.service: control process exited, code=exited status=1
May 09 16:08:02startdedicated.de systemd[1]: Failed to start The Apache HTTP Server.
May 09 16:08:02 startdedicated.de systemd[1]: Unit httpd.service entered failed state.
May 09 16:08:02 mike: httpd.service failed.
出力から:
使用可能なリスニングソケットがないため、シャットダウンします
基本的に、あるApacheがリッスンするポートは別のアプリケーションで既に使用されているということです。
netstat -punta | grep LISTEN
使用されているすべてのポートのリストと、どのプロセスがkill
stop
であるかを認識するために必要な情報が表示されます。
あなたのIPのnmap
を実行した後、私はそれを見ることができます
80/tcp open http
あなたはそれを整理したと思います。
私の場合、Listen 80をファイル内の443をリッスンするように変更したため、エラーが発生しました。
/etc/httpd/conf/httpd.conf
Yumコマンドを使用してmod_ssl
をインストールしたので
yum -y install mod_ssl
ssl.conf
インストール中に作成されたファイルmod_ssl
にlisten 443ディレクティブが重複していました。
リスン80または443が重複している場合は、linux centos(My linux)で以下のコマンドを実行して、これを確認できます。
grep '443' /etc/httpd/conf.d/*
以下はサンプル出力です
/etc/httpd/conf.d/ssl.conf:Listen 443 https
/etc/httpd/conf.d/ssl.conf:<VirtualHost _default_:443>
/etc/httpd/conf.d/ssl.conf:#ServerName www.example.com:443
単に80をリッスンするためにhttd.confのリッスン443を元に戻すと、問題が修正されました。
コマンドラインでjournalctl -xe
と入力すると、結果は
SELinux is preventing /usr/sbin/httpd from name_bind access on the tcp_socket port 83 or 80
これは、マシン上でSELinuxが実行されており、それを無効にする必要があることを意味します。次に、次を入力して構成ファイルを編集します
nano /etc/selinux/config
次に、行SELINUX=enforce
を見つけてSELINUX=disabled
に変更します
次に、次を入力し、コマンドを実行してhttpdを起動します
setenforce 0
最後にサーバーを起動します
systemctl start httpd
Vhost.confのタイプミスが原因で同じエラーが発生しました。構成ファイルにエラーがないことを忘れないでください。
apachectl configtest
<VirtualHost *:80>
ServerName www.YOURDOMAIN.COM
ServerAlias YOURDOMAIN.COM
DocumentRoot /var/www/YOURDOMAIN.COM/public_html
ErrorLog /var/www/YOURDOMAIN.COM/error.log
CustomLog /var/www/YOURDOMAIN.COM/requests.log combined
DocumentRoot /var/www/YOURDOMAIN.COM/public_html
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/YOURDOMAIN.COM/public_html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>