【问题标题】:Laravel 4.2 project not working after uploading - public folder not visible in browser上传后 Laravel 4.2 项目无法正常工作 - 公共文件夹在浏览器中不可见
【发布时间】:2015-11-15 15:24:32
【问题描述】:

我创建了一个 laravel 项目,该项目在 localhost 和我的托管服务器上运行良好,但是当我将它上传到客户端的服务器上时它就无法正常工作(他使用的是 bluehost)。

当我打开指向 /public 文件夹的 URL 时,它应该会显示主页。相反,它显示了所有文件和文件夹的列表(public 文件夹除外)。

当我尝试在浏览器中打开 myurl.com/publicmyurl.com/public/index.php 时,出现以下错误:

Forbidden
You don't have permission to access /license/public/ on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

我可以通过 FTP 看到 public 文件夹,并且我已将 /app/storage 的权限更改为 777

这是我的 public/.htaccess

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes...
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

我检查了我的 /public/error_log,它显示以下错误:

[21-Aug-2015 09:06:01] PHP Fatal error:  require() [<a href='function.require'>function.require</a>]: Failed opening required '__DIR__/../bootstrap/autoload.php' (include_path='.:/usr/lib64/php:/usr/share/pear') in /home6/parentv3/public_html/eldercareapp/license/public/index.php on line 21

有什么帮助吗?

【问题讨论】:

  • 这可能会让人觉得很愚蠢,但你做到了吗composer install
  • 是的,当然
  • 服务器上的PHP版本是多少?
  • @AdityaGiri 我很惊讶为什么我没有想到它。刚刚检查了服务器上的 PHP 版本及其 5.2.17。这就是所有这些混乱的原因。谢谢。
  • 可以在这台服务器上升级 PHP 吗?它的 BlueHost,可以通过 cPanel 完成,还是我必须联系托管公司的支持?

标签: .htaccess laravel laravel-4


【解决方案1】:

将权限更改为 777 是一个糟糕的主意,因为它很容易受到攻击,请尝试使用 sudo chmod -R 775 project/ 其中 project 是项目文件夹的名称,然后执行下一个 sudo chown -R $USER:$USER project/ 以使项目文件夹归您的用户所有,最后,如果你还没有这样做,cd 到项目的文件夹并运行composer install

【讨论】:

  • 试过 'sudo chmod -R 777 project_name/' 并且也已经做了 'composer install'。仍然没有运气.. :(
  • 您将项目的文件夹放在哪里?也许 apache 服务器没有为它存储的路由提供服务
  • 问题出在我的客户托管公司,他们正在运行 PHP 5.2 版。我已经联系他们升级 php 版本。
  • 哦,我明白了,我很高兴现在一切都好 :)
【解决方案2】:

问题在于您的 PHP 版本。如果您看到您的 PHP 版本,您可能会发现您的应用程序有什么问题。您必须使用高于 PHP 5.5 的版本

【讨论】:

    【解决方案3】:

    好的,我已经联系了客户的托管公司并要求他们升级 PHP 版本。他们花了几天时间将 PHP 升级到 5.5。

    但即使在更新 PHP 之后问题仍然存在。我无法访问 /public 文件夹,所以问题出在其他地方。经过一番搜索和尝试,我找到了解决方案。

    问题实际上出在我的 /public/.htaccess 文件中。我在 .htaccess 中只添加了一行,它解决了问题:Options +FollowSymLinks

    我在 /public 中更新的 .htaccess 现在看起来像:

    <IfModule mod_rewrite.c>
        <IfModule mod_negotiation.c>
            Options -MultiViews
        </IfModule>
    
        Options +FollowSymLinks
        RewriteEngine On
    
        # Redirect Trailing Slashes...
        RewriteRule ^(.*)/$ /$1 [L,R=301]
    
        # Handle Front Controller...
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^ index.php [L]
    </IfModule>
    

    干杯

    【讨论】:

      猜你喜欢
      • 2020-07-29
      • 2018-01-29
      • 2015-06-19
      • 1970-01-01
      • 1970-01-01
      • 2012-04-17
      • 2017-04-21
      • 2015-11-06
      • 2015-02-22
      相关资源
      最近更新 更多