Laravel在实时服务器上移动项目时无法转到项目URL


Laravel can't go to projects url when move it on live server

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

在本地主机中一切正常。

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

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

我在 Web 浏览器中编写 ip/public,我看到我的项目我的路径运行良好,但如果我想转到像 ip/public/login 这样的 url,它会抛出 404 错误。(现在只工作公共地址)

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

现在我发现如果我写ip/public/index.php/login,它工作得很好,但我需要它像在本地主机中一样工作

尝试创建指向公用文件夹的符号链接,并将其用作项目的 URL。例如,我的/var/www/html文件夹中有一个名为 inspections 的项目。如果我尝试访问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

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

您是否还

检查了此服务器上是否启用了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); ?>

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

它应该看起来像这样:

Options Indexes FollowSymLinks
AllowOverride All
Require all granted