为啥 laravel homestead 没有运行 Apache
Posted
技术标签:
【中文标题】为啥 laravel homestead 没有运行 Apache【英文标题】:Why laravel homestead is not running Apache为什么 laravel homestead 没有运行 Apache 【发布时间】:2015-04-25 19:30:27 【问题描述】:显然,我的 Laravel 项目确实需要 .htaccess
规则,而 nginx 对我来说似乎不是最佳解决方案,
1- 我的问题是为什么 Laravel 没有为 Apache 提供宅基地! 经过我进行的一项小型研究,我发现 online tool 用于转换规则,但输出不起作用(太短),而 Apache 更可能是已知和可用的,而且它更容易为安全和漂亮的 URL 定义规则..等等。 (至少对我来说)
2- 请给我答案,解释他们为什么选择 Nginx!,更重要的是我需要知道老年人和专家将使用什么(Nginx、Apache)
3- 你建议我在 Homestead 上安装 Apache 吗?
【问题讨论】:
一步一步可以找到here 【参考方案1】:-
Laravel homestead 目前可以使用 Homestead.yaml 文件安装 apache。
为您的网站添加一个名为type
的密钥。将其设置为apache
。像这样:
sites:
- map: laravel.local
to: "/home/vagrant/laravel"
type: apache
确保不要把 apache 和 nginx 混为一谈,那是行不通的。
然后运行 vagrant up
并安装 apache 并提供正确的配置文件。
如果还是不行,那么先确保update到最新版的宅基地。
这是一篇关于此事的有趣文章:https://www.nginx.com/blog/nginx-vs-apache-our-view/。 TLDR:Nginx 更快。
仅当您有一个现有项目并且确实需要使用 apache 时。或者,如果您的应用程序将在 apache 服务器上运行。重新开始?使用 nginx。
【讨论】:
那个看起来很复杂的问题?我可以用 12 个字符解决它。 令我惊讶的是,Laravel 带有 .htaccess 文件,而 Homestead 不支持开箱即用。经过一个小时的搜索,这救了我的培根。【参考方案2】:步骤如下here。
SSH 进入 vagrant -> vagrant ssh
停止 Nginx -> sudo service nginx stop
删除它 -> sudo apt-get purge nginx
更新你的 repos -> sudo apt-get update
安装 apache -> sudo apt-get install apache2
重启->sudo service apache2 restart
您现在在 Apache 服务器上,根据需要更新 apache conf 文件。
【讨论】:
完成此操作后,我设法将sites-available
和/home/vagrant/Code
配置为我的文档根目录。我现在的问题是 Apache 显示 php 代码而不是执行它。经过研究,我发现这是因为没有启用 PHP。问题是:如何在刚刚安装的 Apache 2.4 上启用 PHP 5.6?
@MarcoAurélioDeleu 尝试按照this link. 的说明进行操作。否则,我建议将您的问题作为标准 SO 问题提出。
这个答案虽然有效,但不应被视为已接受所提出的问题!
@BrianVanegasParra 你是对的。我并没有真正回答这三个问题中的任何一个,只是如何为 apache 配置 laravel。所以提问者应该随意给任何更合适的答案打勾。
这不是必须的,在 Homestead.yaml 文件中指定“apache”作为服务器类型就足够了。有关详细信息,请参阅下面的 @martijn-imhoff 的答案。【参考方案3】:
您到底想做什么,也许我们可以为您的问题提供解决方案。你真的不需要用 .htaccess 重写 URL,因为 Laravel 的路由会处理这个问题。
1) 不管是什么软件,如果您需要为每个特定项目配置网络服务器,最好自己配置与该项目相关的 vagrant box。
2) Nginx 的性能优于 apache,并减少了很多根本不需要的臃肿。它也是 forge 使用的,因此 homestead 反过来使用它来模拟 forge 环境。
3)见第1点,为本项目配置自己的vagrant box。
【讨论】:
以上是关于为啥 laravel homestead 没有运行 Apache的主要内容,如果未能解决你的问题,请参考以下文章
Vagrant Share - Laravel Homestead,Ubuntu
在 Laravel 的 Homestead 中运行 PHPUnit
迁移到 Homestead 后在 PhpStorm 中为 Laravel 运行测试