为什么Laravel Homestead无法运行Apache?

8

显然,我有一个Laravel项目,非常需要 .htaccess规则,而 Nginx 对我来说似乎不是最好的解决方案。

1- 我的问题是为什么 Laravel 没有提供带有 Apache 的 Homestead!经过我的一些小调查,我发现了一个在线工具可以将规则转换,但输出无法正常工作(太短),而且 Apache 更易于使用和定义安全规则、美化 URL 等等(至少对我而言)。

2- 请给我解释他们为什么选择 Nginx!更重要的是,我需要知道高级开发人员和专家将使用哪个(Nginx、Apache)。

3- 您建议我在 Homestead 上安装 Apache 吗?


1
步骤可以在这里找到:https://laracasts.com/discuss/channels/general-discussion/homestead-and-apache - Matt Burrow
3个回答

8
  1. Laravel Homestead目前可以使用您的Homestead.yaml文件安装Apache。

在您的站点中添加一个名为type的键。将其设置为apache,如下所示:

sites:
    - map: laravel.local
      to: "/home/vagrant/laravel"
      type: apache

请确保不要混淆apache和nginx,这样是行不通的。然后运行"vagrant up",安装apache并提供正确的配置文件。如果不起作用,请先确保更新到最新版本的homestead。以下是相关文章:https://www.nginx.com/blog/nginx-vs-apache-our-view/。简而言之,Nginx更快。只有在您有现有项目并且确实需要使用apache时,或者您的应用程序将在apache服务器上运行时才需要使用它。开始新项目?使用nginx。

1
那个看起来非常复杂的问题?我可以用12个字符解决它。 - Rebecca
1
让我感到困惑的是,Laravel自带.htaccess文件,而Homestead却不支持它们。在搜索了一个小时后,这个功能真的救了我。 - Adam

6
以下是步骤,单击此处进行详细说明。
  1. 通过SSH登录vagrant -> vagrant ssh

  2. 停止Nginx -> sudo service nginx stop

  3. 删除它 -> sudo apt-get purge nginx

  4. 更新你的repo源 -> sudo apt-get update

  5. 安装Apache -> sudo apt-get install apache2

  6. 重启Apache -> sudo service apache2 restart

现在你已经在Apache服务器上了,根据你的需求更新Apache配置文件即可。

1
在完成这个步骤后,我成功地配置了 sites-available/home/vagrant/Code 作为我的文档根目录。但现在的问题是,Apache显示的是PHP代码而不是执行它。经过研究,我发现这是因为PHP没有启用。问题是:如何在刚安装的Apache 2.4上启用PHP 5.6? - Marco Aurélio Deleu
@MarcoAurélioDeleu 请尝试按照此链接中的说明操作。否则,我建议您将问题作为标准SO问题提出。 - MartinJH
2
这个答案虽然有效,但不应被视为对所提出的问题的接受答案! - Brian
1
@BrianVanegasParra 你说得对。我并没有回答这三个问题中的任何一个,只是告诉如何配置Laravel适用于Apache。所以提问者应该随意选择更合适的答案来标记为解决方案。 - MartinJH
这并非必须的,只需在Homestead.yaml文件中指定服务器类型为“apache”即可。有关更多详细信息,请参见@martijn-imhoff的回答。 - leopinzon

2

你到底想干什么,也许我们可以为你的问题提供解决方案。在 Laravel 的路由处理这个问题上,不应该需要使用 .htaccess 重写 URL。

1) 不论使用哪种软件,如果你需要为每个特定项目配置 Web 服务器,最好去配置适用于该项目的 Vagrant 箱。

2) Nginx 的性能优于 Apache,并减少了许多不必要的臃肿。它也是 Forge 使用的,因此 Homestead 反过来使用它来模拟 Forge 环境。

3) 参见第1点,为该项目配置自己的 Vagrant 箱。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接