実行時設定

php.ini の設定により動作が変化します。

ファイルシステムおよびストリームの設定オプション
名前 デフォルト 変更可能 変更履歴
phar.readonly "1" PHP_INI_ALL  
phar.require_hash "1" PHP_INI_ALL  
phar.cache_list "" PHP_INI_SYSTEM  

以下に設定ディレクティブに関する 簡単な説明を示します。

phar.readonly bool

このオプションを使用すると、phar ストリームや Phar オブジェクトによる Phar アーカイブの作成や変更ができなくなります。 この設定は、実運用環境では常に有効にしておくべきです。 phar 拡張モジュールのこの機能は、 サーバー上に他のセキュリティ上の脆弱性があった場合に php ベースのウィルスを直接作成されてしまうことにつながります。

注意:

この設定は、php.ini でしか解除できません。 phar.readonly を php.ini で無効にした場合は、 ユーザーがスクリプト内で phar.readonly の有効/無効を切りかえることができます。 phar.readonly を php.ini で有効にした場合は、 スクリプト内でこれを "再度有効にする" ことはできますが、無効にすることはできません。

phar.require_hash bool

このオプションを使用すると、署名つき (現在サポートしているのは MD5、SHA1、SHA256、SHA512、および OpenSSL) の Phar アーカイブのみをオープンするようになります。 署名を含まない Phar アーカイブの処理はできません。

注意:

この設定は、セキュリティ上の理由により php.ini でしか解除できません。 phar.require_hash を php.ini で無効にした場合は、 ユーザーがスクリプト内で phar.require_hash の有効/無効を切りかえることができます。 phar.require_hash を php.ini で有効にした場合は、 スクリプト内でこれを "再度有効にする" ことはできますが、無効にすることはできません。

この設定は、 PharData クラスで通常の tar ファイルを読み込む際には影響を及ぼしません。

警告

phar.require_hash は、それ自体はセキュリティ上の機能を提供しません。 壊れた Pharアーカイブを誤って実行することへの備えでしかありません。 Phar を改ざんできる人は、シグネチャを後で簡単に修正できてしまうからです。

phar.cache_list string

phar アーカイブをウェブサーバーの起動時に事前にパースさせるようにします。 これによりパフォーマンスが向上し、 ディスク上に配置した伝統的なファイルに近い速度で実行することができます。

例1 phar.cache_list の使用例

php.ini (windows):
phar.cache_list =C:\path\to\phar1.phar;C:\path\to\phar2.phar
php.ini (unix):
phar.cache_list =/path/to/phar1.phar:/path/to/phar2.phar