apache2 conf ファイルには、パスワードやその他の重要なデータを含む環境変数が含まれていました。apache2 を起動した後、conf ファイルを削除しました。再起動するには、これらのファイルを再度作成する必要があることはわかっています。
apache2 はどれくらい期待どおりに動作し続けますか (サイトの表示)? apache2 は起動後に conf ファイルを読み取りますか?
サーバーを再起動していないのに、Apache Ubuntuのデフォルトページが表示されるので質問します。
追伸grep apache
www-data 27019 0.0 0.0 424372 12780 ? S 15:52 0:00 /usr/sbin/apache2 -k start
www-data 27963 0.0 0.0 424372 12800 ? S 16:46 0:00 /usr/sbin/apache2 -k start
www-data 27964 0.0 0.0 423968 12500 ? S 16:46 0:00 /usr/sbin/apache2 -k start
www-data 28159 0.0 0.0 423968 12424 ? S 16:59 0:00 /usr/sbin/apache2 -k start
www-data 28607 0.0 0.0 423968 11044 ? S 17:19 0:00 /usr/sbin/apache2 -k start
ubuntu 28688 0.0 0.0 12948 956 pts/0 R+ 17:23 0:00 grep --color=auto apache
root 28766 0.0 0.2 423888 34928 ? Ss 2018 06:14 /usr/sbin/apache2 -k start
UPD: これは conf ファイルを削除する方法としては良くないことはわかっています。
答え1
@djsmiley2k が言ったように、Apache は起動時に設定ファイルが存在していれば、設定ファイルなしでも動作を続けます。そして、彼が言ったように、そしてあなたも知っているように、これは良い解決策ではありません。
とはいえ、apache2が仕事いや、そうではない...私はこう言うだろう」いいえ「」。
ほとんどのシステムでは、さまざまな理由から Apache が自動的に再起動され、Apache の設定が再ロードされます。たとえば、ログ ファイルがローテーションされると、通常 Apache が再起動されます。これらの自動化されたタスクの多くは、Apache ベースの Web サーバーが適切に動作するために必要です。設定ファイルの再作成も自動化する必要があります。つまり、パスワードを別の場所に保存する必要があり、その時点で設定ファイルを削除する目的が達成されません。
さらに、apache2 がクラッシュしたときなど、予定外の再起動が発生することもあります。Apache は安定していますが、万全ではありません。SOP では、Apache プロセスを監視し、ハングまたはクラッシュした場合に自動的に再起動する方法を用意します。多くの最新システムでは、このために systemd を使用しています。ここでも、再起動プロセスに構成ファイルの自動再構築を追加できますが、そうすると、そもそも構成ファイルを削除する目的が果たせなくなります。
ここでの本当の解決策は、機密データを保護することです。環境変数は、Apache プロセスを管理するために使用しているツールによって設定する必要があります。Systemd (例)提供する ツールこれに使用されます。ローカル認証暗号化され、Apache を実行しているユーザー (つまりroot
) のみが読み取り/書き込み可能なファイルに保存される必要があります。特に、Apache がファイルを読み取るユーザー (つまりwww-data
) は読み取り/書き込みできません。
リモート認証 (つまり、Web サーバーから別のサーバーまたはサービス (データベースなど) への認証) に使用するパスワードがある場合は、SSH 認証に使用するような事前共有の公開/秘密キーに置き換えることを検討する必要があります。リモート サーバー間の暗号化 (SSH トンネルなど、優れた機能) は言うまでもありません。繰り返しますが、Apache を起動する特権ユーザーのみがアクセスできるファイルに保存されます。また、正直なところ、Apache 自体が別のサービスへの認証タスクを処理するべきではありません。
答え2
あなたできるApache が起動したらファイルを削除します。その後、ファイルを再度読み取る必要があるまで (たとえば、デーモンを再起動した場合) Apache は実行を続けます。
これは、X->Y問題ですが、あなたは実際に問題を述べておらず、解決策と思われるものについて質問しただけです。しかし、それは推奨される解決策ではありません。
答え3
重要なデータを Apache conf ファイル内に直接保存しないという点には同意しますが、別のアイデアがあります。いかなる種類のパスワードも絶対に保存しないでください。
conf.d フォルダ内に独自の *.conf ファイルを作成できます。Apache は引き続きそれらを読み込みます。
次に、すべての重要なデータを新しい .conf ファイルに移行します。これで、削除して再構築するファイルは 1 つだけになります。
したがって、Apache には依然として利用可能な構成データがあり、空の Apache インストールとして起動することはありません。明らかに、documentRoot フォルダが最も重要です。