2012-01-20 2 views
2

キャッシュバックエンドを持つアプリケーションがあり、Webサーバーを再起動するたびにキャッシュをクリアします。Apache Webサーバーを再起動(開始)するときにシェルスクリプトを実行できますか?

Webサーバー(再)起動時にシェルスクリプトを実行するためのApache設定ディレクティブやその他の方法はありますか?

おかげで、 フィル

、すでにいくつかの回答で尋ねたとして、いくつかのより多くの情報を追加:

  • 基本システムは、この正確な状況では、ベースのLinux OFCです:CentOSの
  • は、起動スクリプトを変更します残念なことに、それぞれのRPMパッケージ内の設定ファイルではないため、既にコメントの1つによって指摘されているオプションはありません。そのため、アップデートによって置き換えられます。また、私は起動スクリプトを変更することは一般的に悪いことだと思います。
  • 「ウェブサーバーの再起動」と「アプリケーションキャッシュのクリア」の両方を実際に結びつけることは、私は他の選択肢を検討します
  • 私の状況は以下の通りです:私は仮想ホストの設定の様子を定義することができますが、残りのサーバ設定の外観を定義することはできません。
  • アプリケーションは実際にはPHPベースです(symfonyフレームワーク上で動作します)。 Symfonyは静的な設定ファイルで見つかったものから動的なphpファイルにたくさんのものをあらかじめコンパイルします。私たちはRPM経由でアプリケーションをデプロイしています。デプロイ後は、実際にWebサーバーの再起動が既に開始されているため、キャッシュクリーンアップを結びつけるのが理にかなっていると思います。しかし、私はあなたのフィードバックをすべて得た後、キャッシュクリーンアッププロセスをインストールプロセス自体に入れる方が良いと思われます。

答えて

2

を/etc/init.d/httpd chattrは+はApacheの再起動とキャッシュのクリアを処理するスクリプト。これは次のようになります:

#!/bin/sh 

# restart apache 
/etc/init.d/httpd graceful 

# whatever needs to be done to clear cache 
rm -rf /my/cache/dir 

RamyはApacheのシステム起動スクリプトを修正することを提案しています - これは悪い考えです!サーバー上でApacheを更新する場合、変更が失われる可能性があります。

ダークは、あなたがしようとしていることが間違っている可能性があり、彼は正しいと思います。実行しているプラ​​ットフォームは教えていませんが、ウェブサーバーの再起動とキャッシュのクリアは、実際に一緒に実行する必要がある状況はほとんどありません。

0

サーバへの(ルート)アクセス権がある場合は、シェルスクリプトでこれを行うことができますが、それがApacheの再起動に依存するキャッシュ管理の最良の方法であるかどうかを検討します。

1

Apache Web Serverの起動スクリプトを/etc/init.d/httpdに変更し、独自の構文を記述することができます。

私はあなたがここでは詳細の多くを提供していないので、それは具体的な答えを出すのは難しいですが、私はあなたの最良の選択肢で書くことであることを示唆している

関連する問題