也许有人知道我的问题的解决方案。
在localhost中一切正常。
我买了vps服务器,安装了Ubuntu和LAMP堆栈。
现在将所有文件从localhost复制到实时服务器,抛出ftp。
我在网络浏览器中写了ip / public,我看到我的项目我的路径运行良好,但是如果我想要像ip / public / login这样的url它会抛出404错误。 (现在只在公共场所工作)
.htaccess在公共文件夹中很好。
现在我发现如果我写ip / public / index.php / login它运行良好,但我需要它在localhost中工作
答案 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