如何在laravel项目中运行vendor/bin/phpunit时修复权限被拒绝

Jin*_*zoe 2 php phpunit laravel

每当我vendor/bin/phpunit在laravel项目的根路径中执行时,它都会返回Permission denied错误.我该如何解决这个问题?

重要提示:我不想使用composer update或删除部分或全部vendor/目录然后使用,composer install因为这些方法会改变太多文件,我的主人不会同意.

ps:lrwxrwxrwx 1工作26 Jul 21 07:10 phpunit - > ../phpunit/phpunit/phpunit

-rwxrwxrwx 1 work work 1199 Jul 22 08:19 ./vendor/phpunit/phpunit/phpunit

并且 chmod 775 -R vendor不起作用.

Jul*_*ber 13

你应该做的是用php调用:

$ php ./vendor/bin/phpunit
PHPUnit 4.8.35 by Sebastian Bergmann and contributors.
Run Code Online (Sandbox Code Playgroud)

嗨有同样的错误绑定执行它没有PHP解释器:

$ ./vendor/bin/phpunit
bash: ./vendor/bin/phpunit: Permission denied
Run Code Online (Sandbox Code Playgroud)

希望这对你有所帮助.


Rob*_*tme 7

删除vendor文件夹并做composer install对我有用。


Bab*_*emi 5

您可以通过更新您的设置的 Vagrantfile 来解决这个问题,尤其fmode是您的 web 根synced_folder文件夹。

改变:

config.vm.synced_folder ".", "/vagrant", :mount_options => ["dmode=777", "fmode=666"]
Run Code Online (Sandbox Code Playgroud)

到 :

config.vm.synced_folder ".", "/vagrant", :mount_options => ["dmode=777", "fmode=777"]
Run Code Online (Sandbox Code Playgroud)

对于苏格兰威士忌,

改变:

config.vm.synced_folder ".", "/var/www", :mount_options => ["dmode=777", "fmode=666"]
Run Code Online (Sandbox Code Playgroud)

到 :

config.vm.synced_folder ".", "/var/www", :mount_options => ["dmode=777", "fmode=777"]
Run Code Online (Sandbox Code Playgroud)

执行此操作后,重新加载您的配置:

$ vagrant reload
Run Code Online (Sandbox Code Playgroud)


Poi*_*oiz 1

尝试打开终端并发出命令:第一个带有 -R 标志的命令意味着更改子目录的权限 - R ecursive

sudo chmod 777 -R PATH_TO/vendor

sudo chmod 777 PATH_TO/vendor/phpunit/phpunit

sudo chmod 777 PATH_TO/vendor/phpunit/phpunit/phpunit && chmod +x PATH_TO/vendor/phpunit/phpunit/phpunit 
Run Code Online (Sandbox Code Playgroud)