在heroku上使用pgsql部署laravel php应用程序

时间:2017-03-07 07:50:24

标签: php postgresql laravel heroku

我正在尝试在heroku上部署laravel php应用程序,该应用程序在没有数据库的情况下完美部署但是当我尝试在我的应用程序中添加postgresql插件时它不会在cmd中显示任何错误,而且我还有一个登录和注册页面,两者都完美地工作,我能够注册和登录没有任何问题。

但问题是当我尝试打开任何其他连接到dB的页面时。它在我的浏览器上显示错误

"糟糕,看起来出了问题。"

我没有得到任何其他错误。我不知道发生了什么。 如果有人可以帮助。谢谢

我采取的步骤是:。

$ git init
$ git add .
$ git commit -m "new laravel project"


$echo web: vendor/bin/heroku-php-apache2 public/ > Procfile
$ git add .
$ git commit -m "Procfile for Heroku"

$heroku create

$ heroku config:set APP_KEY= key
$git push heroku master

现在为我做的pgsql ..

 $ heroku addons:add heroku-postgresql:hobby-dev

$ heroku config

更改了'默认值'在app / config / database.php到' pgsql'。

'default' => 'pgsql',

在database.php的顶部:

$url = parse_url(getenv("DATABASE_URL"));

$host = $url["host"];
$username = $url["user"];
$password = $url["pass"];
$database = substr($url["path"], 1);

然后将同一文件中的pgsql条目更改为以下内容:

'pgsql' => array(
    'driver'   => 'pgsql',
    'host'     => $host,
    'database' => $database,
    'username' => $username,
    'password' => $password,
    'charset'  => 'utf8',
    'prefix'   => '',
    'schema'   => 'public',
),


$ git add .
$ git commit -m "Convert to use Heroku PostgreSQL database"
$ git push heroku master
$ heroku run php artisan migrate

1 个答案:

答案 0 :(得分:2)

我最近尝试在heroku中部署我的测试项目时遇到了同样的问题。最近我发现我的 Procfile

中存在问题
web: vendor/bin/heroku-php-apache2 public/

我认为procfile中的问题是heroku php-apache2 builder更改了。所以我做的是删除我的 Procfile 文件,让heroku使用它的默认Procfile for php配置我的应用程序,结果Procfile是

web: heroku-php-apache2 web/

所以,那就是它。我使用Laravel App的 public / 文件夹创建了另一个Procfile。

web: heroku-php-apahce2 public/

它现在正在工作。

还有关于DB连接的问题。我没有更改我的.env文件,我所做的是在“设置”页面中配置配置变量并在那里手动输入所需的数据库连接参数。

我只是在heroku中使用了postgresql服务器的这些url格式。

dialect+driver://username:password@host:port/database