关于php:Vagrant file_put_contents权限被拒绝

Vagrant file_put_contents permission denied

我似乎不允许在流浪者中使用权限。我试图运行importbuddy.php来迁移WordPress实例。我得到以下错误。

file_put_contents(/path/): failed to open stream: Permission denied

我在www目录上有777的设置权限,但这并没有改变。你知道怎么解决这个问题吗?


虽然递归地将文件夹和文件权限设置为777应该可以解决您的问题(此处的说明),但此问题的根源可能是文件和文件夹的所有权问题。

共享文件夹的所有者通常是"漂泊的",但是服务器本身(如果您使用Ubuntu)作为用户和组"www-data"运行。您可以通过ssh进入您的vm(vagrant ssh),导航到相关目录,并在控制台中输入ls -l来查看文件的用户/组。

如果您运行的是Apache,那么可以通过编辑以下文件(/etc/apache2/envvars)将用户更新为"vagrant",如下所示:

查找此分区

1
2
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data

把它改成

1
2
export APACHE_RUN_USER=vagrant
export APACHE_RUN_GROUP=vagrant

之后,只要确保重新启动apache(使用此命令sudo service apache2 restart),文件权限错误就应该得到修复。