我知道Heroku支持Cedar堆栈中的许多不同环境,包括PHP
Laravel 4应用程序的主要文件夹结构如下:
app/
bootstrap/
public/
packages/
index.php
vendor/
composer.json
phpunit.xml
注2:
主index.php文件不在根目录中,位于公用文件夹下。
有一个composer.json文件,Heroku需要像Ruby应用程序中的gem一样自动安装所有项目依赖项。
所以我的问题是:
有没有办法在Heroku上部署这种应用程序??
感谢您的帮助。
您需要使用自定义构建包来设置文档根,并执行集成composer的脚本。在Heroku的Buidlpack中,您需要更新bin/compile脚本来处理composer,并更新conf/httpd.conf来设置文档根。此外,Heroku的构建包中没有编译mcrypt,因此Laravel 4无法使用该构建包。我在构建包的分支中包含了许多更新,包括mcrypt、composer和自定义文档根。
Heroku最近发布了一个官方的PHP构建包https://github.com/heroku/heroku-buildpack-php.它是新的,我最初有一些问题。但它应该会改进。它支持PHP或HHVM。
可以在Procfile中指定应用程序的入口点,将其放在应用程序的根目录中。在您的情况下,内容将是:
web: vendor/bin/heroku-php-apache2 public/
https://devcenter.heroku.com/articles/getting-started-with-php#define-a-procfile