[英]Laravel 5 Heroku Local doesn't work
我已成功将Laravel应用程序部署到Heroku。
它可以在线工作。
但是,当我尝试运行“ heroku local”时,我得到:
vendor / bin / heroku-php-apache2:没有这样的文件或目录
这很有意义,因为查看“供应商/ bin”,所以列出的唯一内容是:
psysh-> ../psy/psysh/bin/psysh
那么,我的heroku-php-apache在哪里,或者该如何解决?
您应该在composer.json
包含这些行
"require-dev": {
"heroku/heroku-buildpack-php": "*"
}
添加它们后,请确保运行composer update
。
经过大量的研究,反复试验并与Heroku支持团队交谈,我发现,尽管Slow Loris的回答是该过程的一部分,但Heroku的支持给了我以下答复:
简而言之,PHP>应用程序不正式支持heroku local。 原因是,与我们在平台上支持的所有其他语言不同,PHP没有用用户区编写的Web服务器。 相反,我们将PHP-FPM>与Apache或Nginx一起使用,并且引导脚本(vendor / bin / heroku-(php | hhvm)-(apache2 | nginx))动态为端口> binding和FastCGI comms注入正确的配置。插座。
这适用于原始PHP和Apache构建,但前提是:
1)当前用户具有所有正确的权限(在您的情况下,> / var / log / apache2 /是不可写的); 2)正确的代理模块被加载到主httpd.conf中; 3)主httpd.conf根本没有绑定到端口,或者至少没有绑定到1024以下(为超级用户保留)的端口。
主配置还需要由每个用户自己处理,因为>有时,要加载的模块在libexec /中,有时在> lib / apache2 / modules /中,依此类推。 太多的变化; 否则,我们可以将完整的Apache配置交付给用户,体验会好得多。
但是问题并没有就此结束。 FPM根本无法在Windows上运行,并且在大多数Linux系统上,httpd也不起作用。 相反,apache2ctl>处理启动和停止,因此>在前台运行服务器>是不可能的。 最后,系统配置中可能存在太多可能的排列,从而无法确保每个用户都拥有出色的体验。
这只是PHP领域中的当前现实。 Ruby,Python,Node,Java都具有用每种相应语言编写的Web服务器,并且您不需要外部服务器。 这也使流式上传文件,处理网络>套接字升级等成为可能。 也许在PHP 7中我们很快就会看到类似的东西出现(在PHP 5中根本不可行,因为致命错误会杀死引擎,因此您的Web服务器也将消失)。
我知道这个问题有些陈旧,但是我最近第一次部署了heroku应用程序,但是无法让heroku local
为我工作。 我在Laravel的当前分支是5.8,我也在Windows 10上使用VS Code。 我四处搜寻,试图纠正此问题,无论如何都无法使它正常工作。
我确实提出了一个解决方案,使其能够在终端中仅需几行就可以在本地工作。
在VS Code中,我使用了gitbash终端,一旦在heroku项目文件夹中, composer require laravel/homestead --dev
,一旦完成,则需要安装homestead, vendor/bin/homestead make
,然后完成安装,只需运行vagrant up
,您的应用即可通过localhost:8000进行访问。
文件-https: //laravel.com/docs/5.8/homestead
希望这对某人有帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.