【问题标题】:Laravel 5.2 project - deployment on LinuxLaravel 5.2 项目——Linux 上的部署
【发布时间】:2016-05-25 12:24:31
【问题描述】:

我正在 Laravel 5.2 上开发一个应用程序。我完成了在 linux 服务器上的开发和部署应用程序。 我使用 git 移动了源代码并执行了迁移。我可以看到所有内容,但是当我访问项目(任何 url)时,它会出现 404 错误。

The requested URL /project_name/public/ROUTE_NAME was not found on this server.

我检查了 apache 日志,他们说

Wed May 25 17:17:15 2016] [error] [client 172.16.17.15] File does not exist: /var/www/html/project_name/public/ROUTE_NAME

让我知道你的想法。

【问题讨论】:

  • 服务器上有mod_rewrite吗?
  • @VasilShaddix 想知道它,让我知道我需要检查什么。我一直在其他框架上部署应用程序开发人员,但这是第一次在 laravel 上。
  • 您点击的网址显示您的路线文件
  • @Pradeep 我的 routes.php 中有路由,相同的代码在 linux 上运行良好。我猜这与重写有关。我没有修改 apache conf
  • @VasilShaddix 谢谢你的工作..如果你把你的评论写成答案,我可以投票给你

标签: php git laravel-5.2


【解决方案1】:

可能的问题是apache上缺少模块mod_rewrite。

https://httpd.apache.org/docs/current/mod/mod_rewrite.html

laravel 的路由系统就是在它上面工作的。它只需要你的 url 并且它很神奇。但是没有这个模式就不行了。

在你的公用文件夹中的 index.php 中尝试

phpinfo();die();

查看您是否已激活该模式。

如果模式未激活,您可以按照此说明进行操作

https://stackoverflow.com/a/24354757/4969969

无需修改服务器的整个文档根文件夹:

DocumentRoot "/var/www/html/" .... <Directory "/var/www/html/project_name/public"> Allowoverride All </Directory>

【讨论】:

  • 我检查了 phpinfo,我可以在 Loaded Modules 中看到 mod_rewrite
  • 可以试试在浏览器中运行/public/index.php/ROUTE_NAME 吗?
  • 你的问题是 mod_rewrite。你可以看看stackoverflow.com/a/24354757/4969969这个答案。我认为解释得很好。
猜你喜欢
  • 2016-11-12
  • 2017-01-26
  • 2021-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-13
  • 1970-01-01
  • 2016-10-07
相关资源
最近更新 更多