Apache、問題 LSB の起動に失敗しました: Apache2 Web サーバー

Apache、問題 LSB の起動に失敗しました: Apache2 Web サーバー

私は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、上記のコンテンツを貼り付けて、保存しctrlo終了し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

それは私のために走る

関連情報