phpunitのインストールエラーの理由と解決策

WBOY
リリース: 2016-06-13 12:15:16
オリジナル
1259 人が閲覧しました

phpunit インストール エラーの理由と解決策

公式ガイドライン

残念ながら、phpunit はまだ ArchLinux ウェアハウスにありません。

そのため、ダウンロードしてインストールする方法を使用してください。公式ガイドラインに従います:

<code>wget https://phar.phpunit.de/phpunit.pharchmod +x phpunit.pharsudo mv phpunit.phar /usr/local/bin/phpunitphpunit --version</code>
ログイン後にコピー

結果は次のエラーになります:

<code>PHP Warning:  realpath(): open_basedir restriction in effect. File(/usr/local/bin/phpunit) is not within the allowed path(s): (/srv/http/:/home/:/tmp/:/usr/share/pear/) in /usr/local/bin/phpunit on line 3PHP Fatal error:  Class 'Phar' not found in /usr/local/bin/phpunit on line 714</code>
ログイン後にコピー

phar 拡張機能を有効にする

最初に解決してください Fatal error: Class 'Phar' not found

<code>ls /usr/lib/php/modules</code>
ログイン後にコピー

phar.so が見つかりました。これは、Phar 拡張機能がインストールされていることを意味します。つまり、拡張機能は有効になっていませんか?
/etc/php/php.ini を開いて phar を検索すると、案の定、extension=phar.so がコメントアウトされていることがわかりました。行の先頭にある ; を削除し、php.ini を保存して、phpunit --version を再度実行します。

<code>PHP Warning:  realpath(): open_basedir restriction in effect. File(/usr/local/bin/phpunit) is not within the allowed path(s): (/srv/http/:/home/:/tmp/:/usr/share/pear/) in /usr/local/bin/phpunit on line 3PHP Warning:  Phar::mapPhar(): open_basedir restriction in effect. File(/usr/local/bin/phpunit) is not within the allowed path(s): (/srv/http/:/home/:/tmp/:/usr/share/pear/) in /usr/local/bin/phpunit on line 714</code>
ログイン後にコピー

Fatal error解決しましたが、警告はまだ表示されており、phpunit が適切に実行されていません。

PHP のファイル アクセス保護メカニズム

Google で説明を見つけました: http://www.templatemonster.com/help/open_basedir-restriction-in-effect-filex-is - not-within-the-allowed-paths-y.html

PHP open_basedir 保護調整は、ユーザーがホーム ディレクトリの外にあるファイルやスクリプトを PHP で開けないようにするセーフ モードのセキュリティ対策です。 PHP の open_basedir 設定が有効になっている場合、すべてのファイル操作が特定のディレクトリ内のファイルに限定されるため、スクリプトを開こうとしたときに、特定のユーザーの PHP スクリプトがそのファイルにアクセスすることがなくなります。たとえば、fopen() または gzopen() を使用してファイルを開くと、ファイルの場所がチェックされます。ファイルが指定または許可されたディレクトリ ツリーの外にある場合、PHP はそのファイルを開くことを拒否し、次のエラーが発生する可能性があります。 ..

の意味: php.ini の open_basedir は、安全なファイル アクセスを確保するための PHP の設定です。このオプションが割り当てられている場合、すべてのファイル操作が特定のディレクトリに制限されるため、ユーザーは PHP スクリプトを使用して未承認のコンテンツを読み取ることができなくなります。 fopen または gzopen を通じてファイルを開こうとするときに、そのファイルが許可されなくなったディレクトリにある場合、上記の警告メッセージが表示されます。

警告メッセージから、アクセス可能なディレクトリに /srv/http/:/home/:/tmp/:/usr/share/pear/ が含まれていることがわかりました。たまたま ~/bin が PATH 変数にあり、PHP スクリプトで読み取ることができるディレクトリでもあるためです。

<code>mv /usr/local/bin/phpunit ~/bin</code>
ログイン後にコピー

phpunit --version を再度実行すると、正しい結果が得られます:

<code>PHPUnit 4.5.0 by Sebastian Bergmann and contributors.</code>
ログイン後にコピー

phpunit は正常にインストールされました!

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!