我刚刚从本地服务器部署了一个 Laravel 8 项目到 LIFE 服务器,显然一切都很顺利,我成功运行了 Composer (
composer update
),Composer 没有抛出任何错误消息,LIFE 服务器的域是与文件夹/project/public
链接。我也成功运行了php artisan migrate
,我可以在数据库中看到artisan创建的表,因此应用程序与数据库正确连接。
我还将主项目文件夹的权限更改为755,存储文件夹的权限更改为777。
sudo chmod -R 777 ./storage
sudo chmod -R 777 ./bootstrap/cache/
sudo chmod -R 664 /mainprojectfolder
我成功地用artisan生成了新的KEY,并且我成功地用artisan清除了缓存...也就是说,我已经把网上找到的所有教程都看完了,但问题并没有解决。
php artisan key:generate
我还按照官方文档的建议成功清除了项目缓存:
php artisan config:cache
php artisan route:cache
php artisan view:cache
我还创建了
.htaccess
文件:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
当我浏览服务器 URL 时,我看到浏览器正确重定向到域/登录,这是正确的,只要我未登录,应用程序就会重定向到登录页面。然后浏览器就显示经典的:
500 Internal Server Error - The server encountered an internal error or misconfiguration and was unable to complete your request...
不幸的是,我无法访问服务器日志,因为该服务器是共享虚拟服务器,所以我无法弄清楚问题到底是什么。
大家可以推荐一下吗?
我经过多次尝试终于找到了解决方案,
.htaccess
文件错误,我交换了:
RewriteRule ^ index.php [L]
与:
RewriteRule ^ /index.php [L]
我在index.php之前添加了
/
。这已经解决了问题。
我在 public 文件夹中的 index.php 之前添加了 / 。这已经解决了问题。