Debian 12 の apache2 サービスが私には適していないようです。そのディレクトリに存在しないようなapache2サブディレクトリの
ログに不満があります/var/log/apache2
。/var/log
一時的な修正は、sudo mkdir /var/log/apache2
Apacheサービスを再起動することでした。ただし、システムの再起動後にapache2サブディレクトリが保持されないため、apache2サブディレクトリを再作成するには再実行する/var/log
必要があります。mkdir
この/var/log/apache2ディレクトリを作成すると、私が直面していた問題を修正しました。 NETでは提供されていないこの問題に対するより恒久的なソリューションが必要です/var/log
。
systemctl start apache2はsudo権限で実行されますが、影響がないようで、/var/log/apache2
存在せずログも生成できないと文句を言って、指定されたディレクトリが生成されるまでサービスはまったく実行されません。
答え1
原因が何なのかわかりそうです。 Stacer はアプリケーションログファイルを削除するため、再起動時にディレクトリの欠落によりサービスが開始されません。だから最初はこれが再起動だと思いました。助けてくれてありがとう。
答え2
ディレクトリを削除しないでください/var/log/apache2/
。これを実行してディレクトリを削除する内容を参照して報告する必要がある場合:
mkdir -p /var/log/apache2
chown root:adm /var/log/apache2
chmod 750 /var/log/apache2
touch /var/log/apache2/.write-protect
chattr +i /var/log/apache2/.write-protect
これにより、ディレクトリが繰り返しまたは強制的に削除されるのを防ぎます。すべての試みは次の結果をもたらします。ファイルが変更不可能になって削除できないrm: cannot remove 'apache2/.write-protect': Operation not permitted
ためです。注:ディレクトリが空でないと削除できないため、.write-protect
ディレクトリ内の他のファイルの削除は防止されませんが、ファイル自体と親ディレクトリのみが削除されます。.write-protect
何がログディレクトリを削除しているか想像できませんが、何でも変更する必要があります。
私が考えることができる唯一の他の説明は、あなたのディレクトリまたはディレクトリが/var/log
tmpfs/var/log/apache2
からマウントされることです(想像できないようには見えませんが、確かにカスタマイズされています)。この場合、すべてが常に一時的であるため、apache2サービスユニットを変更する必要があります。ディレクトリが作成されたことを確認するには、次の手順を実行します。
systemctl stop apache2
systemctl disable apache2
cp /usr/lib/systemd/system/apache2.service /etc/systemd/system/my-apache2.service
/etc/systemd/system/my-apache2.service
以下で、次の行を編集して追加します[Service]
。
ExecStartPre=mkdir /var/log/apache2 && chown -R root:adm /var/log/apache2 && chmod 750 /var/log/apache2
コンテンツを保存して終了し、入力してsystemctl daemon-reload
入力してsystemctl start my-apache2
正しく開始されることを確認し、systemctl status my-apache2
正常に起動するとsystemctl enable my-apache2
毎回開始されます。