我最近通过FTP(Filezilla)将Laravel项目部署到我的实时Web服务器。在我的young1.org网络根文件夹中,我有子域文件夹预订,它在http://bookings.young1.org显示网页内容。在该文件夹中,我有一个包含整个laravel应用程序的文件夹'laravel',在该文件夹中有一个'public'目录。
我已经通过phpmyadmin将我的本地数据库导入到实时Web服务器上的一个数据库帐户,并且我已经将“DB”凭据切换为指向laravel项目根目录中env文件内的新数据库(更改以下变量:DB_DATABASE,DB_USERNAME,DB_PASSWORD)。
当我导航到http://bookings.young1.org/laravel/public时,我的应用程序的主页显示,很好,很花哨。但是,当我点击任何内部链接(例如登录和注册)按钮时,我只会得到一系列空白页面,而且没有任何内部页面出现。
有人能够猜出问题可能是什么吗?
我尝试将.htaccess文件更改为如下所示,并在public / index.php中更改我的'PATHS'变量。
谢谢,
罗伯特 英国伦敦
// public / .htaccess
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteBase /
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
// public / index.php
require DIR.'/../laravel/bootstrap/autoload.php';
$app = require_once DIR.'/../laravel/bootstrap/app.php';
答案 0 :(得分:0)
你在服务器上有SSH吗?如果是,你按照你应该安装laravel,也可以包含.env文件内容,你可以掩盖数据库用户名并传递你必须生成的密钥
不介意我的错误,我点击链接并得到SQL连接错误(拒绝)
我仍然需要知道你是否通过SSH安装了laravel,或者你只是将公共文件夹设置为root,因为如果是这样的话laravel无法帮助你(你需要一个VPS而不是一个webhost,据我所知,只支持FTP)
并且确定
小心!!!“
您有显示凭据的SQL连接错误
答案 1 :(得分:0)
请注意,如果您在其中使用index.php,则您的网址可以正常工作,即: http://bookings.young1.org/laravel/public/index.php/register
要允许没有index.php的网址,必须启用Apache Web服务器上的 mod_rewrite 模块。
首先尝试在Laravel的.htaccess文件中将此行添加到RewriteEngine On:
Options +FollowSymLinks
需要此指令才能在.htaccess上下文中启用mod_rewrite。
如果在此之后它没有工作,那么您可以检查您的Web服务器上是否启用了模块,最简单的方法是将其粘贴到公共文件夹中index.php的开头:
phpinfo();
然后打开任何页面并在页面上搜索mod_rewrite,看看是否可以在Loaded Modules下找到它。如果没有,你必须启用它。
为此,如果您可以通过SSH访问,则可以执行以下操作:
sudo a2enmod rewrite
sudo service apache2 restart
有关在Apache Web服务器上启用mod_rewrite的更多帮助,请选中this answer。