解决Mac 下使用 vagrant 搭建 Yii2 生成 assets 提示 「Permission denied」没有权限问题

Linux · forecho · 于 2年前 发布 · 3400 次阅读

自己在公司做了一个 vagrant 的 box,然后准备回家用在自己的 Mac 上的,同步开发环境。

但是安装好之后一直打开首页生成 assets 资源文件的时候一直提示 「Permission denied」没有权限问题。文件夹可以生成但是文件不能生成,很是奇怪。

我第一反应是给 assets 文件夹 所有权限:

sudo chmod -R 777 assets

但是一点效果也没有!甚至后来我把整个项目都给了所有权限还是不行。

然后接着找解决办法。

先通过 phpinfo() 查看 _SERVER["USER"] 的值是 www,通过 ll 命令查看项目文件夹的权限是 vagrant,然后通过命令去修改项目的权限组:

sudo chown -R www:www your_web_application_dir

然并卵,还是没有效果 :sob:,还是 vagrant 用户组。

后来小伙伴@Lonely 丢过来一篇文章,有点逆向思维,vagrant 有点特殊,改不了 文件夹的用户组,我们去改 nginx 的用户组和 PHP 的用户组。

修改 nginx 用户组:

sudo vim /alidata/server/nginx/conf/nginx.conf
# 修改为 vagrant
# user  www www;
user  vagrant vagrant;

记得去重启。

修改 PHP 用户组:

sudo vim /alidata/server/php/etc/php-fpm.conf
# 修改用户为nginx
# user = www
user = vagrant
# 修改组为 vagrant
# group = www
group = vagrant

记得去重启。

然后删除项目 assets 生成的空文件夹,重启访问项目首页,一切正常了。感谢帮助我的朋友。

最后补充一下,我使用的 box 是这个 https://github.com/forecho/vagrant-centos-6.5

参考文章;

共收到 0 条回复 Vagrant
没有找到数据。
添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册