很遗憾, phpunit尚未在ArchLinux的仓库里。php
因此使用下载安装的方式。按照官方的指引:html
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
先解决Fatal error: Class 'Phar' not found
。less
ls /usr/lib/php/modules
发现有 phar.so,说明Phar的扩展已经安装,那么是否是该扩展没有Enable呢?
打开 /etc/php/php.ini
搜索 phar
,果真发现 extension=phar.so
被注释掉了。去掉该行前面的 ;
,保存php.ini,再次运行 phpunit --version
。ide
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没有正常运行。google
google之,发现这里有解释: http://www.templatemonster.com/help/open_basedir-restriction-in-effect-filex-is-not-within-the-allowed-paths-y.htmlrest
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: ...code
意思是说:php.ini中的open_basedir
是php为保证安全进行文件访问的设置。若是该选项被赋值,全部的文件操做将限定在特定的目录里,这样能够防止某个用户使用php脚本读取未受权的内容。当你想经过fopen
或gzopen
打开一个文件时,若是该文件的位置再也不被容许的目录下面,就会出现上述的警告信息。htm
从警告信息发现能够访问的目录包括 /srv/http/:/home/:/tmp/:/usr/share/pear/
,恰好 ~/bin
即在PATH变量中,也属于能够被php脚本读取的目录,因而ip
mv /usr/local/bin/phpunit ~/bin
再运行phpunit --version
,获得正确结果:
PHPUnit 4.5.0 by Sebastian Bergmann and contributors.
phpunit安装成功!