PHP がグローバル メモリにいくつかの定数を取得するように起動すると、いくつかのスクリプトを自動的にロード/実行するための設定はありますか。
また、ユーザー間でアクセスできるグローバル メモリはありますか? また、メモリについては、すべてのユーザーがアクセスできるメモリはありませんか? ある人が別の人がそれにアクセスするか、データベースの一時テーブル全体で何かを共有するために毎回ファイルを読み書きする必要があると設定しました。
驚いたPHPにはこれがありませんか?
ありがとう。
私の理解が正しければ、Apache の起動時に PHP でスクリプトを実行して、グローバルに共有される値を保存する必要があります。私が間違っている場合は、編集/コメントしてください。
簡単に言えば、いいえ、それはできません。PHP は、クライアントの要求を待って実行し続けるサーバーではありません。各 HTTP 要求を個別に処理します。
長い答えは次のとおりです。そうですね... auto_prepend_file を実行して、各リクエストでそれを行うことができます。簡単な bash スクリプトを作成し、それを使用して Apache を起動し、PHP スクリプトを呼び出すこともできますが、Apache では実行されません。
共有メモリに関しては、いくつかの選択肢があります。フラット ファイル、データベース、または memcached を使用すると、おそらく最も移植性が高くなります。一部のインストールでは、共有メモリ機能が有効になっていますが、保証されていません。
一部のサブシステム (APC 共有メモリや memcached など) を使用している場合は、起動スクリプトを編集することで、Apache の起動時にデータ生成スクリプトを自動的に実行できます ( /etc/init.d/[apache2|httpd]
)。例として、start|restart の直後にジェネレーター スクリプトに curl または wget リクエストを追加できます。
最初の「外部」リクエストで初期化されていない状態になる可能性は少しありますが、それを処理できると確信しています。