2017-01-09 136 views
0

我有laravel和运行在我的Ubuntu 16.04 LTS和安装laravel在/ var/www /但是,我关心为什么我必须sudo对文件夹文件进行任何更改有点烦人,因为我必须在我的目录中运行sudo subl .才能工作。Laravel安装与sudo权限

不幸的是,我也安装了sudo composer,只有当我意识到这是一个坏的举动。

有没有办法移动我的安装程序,以便我不必编辑修改或有更好的方法来做到这一点?我应该卸载,删除目录并从usr文件夹或local folder重新开始。

此外我不能运行gulp从这个目录是我的home/node_modules。我是否应该重新开始并在我的主目录中保留一个文件夹,或者是否有更好的方法在var/www/中执行此操作?

回答

0

你不需要使用sudo(根)做做任何事情,如提供页面,或者更糟糕的是,停止使用root来做类似于你的服务器的事情,你做的越多,服务器变得越安全。你只需要确保Web服务器可以访问您的文件(主要是阅读权),所以两件事情可能发生在这里:

1)将您的文件在你的网络服务器(WWW的数据)做可读

DIRECTORY=/var/www/yourapp 

YOUR_USER=antoniocarlos 

sudo find $DIRECTORY -type d -exec sudo chmod 750 {} \; 

sudo find $DIRECTORY -type f -exec sudo chmod 640 {} \; 

2)确保的存储路径是由该组

sudo find $DIRECTORY/storage -type d -exec sudo chmod 770 {} \; 

sudo find $DIRECTORY/storage -type f -exec sudo chmod 660 {} \; 

3)确保文件夹是由正确的用户和组

sudo chown -R $YOUR_USER:www-data $DIRECTORY 
拥有可写

那么你应该能够只是不喜欢

composer require package/name 

php artisan make:whatever 

所有的事情没有sudo,和你的网络服务器也将被服务页面。

+0

这看起来正确howevr我得到一个错误传递'-exec'如同说那里'发现:缺少参数-exec'' – m33bo

+0

你也可以使用'chmod -R',它只是一个chmod,队友,你可以做任何你想要的 –

+0

你有没有定义DIRECTORY变量? –

0

你必须www文件夹的所有者更改为你的用户像这样

须藤乔敦 - R的you_user:your_user在/ var/WWW