1

ステージングと開発の 3 つのサイトがライブであり、開発サイトにはライブとデータベースのコピーからのすべてのファイルのコピーがありますが、両方が同じ物理サーバー上にあるため (ステージングと開発)、開発からライブにファイルをシンリンクしたい (それは 30GB です) しかし、私の php スクリプトは、パス内の 1 つのディレクトリがシンボリック リンクであるファイルを開くことができません。

私はシンボリックリンクを持っています

/srv/www/staging.server.com/htdocs/people/ to /srv/www/dev.server.com/htdocs/people/

コマンドラインとブラウザから/srv/www/dev.server.com/htdocs/people/gnokii/zuluwarrior.svg(で)アクセスできるサンプルファイルがありますが、phpはそのファイルを開くことができません。/srv/www/staging.server.com/htdocs/people/zuluwarrior.svg

file_existsfalse をfile返し、空の配列を返します。(ライブサーバーと開発サーバーの両方で機能するが、このためステージングでは機能しない、svgをpngに変換するコードがあります)。

synlinks を無効にする php 設定はありますか? 見つけましsuhosin.executor.allow_symlink = Offたが、スクリプトを実行するためだと思います。これを修正する方法はありますか?

4

1 に答える 1

2

base_dirが'/srv/www/staging.server.com'suhosin.executor.allow_symlinkに設定され、Offに設定された理由が見つかりました

このフラグは、open_basedirが使用されている場合にsymlink()を再アクティブ化します。これは、Suhosin>=0.9.6ではデフォルトで無効になっています。open_basedirの使用中にsymlink()を許可することは、実際にはセキュリティ上のリスクです。

于 2012-07-19T21:20:27.797 に答える