上传后Laravel 4.2项目无法正常工作 - 公共文件夹在浏览器中不可见

时间:2015-08-21 15:45:29

标签: .htaccess laravel laravel-4

我已经创建了一个laravel项目,该项目在localhost和我的托管服务器上正常运行但是当我在客户端的服务器上传它时,它只是不起作用(他正在使用bluehost的)。

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

当我尝试在浏览器中打开 myurl.com/public myurl.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查看公开文件夹,并且我已将 for / app / storage 的权限更改为 777

这是我的公开/ .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

任何帮助?

3 个答案:

答案 0 :(得分:2)

问题在于您的PHP版本。如果你看到你的PHP版本,你可能会得到你的应用程序的错误。您必须使用大于PHP 5.5的版本

答案 1 :(得分:1)

好的,我联系了客户的托管公司并要求他们升级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>

干杯

答案 2 :(得分:0)

将权限更改为777是一个可怕的想法,因为它会容易受到攻击,而是尝试使用BEGIN TRY BACKUP DATABASE @databaseName TO DISK = @filename WITH COMPRESSION; END TRY BEGIN CATCH BACKUP DATABASE @databaseName TO DISK = @filename; END CATCH ,其中project是项目文件夹的名称,然后执行下一个sudo chmod -R 775 project/以使项目的文件夹成为您的用户拥有,最后,如果您还没有这样做,请进入项目的文件夹并运行sudo chown -R $USER:$USER project/