我已经创建了一个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
任何帮助?
答案 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/