摘要:所以使用下載安裝的方式。解決了,但警告還在,而且沒有正常運行。從警告信息發現可以訪問的目錄包括,剛好即在變量中,也屬于可以被腳本讀取的目錄,于是再運行,得到正確結果安裝成功
官方指引
很遺憾, phpunit還沒有在ArchLinux的倉庫里。
所以使用下載安裝的方式。按照官方的指引:
wget https://phar.phpunit.de/phpunit.phar chmod +x phpunit.phar sudo mv phpunit.phar /usr/local/bin/phpunit phpunit --version
結果得到下面的錯誤:
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啟用phar擴展
先解決Fatal error: Class "Phar" not found。
ls /usr/lib/php/modules
發現有 phar.so,說明Phar的擴展已經安裝,那么是不是該擴展沒有Enable呢?
打開 /etc/php/php.ini搜索 phar,果然發現 extension=phar.so被注釋掉了。去掉該行前面的 ;,保存php.ini,再次運行 phpunit --version。
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
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 protection tweak is a Safe Mode security measure that prevents users from opening files or scripts located outside of their home directory with PHP, unless the folder has specifically excluded. PHP open_basedir setting if enabled, will ensure that all file operations to be limited to files under certain directory, and thus prevent php scripts for a particular user from accessing files in unauthorized user’s account. When a script tries to open a file with, for example, fopen() or gzopen(), the location of the file is checked. When the file is outside the specified or permissible directory-tree, PHP will refuse to open it and the following errors may occur: ...
意思是說:php.ini中的open_basedir是php為保證安全進行文件訪問的設置。如果該選項被賦值,所有的文件操作將限定在特定的目錄里,這樣可以防止某個用戶使用php腳本讀取未授權的內容。當你想通過fopen或gzopen打開一個文件時,如果該文件的位置不再被允許的目錄下面,就會出現上述的警告信息。
從警告信息發現可以訪問的目錄包括 /srv/http/:/home/:/tmp/:/usr/share/pear/,剛好 ~/bin即在PATH變量中,也屬于可以被php腳本讀取的目錄,于是
mv /usr/local/bin/phpunit ~/bin
再運行phpunit --version,得到正確結果:
PHPUnit 4.5.0 by Sebastian Bergmann and contributors.
phpunit安裝成功!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/20938.html
背景:一個小腳本,保證穩定為主;所以試用了下phpunit,快捷方便 phpunit 的安裝 phpunit是一個輕量級的php單元測試框架,通過pear安裝安裝過程 wget https://phar.phpunit.de/phpunit.phar chmod +x phpunit.phar sudo mv phpunit.phar /usr/local/bin/phpunit phpunit ...
摘要:以前在學習開發時有專門寫過的單元測試的文章,開發學習之單元測試,今天再總結下怎么在中使用單元測試。是一個用編程語言開發的開源軟件,是一個單元測試框架。單元測試框架經常會包含每個測試的報告,以及給出你已經覆蓋到的代碼覆蓋率。 以前在學習IOS開發時有專門寫過Objective-C的單元測試的文章,IOS開發學習之單元測試,今天再總結下怎么在PHP中使用單元測試。 一、前言 在這篇文章中,...
摘要:介紹是最古老和最著名的單元測試包之一。它主要用于單元測試,這意味著可以用盡可能小的組件測試代碼,但是它也非常靈活,可以用于很多不僅僅是單元測試。這時,的測試助手可以使這些測試像單元測試簡單組件一樣容易。新的測試代碼如下注意到,在我們新建的 showImg(https://segmentfault.com/img/remote/1460000018355157?w=1440&h=585)...
閱讀 1174·2021-09-27 13:34
閱讀 981·2021-09-13 10:25
閱讀 511·2019-08-30 15:52
閱讀 3450·2019-08-30 13:48
閱讀 648·2019-08-30 11:07
閱讀 2167·2019-08-29 16:23
閱讀 1993·2019-08-29 13:51
閱讀 2328·2019-08-26 17:42