Heim > Backend-Entwicklung > PHP-Tutorial > Gründe und Lösungen für PHPUnit-Installationsfehler

Gründe und Lösungen für PHPUnit-Installationsfehler

WBOY
Freigeben: 2016-08-08 09:29:50
Original
1342 Leute haben es durchsucht

Offizielle Richtlinien

Leider ist phpunit noch nicht im ArchLinux-Repository.

Verwenden Sie also die Download- und Installationsmethode. Befolgen Sie die offiziellen Richtlinien:

<code>wget https://phar.phpunit.de/phpunit.phar
chmod +x phpunit.phar
sudo mv phpunit.phar /usr/local/bin/phpunit
phpunit --version</code>
Nach dem Login kopieren

Das Ergebnis ist der folgende Fehler:

<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 3
PHP Fatal error:  Class 'Phar' not found in /usr/local/bin/phpunit on line 714</code>
Nach dem Login kopieren

Phar-Erweiterung aktivieren

Lösen Sie es zuerstFatal error: Class 'Phar' not found.

<code>ls /usr/lib/php/modules</code>
Nach dem Login kopieren

phar.so gefunden, was bedeutet, dass die Phar-Erweiterung installiert wurde. Ist die Erweiterung also nicht aktiviert?
Öffnen Sie /etc/php/php.ini und suchen Sie nach phar, und tatsächlich habe ich festgestellt, dass extension=phar.so auskommentiert war. Entfernen Sie das ; vor der Zeile, speichern Sie php.ini und führen Sie phpunit --version erneut aus.

<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 3
PHP 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>
Nach dem Login kopieren

Fatal errorGelöst, aber die Warnung ist immer noch da und phpunit läuft nicht richtig.

PHP-Schutzmechanismus für den Dateizugriff

Google und hier eine Erklärung gefunden: http://www.templatemonster.com/help/open_basedir-restriction-in-effect-filex-is-not-within-the-allowed-paths-y.html

PHP open_basedir-Schutzoptimierung ist eine Sicherheitsmaßnahme im abgesicherten Modus, die Benutzer daran hindert, Dateien oder Skripte, die sich außerhalb ihres Home-Verzeichnisses befinden, mit PHP zu öffnen, es sei denn, der Ordner hat die PHP-open_basedir-Einstellung ausdrücklich ausgeschlossen und stellt sicher, dass alle Dateivorgänge ausgeführt werden auf Dateien in einem bestimmten Verzeichnis beschränkt sein und so verhindern, dass PHP-Skripte für einen bestimmten Benutzer auf Dateien im Konto eines nicht autorisierten Benutzers zugreifen. Wenn ein Skript versucht, eine Datei beispielsweise mit fopen() oder gzopen() zu öffnen, wird der Speicherort der Datei wird überprüft. Wenn die Datei außerhalb des angegebenen oder zulässigen Verzeichnisbaums liegt, weigert sich PHP, sie zu öffnen, und es können folgende Fehler auftreten: ...

bedeutet: open_basedir in php.ini ist die Einstellung von PHP, um einen sicheren Dateizugriff zu gewährleisten. Wenn diese Option zugewiesen ist, werden alle Dateivorgänge auf bestimmte Verzeichnisse beschränkt, wodurch verhindert wird, dass ein Benutzer ein PHP-Skript verwendet, um nicht autorisierte Inhalte zu lesen. Wenn Sie eine Datei über fopen oder gzopen öffnen möchten und sich die Datei in einem Verzeichnis befindet, das nicht mehr zulässig ist, wird die obige Warnmeldung angezeigt.

Aus der Warnmeldung geht hervor, dass zu den zugänglichen Verzeichnissen /srv/http/:/home/:/tmp/:/usr/share/pear/ gehört. Zufälligerweise befindet sich ~/bin in der PATH-Variablen und ist auch ein Verzeichnis, das vom PHP-Skript gelesen werden kann, also

<code>mv /usr/local/bin/phpunit ~/bin</code>
Nach dem Login kopieren

Führen Sie phpunit --version erneut aus, um das richtige Ergebnis zu erhalten:

<code>PHPUnit 4.5.0 by Sebastian Bergmann and contributors.</code>
Nach dem Login kopieren

phpunit erfolgreich installiert!

Das Obige stellt die Ursachen und Lösungen von PHPUnit-Installationsfehlern vor, einschließlich der relevanten Inhalte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage