
私はUbuntu 16.02を使用しています。試してみるとsudo service apache2 restart
、次のように表示されます:
Job for apache2.service failed because the control process exited with error code. See "systemctl status apache2.service" and "journalctl -xe" for details.
次に、次のように入力してjournalctl -xe
、次のように要求します。
-- -- ユニット apache2.service の起動が開始されました。 1月11日 02:30:46 aleksandr-VirtualBox apache2[8177]: /etc/init.d/apache2: 1: /etc/apache2/envvars: envvars: が見つかりません 1月11日 02:30:46 aleksandr-VirtualBox apache2[8177]: /etc/init.d/apache2: 49: /etc/apache2/envvars: envvars: が見つかりません 1月11日 02:30:46 aleksandr-VirtualBox apache2[8177]: /etc/init.d/apache2: 1: /etc/apache2/envvars: envvars: が見つかりません 1月11日 02:30:46 aleksandr-VirtualBox apache2[8177]: /etc/init.d/apache2: 49: /etc/apache2/envvars: envvars: が見つかりません 1月11日 02:30:46 aleksandr-VirtualBox apache2[8177]: * Apache httpdウェブサーバーapache2を起動しています 1月11日 02:30:46 aleksandr-VirtualBox apache2[8177]: * 1月11日 02:30:46 aleksandr-VirtualBox apache2[8177]: * apache2 configtestに失敗しました。 1月11日 02:30:46 aleksandr-VirtualBox apache2[8177]: 構成テストの出力は次のとおりです: 1月11日 02:30:46 aleksandr-VirtualBox apache2[8177]: /usr/sbin/apache2ctl: 1: /etc/apache2/envvars: envvars: 見つかりません 1月11日 02:30:46 aleksandr-VirtualBox apache2[8177]: /usr/sbin/apache2ctl: 49: /etc/apache2/envvars: envvars: 見つかりません 1月11日 02:30:46 aleksandr-VirtualBox apache2[8177]: (2)そのようなファイルまたはディレクトリはありません: AH02291: メインエラーログのディレクトリ '/etc/apache2/logs/' にアクセスできません 1月11日 02:30:46 aleksandr-VirtualBox apache2[8177]: AH00014: 構成チェックに失敗しました 1月11日 02:30:46 aleksandr-VirtualBox apache2[8177]: アクション「configtest」が失敗しました。 1月11日 02:30:46 aleksandr-VirtualBox apache2[8177]: Apacheエラーログに詳細情報が記載されている可能性があります。 1月11日 02:30:46 aleksandr-VirtualBox systemd[1]: apache2.service: 制御プロセスが終了しました。コード=終了 ステータス=1 1月11日 02:30:46 aleksandr-VirtualBox sudo[8171]: pam_unix(sudo:session): ユーザーrootのセッションが閉じられました 1月11日 02:30:46 aleksandr-VirtualBox systemd[1]: LSBの起動に失敗しました: Apache2 Webサーバー。 -- 件名: ユニット apache2.service が失敗しました -- 定義元: systemd -- サポート: http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- ユニット apache2.service が失敗しました。 -- -- 結果は失敗です。 1月11日 02:30:46 aleksandr-VirtualBox systemd[1]: apache2.service: ユニットが障害状態になりました。 1月11日 02:30:46 aleksandr-VirtualBox systemd[1]: apache2.service: 結果 'exit-code' で失敗しました。 1月11日 02:33:09 aleksandr-VirtualBox dhclient[792]: enp0s8の192.168.56.101から192.168.56.100のポート67 (xid=0x204f076f)へのDHCPREQUEST 1月11日 02:33:09 aleksandr-VirtualBox dhclient[792]: 192.168.56.100からの192.168.56.101のDHCPACK 1月11日 02:33:09 aleksandr-VirtualBox NetworkManager[619]: [1484073189.4253] アドレス 192.168.56.101 1月11日 02:33:09 aleksandr-VirtualBox NetworkManager[619]: [1484073189.4260] plen 24 (255.255.255.0) 1月11日 02:33:09 aleksandr-VirtualBox NetworkManager[619]: [1484073189.4266] サーバー識別子 192.168.56.100 1月11日 02:33:09 aleksandr-VirtualBox NetworkManager[619]: [1484073189.4273] リース時間 1200 1月11日 02:33:09 aleksandr-VirtualBox NetworkManager[619]: [1484073189.4279] dhcp4 (enp0s8): 状態が変更されました バインド済み -> バインド済み 1月11日 02:33:09 aleksandr-VirtualBox dbus[590]: [system] systemd経由でアクティブ化しています: サービス名='org.freedesktop.nm_dispatcher' ユニット='dbus-org.freedesktop.nm-dispatcher.service' 1月11日 02:33:09 aleksandr-VirtualBox systemd[1]: Network Manager Script Dispatcher Serviceを開始しています... -- 件名: ユニット NetworkManager-dispatcher.service の起動が開始されました -- 定義元: systemd - サポート: -- -- ユニット NetworkManager-dispatcher.service の起動が開始されました。 1月11日 02:33:09 aleksandr-VirtualBox dhclient[792]: 192.168.56.101にバインドされました -- 559秒後に更新されます。 1月11日 02:33:09 aleksandr-VirtualBox dbus[590]: [system] サービス 'org.freedesktop.nm_dispatcher' が正常にアクティブ化されました 1月11日 02:33:09 aleksandr-VirtualBox systemd[1]: Network Manager Script Dispatcher Serviceを開始しました。 -- 件名: ユニット NetworkManager-dispatcher.service の起動が完了しました -- 定義元: systemd - サポート: -- -- ユニット NetworkManager-dispatcher.service の起動が完了しました。 -- -- 起動結果が完了しました。 1月11日 02:33:09 aleksandr-VirtualBox nm-dispatcher[8205]: req:1 'dhcp4-change' [enp0s8]: 新しいリクエスト (1 スクリプト) 1月11日 02:33:09 aleksandr-VirtualBox nm-dispatcher[8205]: req:1 'dhcp4-change' [enp0s8]: 順序付けられたスクリプトの実行を開始します...
そして、systemctl status apache2.service
リクエストがあった場合:
* apache2.service - LSB: Apache2 ウェブサーバー ロード済み: ロード済み (/etc/init.d/apache2; 不良; ベンダープリセット: 有効) ドロップイン: /lib/systemd/system/apache2.service.d `-apache2-systemd.conf アクティブ: 失敗 (結果: 終了コード) 2017-01-11 02:30:46 +08 水曜日から; 33 分前 ドキュメント: man:systemd-sysv-generator(8) プロセス: 8023 ExecStop=/etc/init.d/apache2 stop (コード=終了、ステータス=0/成功) プロセス: 2236 ExecReload=/etc/init.d/apache2 再ロード (コード=終了、ステータス=0/成功) プロセス: 8177 ExecStart=/etc/init.d/apache2 開始 (コード=終了、ステータス=1/失敗) 1月11日 02:30:46 aleksandr-VirtualBox apache2[8177]: /usr/sbin/apache2ctl: 1: /etc/apache2/envvars: envvars: 見つかりません 1月11日 02:30:46 aleksandr-VirtualBox apache2[8177]: /usr/sbin/apache2ctl: 49: /etc/apache2/envvars: envvars: 見つかりません 1月11日 02:30:46 aleksandr-VirtualBox apache2[8177]: (2)そのようなファイルまたはディレクトリはありません: AH02291: メインエラーログのディレクトリ '/etc/apache2/logs/' にアクセスできません 1月11日 02:30:46 aleksandr-VirtualBox apache2[8177]: AH00014: 構成チェックに失敗しました 1月11日 02:30:46 aleksandr-VirtualBox apache2[8177]: アクション「configtest」が失敗しました。 1月11日 02:30:46 aleksandr-VirtualBox apache2[8177]: Apacheエラーログに詳細情報が記載されている可能性があります。 1月11日 02:30:46 aleksandr-VirtualBox systemd[1]: apache2.service: 制御プロセスが終了しました。コード=終了 ステータス=1 1月11日 02:30:46 aleksandr-VirtualBox systemd[1]: LSBの起動に失敗しました: Apache2 Webサーバー。 1月11日 02:30:46 aleksandr-VirtualBox systemd[1]: apache2.service: ユニットが障害状態になりました。 1月11日 02:30:46 aleksandr-VirtualBox systemd[1]: apache2.service: 結果 'exit-code' で失敗しました。
何が問題なのですか? 割り込みはどこですか? 助けてください!
答え1
エラーは 2 つあります。
1.何らかの理由で、が/etc/apache2/envvars
欠落しています:
から
journalctl -xe
:Jan 11 02:30:46 aleksandr-VirtualBox apache2[8177]: /etc/init.d/apache2: 1: /etc/apache2/envvars: envvars: not found Jan 11 02:30:46 aleksandr-VirtualBox apache2[8177]: /etc/init.d/apache2: 49: /etc/apache2/envvars: envvars: not found Jan 11 02:30:46 aleksandr-VirtualBox apache2[8177]: /etc/init.d/apache2: 1: /etc/apache2/envvars: envvars: not found Jan 11 02:30:46 aleksandr-VirtualBox apache2[8177]: /etc/init.d/apache2: 49: /etc/apache2/envvars: envvars: not found ... Jan 11 02:30:46 aleksandr-VirtualBox apache2[8177]: /usr/sbin/apache2ctl: 1: /etc/apache2/envvars: envvars: not found Jan 11 02:30:46 aleksandr-VirtualBox apache2[8177]: /usr/sbin/apache2ctl: 49: /etc/apache2/envvars: envvars: not found
から
systemctl status apache2.service
:Jan 11 02:30:46 aleksandr-VirtualBox apache2[8177]: /usr/sbin/apache2ctl: 1: /etc/apache2/envvars: envvars: not found Jan 11 02:30:46 aleksandr-VirtualBox apache2[8177]: /usr/sbin/apache2ctl: 49: /etc/apache2/envvars: envvars: not found
私のシステムでは、このファイルには次の権限があります:
$ ls -l /etc/apache2/envvars
-rw-r--r-- 1 root root 1782 мар 19 2016 envvars
その内容($ cat /etc/apache2/envvars
)は次のとおりです。
# envvars - default environment variables for apache2ctl
# this won't be correct after changing uid
unset HOME
# for supporting multiple apache2 instances
if [ "${APACHE_CONFDIR##/etc/apache2-}" != "${APACHE_CONFDIR}" ] ; then
SUFFIX="-${APACHE_CONFDIR##/etc/apache2-}"
else
SUFFIX=
fi
# Since there is no sane way to get the parsed apache2 config in scripts, some
# settings are defined via environment variables and then used in apache2ctl,
# /etc/init.d/apache2, /etc/logrotate.d/apache2, etc.
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
# temporary state file location. This might be changed to /run in Wheezy+1
export APACHE_PID_FILE=/var/run/apache2/apache2$SUFFIX.pid
export APACHE_RUN_DIR=/var/run/apache2$SUFFIX
export APACHE_LOCK_DIR=/var/lock/apache2$SUFFIX
# Only /var/log/apache2 is handled by /etc/logrotate.d/apache2.
export APACHE_LOG_DIR=/var/log/apache2$SUFFIX
## The locale used by some modules like mod_dav
export LANG=C
## Uncomment the following line to use the system default locale instead:
#. /etc/default/locale
export LANG
## The command to get the status for 'apache2ctl status'.
## Some packages providing 'www-browser' need '--dump' instead of '-dump'.
#export APACHE_LYNX='www-browser -dump'
## If you need a higher file descriptor limit, uncomment and adjust the
## following line (default is 8192):
#APACHE_ULIMIT_MAX_FILES='ulimit -n 65536'
## If you would like to pass arguments to the web server, add them below
## to the APACHE_ARGUMENTS environment.
#export APACHE_ARGUMENTS=''
## Enable the debug mode for maintainer scripts.
## This will produce a verbose output on package installations of web server mod ules and web application
## installations which interact with Apache
#export APACHE2_MAINTSCRIPT_DEBUG=1
手動で作成することもできます: sudo nano /etc/apache2/envvars
、上記のコンテンツを貼り付けて、保存しctrlてo終了しctrlますx。
2.システムでは、次のフォルダー/etc/apache2/logs
も見つかりません:
から
journalctl -xe
:Jan 11 02:30:46 aleksandr-VirtualBox apache2[8177]: (2)No such file or directory: AH02291: Cannot access directory '/etc/apache2/logs/' for main error log
から
systemctl status apache2.service
:Jan 11 02:30:46 aleksandr-VirtualBox apache2[8177]: (2)No such file or directory: AH02291: Cannot access directory '/etc/apache2/logs/' for main error log
これはデフォルトのログ フォルダーではなく、カスタム構成で定義され、作成する必要があります。
$ sudo mkdir /etc/apache2/logs
答え2
sites-available 内の .conf ファイルを削除しましたが、 sites-enabled 内のリンク ファイルは削除しませんでした。
今、サイトが有効になっているすべてのファイルを削除しました
apache2 サーバーを再起動しました (sudo service apache2 restart)
私には効果があった
これが誰かの役に立つことを願っています :)
答え3
私も同じ問題を抱えていました。同じエラーが発生しsudo service apache2 restart
、実行したところsudo systemctl status apache2.service
、赤い線がFailed to start LSB: Apache2 web server.
解決
以下のコマンドを実行します。
sudo apache2ctl configtest
エラー (おそらく構文エラー) がチェックされ、エラーをデバッグできます。
答え4
私の場合はこうします:
Apache2をアンインストールして削除する
sudo service apache2 stop
sudo apt-get purge apache2
sudo apt-get autoremove
whereis apache2
sudo rm -rf /etc/apache2
apache2を再インストールする
sudo apt-get install apache2
sudo apache2ctl configtest
それは私のために走る