0

PHPとsuphpを備えたApacheを備えたLinux上のサーバーを管理しています。ほとんどのセットアップと同様に、現在、すべてのプログラム ファイルはディスクに保存されています。

RAMからsuphpを実行したい。次に、suphp フォルダー内のすべて (構成ファイル、フォルダー、およびプログラムの合計で約 2.8MB) を RAM にコピーしました。次に、ディスク上で、フォルダーの名前を変更して、古いバージョンにアクセスできないようにしました。-a スイッチを cp と共に使用して、アクセス許可などを保持しました。

その後、2 回試みましたが、いずれも失敗に終わりました。

まず、ram の suphp フォルダーを指す suphp という名前のリンクを (ln -s を使用して) 作成します。次に、ファイル/フォルダー構造をブラウズすると、セットアップが機能する準備ができているかのように、他のすべてが同じように見えます。

それが機能しなかったので、suphp シンボリック リンクを削除してから、空の suphp フォルダーを作成し、それを (mount --bind を使用して) RAM の suphp フォルダーにマウント バインドすることで、別の試みを行いました。それもうまくいきませんでした。

次に、Apache の error_log を確認しました。この手順を試行している間、元のセットアップを復元するまでの間、すべてに共通する次のようなテキストを含むさまざまなエラー メッセージが表示されました。

「(2)そのようなファイルまたはディレクトリはありません: 子プロセスを作成できませんでした: (suphp フォルダーの場所)/sbin/suphp for (web サイト上の php ファイルへのフルパス)」.

私を困惑させているのは、他のエラーではなく、そのようなファイルやディレクトリが報告されないのはなぜですか...

4

1 に答える 1

0

suPHP は Apache モジュール (mod_suPHP) であるため、Apache によって RAM にロードされます。実際のファイル/実行可能ファイルをシステムの「ram」ディレクトリに移動して、行ったようにシンボリックリンクを設定する理由はありません。

PHP スクリプトをメモリに保持することが目的の場合は、5.5 または apc に組み込まれているような opcache の使用を検討してください。「PHP OPCache の使用方法」を参照してください。

于 2014-07-22T02:09:27.117 に答える