Laravel 9 Ubuntu持续权限错误



我已经在Ubuntu服务器20.04上部署了我的Laravel应用程序,除了权限问题外,我什么都没有。该应用程序本身可以工作,我可以在localhost上查看它(我不需要它可以公开访问。(

但无论我做什么,它都会喷出文件权限错误,这完全没有意义。

  1. 是否尝试运行composer命令?这是权限错误
  2. 试试git pull?这是权限错误
  3. 尝试记录它为什么有权限错误?这也是一个权限错误
  4. 尝试从我的网站导出电子表格并存储它?这也是一个权限错误
  5. 在整个站点目录上禁用的chmod 777是否存在权限错误?它仍然抱怨权限问题
  6. 即使在90%的时间里以sudo的方式运行命令,也会给我一些保姆式的信息,告诉我如何";不应该这样做"并且拒绝让我进步,即使我这么做有一个完全合理的理由,而且在它允许我运行它的10%的时间里,你猜怎么着,这仍然是权限错误

我真的不明白怎么会有人保持理智并设置这个。我完全遵循了每个人在stackoverflow上关于创建新用户、将其添加到www-data等主题的建议,但它拒绝授予权限。当试图进行故障排除时,由于这些愚蠢的权限错误,什么都不可能,每个人都会说";暂时地";chmod 777,我已经尝试过了,显然甚至给777的权限仍然不够高?

我已经删除了我的Ubuntu安装两次,并逐字逐句地遵循了多个不同的在线指南,我只是不明白了。有人能提供一些见解吗?我不明白为什么要这么难,因为大约一年前,我在Ubuntu上安装了一个Laravel应用程序,花了大约30分钟的时间才让它完全运行,没有出现任何问题。

只是为了向任何观看此讨论的人说明显而易见的。。。。如果您授予任何文件夹777权限,则表示您允许任何人读取、写入和执行该目录中的任何文件。

如果您将文件夹权限设置为777,那么您已经向任何能够找到该目录的人打开了服务器。足够清晰??:(

基本上有两种方法可以设置您的所有权和权限。要么你赋予自己所有权,要么你让网络服务器成为所有文件的所有者。

作为所有者的网络服务器(大多数人的做法,以及Laravel医生的做法(:

假设www数据(可能是其他数据(是您的Web服务器用户。

sudo chown -R www-data:www-data /path/to/your/laravel/root/directory

如果你这样做,网络服务器拥有所有文件,也是该组,你将在上传文件或通过FTP处理文件时遇到一些问题,因为你的FTP客户端将以你的身份登录,而不是你的网络服务器,所以将你的用户添加到网络服务器用户组:

sudo usermod -a -G www-data ubuntu

当然,这假设您的Web服务器以www数据运行(Homestead默认值(,并且您的用户是ubuntu(如果您使用Homestead,则它是流浪者(。

然后您将所有目录设置为755,将文件设置为644…

设置文件权限

sudo find/path/to/your/lavel/root/directory-type f-exec chmod 644{};

设置目录权限

sudo find/path/to/your/lavel/root/directory-type d-exec chmod 755{};

您的用户作为所有者

我更喜欢拥有所有的目录和文件(这让处理一切都变得更容易(,所以,转到你的laravel根目录:

cd /var/www/html/laravel  // assuming this is your current root directory
sudo chown -R $USER:www-data .

然后我给自己和网络服务器权限:

sudo find . -type f -exec chmod 664 {} ;   
sudo find . -type d -exec chmod 775 {} ;

然后授予Web服务器对存储和缓存的读写权限

无论你以何种方式设置它,你都需要为网络服务器提供读取和写入权限,以便存储、缓存以及网络服务器需要上传或写入的任何其他目录(取决于你的情况(,所以运行上面bashy的命令:

sudo chgrp-R www数据存储引导程序/缓存sudo chmod-R ug+rwx存储引导程序/缓存

这是多个答案的组合,我在电脑上有一个txt文件,每次部署时都会使用它。

相关内容

  • 没有找到相关文章

最新更新