【问题标题】:Starting with laravel on ubuntu从 ubuntu 上的 laravel 开始
【发布时间】:2012-08-12 11:24:35
【问题描述】:

我正在尝试将 laravel 作为 PHP 框架,我已经将 laravel zip 解压缩到 ~/opt/xampp/htdocs/laravel,但是当我转到 localhost/laravellocalhost/laravel 时,我收到一条 403 错误消息:

禁止访问!

您无权访问请求的对象。服务器要么读保护要么不可读。

我在某处读到我需要在 laravel 中编辑 storage 文件夹,以便它可以读写,所以我 chmod -R 766 laravel/storage 但仍然没有运气,我是从 Ubuntu 12.04 执行此操作的,有人遇到过这个吗?

编辑
我有chmod -R 0+w laravel/storage,现在当我转到localhost/laravel 时,我得到了其中一些文件的索引,但是当我转到localhost/laravel/public/ 时仍然得到403 错误,而不是预期的结果

编辑 2
我已经设置了chmod -R 765 laravel/public,现在当我到达localhost/laravel/public 时,我收到了这条消息,这让我相信我越来越近了:

警告:要求(/opt/lampp/htdocs/learning-laravel/laravel/laravel.php):无法打开流:/opt/lampp/htdocs/learning-laravel/public/index.php 中的权限被拒绝第 34 行

致命错误:require():在 /opt 中打开所需的 '/opt/lampp/htdocs/learning-laravel/laravel/laravel.php' (include_path='.:/opt/lampp/lib/php') 失败/lampp/htdocs/learning-laravel/public/index.php 在第 34 行

【问题讨论】:

  • 您是否尝试过为~/opt/xampp/htdocs/laravel提供适当的权限?
  • @OzairKafray 是的,还是没有运气

标签: php ubuntu laravel


【解决方案1】:

像这样更改存储和引导文件夹的权限

sudo chmod -R 777 ./storage ./bootstrap

【讨论】:

  • 永远不要将目录设置为777
【解决方案2】:

最终更新
我终于解决了,发生的事情是 laravel 文件夹被读保护,我要做的是设置 chmod 755 -R laravel 然后 chmod -R o+w storage 瞧,我已经启动并运行了 laravel,感谢所有贡献的人。

【讨论】:

  • 只是为了正确的语法:你需要写chmod -R 755 laravel ;-)
  • 我宁愿使用@Sirlate 的解决方案,因为通过您的解决方案,您基本上是在执行 chmod 757 -R 存储,这意味着任何人都可以读取和写入存储文件夹,其中包含会话、日志......还有书面。所以基本上我认为这是安全风险。因此,如果您的计算机上有访客帐户,即使您的姐姐也可以读取该文件夹。
【解决方案3】:

对于刚开始使用 laravel,我只需执行以下步骤:

sudo chmod -R 770 /your/path/to/laravel/folder/

然后将 www-data 组添加到您的 laravel 中

sudo chgrp -R www-data /your/path/to/laravel/folder/

【讨论】:

  • 谢谢,这使得从 Github/Bitbucket 进行部署变得更加顺畅。
【解决方案4】:

你在正确的轨道上,安装 laravel 后你需要确保存储目录具有正确的权限:

sudo chmod o+w storage 

然后确保您提供的是公用文件夹,而不是 apaches 文档根目录中的 laravel 文件夹

<VirtualHost *:80>
    DocumentRoot /Users/JonSnow/Sites/MySite/public
    ServerName mysite.dev
</VirtualHost>

两个要求都是covered here

【讨论】:

  • 我真的需要将虚拟主机添加到我的 apache 配置中吗?
  • @IsaacGonzalez - 你不需要添加虚拟主机号。从外观上看,您的权限似乎都被抬高了。把你到目前为止所做的事情扔掉,再次下载 laravel,解压到 ~/opt/xampp/htdocs/laravel 然后对存储目录运行一次权限更改
  • 我发现有必要递归地更改存储目录的权限。例如:sudo chmod -R o+w storage
【解决方案5】:

在 Laravel 论坛上,Kaspien 给出了这个有用的答案:

你必须 chmod 777,但只能在 storage/views 文件夹上使用刀片,这恰好是默认 Laravel 视图使用的视图引擎。在我开始一个项目之前,我通常在全新安装的 Laravel 上 chmod 777 all storage/* 目录,因为它们必须可写以用于视图、会话等。

来自线程:http://forums.laravel.com/viewtopic.php?id=1552

【讨论】:

    【解决方案6】:

    在您的 .htaccess 文件中:

    RewriteRule ^index.php(.*)$ /public/index.php [L]
    

    【讨论】:

    • 这假设 /laravel/laravel.php 实际上是可读的。这不会解决 OP 的问题。
    猜你喜欢
    • 1970-01-01
    • 2015-07-29
    • 2019-03-20
    • 2017-01-11
    • 1970-01-01
    • 2015-08-05
    • 1970-01-01
    • 2018-05-24
    • 1970-01-01
    相关资源
    最近更新 更多