在实时服务器上移动时,Laravel无法访问项目URL

时间:2015-01-06 15:15:38

标签: php laravel lamp

也许有人知道我的问题的解决方案。

在localhost中一切正常。

我买了vps服务器,安装了Ubuntu和LAMP堆栈。

现在将所有文件从localhost复制到实时服务器,抛出ftp。

我在网络浏览器中写了ip / public,我看到我的项目我的路径运行良好,但是如果我想要像ip / public / login这样的url它会抛出404错误。 (现在只在公共场所工作)

.htaccess在公共文件夹中很好。

现在我发现如果我写ip / public / index.php / login它运行良好,但我需要它在localhost中工作

2 个答案:

答案 0 :(得分:0)

尝试创建指向公用文件夹的符号链接,并将其用作项目的URL。例如,我的inspections文件夹中有一个名为/var/www/html的项目。如果我尝试访问http://url/inspections,则会收到错误消息:

403 Forbidden: You don't have permission to access /inspections/ on this server.

然而,在调用此命令后:

ln -s /var/www/html/inspections/public /var/www/html/insp

导航到http://url/insp页面显示正常,一切正常。

要记住的另一件事是app/storage需要具有写访问权限(至少)才能使Laravel正常工作。我通常只是这样做:

sudo chmod 777 -R app/storage

激活所有权限并从那里开始。希望有所帮助!

答案 1 :(得分:0)

您是否也检查过此服务器上是否启用了mod_rewrite? 可能没有为此文件夹定义覆盖?

尝试:

<?php in_array('mod_rewrite', apache_get_modules()); ?>

或者这个:

<?php die("Enabled: ". strpos(shell_exec('/usr/local/apache/bin/apachectl -l'), 'mod_rewrite') !== false); ?>

并检查虚拟主机文件中是否启用了Allowoverride。 文件的位置取决于操作系统和结构。

它应该看起来像这样:

Options Indexes FollowSymLinks
AllowOverride All
Require all granted