在heroku上部署带有pgsql的laravel php应用程序

在heroku上部署带有pgsql的laravel php应用程序,php,postgresql,laravel,heroku,Php,Postgresql,Laravel,Heroku,我正在尝试在heroku上部署laravel php应用程序,该应用程序在没有DB的情况下部署得非常完美,但是当我尝试在我的应用程序中添加postgresql插件时,它在cmd中没有显示任何错误,而且我有一个登录和注册页面,两者都工作正常,我能够注册和登录,没有任何问题 但问题是当我试图打开连接到dB的任何其他页面时。它在我的浏览器上显示错误 哎呀,好像出了什么事 我没有收到任何其他错误。我不知道发生了什么。 如果有人能帮忙,谢谢 我采取的步骤是 $ git init $ git add . $

我正在尝试在heroku上部署laravel php应用程序,该应用程序在没有DB的情况下部署得非常完美,但是当我尝试在我的应用程序中添加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中的“default”值更改为“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

最近,当我试图在heroku部署我的测试项目时,我遇到了同样的问题。最近我发现我的proc文件中有一个问题

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

web: heroku-php-apache2 web/
就这样。我用Laravel应用程序的public/文件夹创建了另一个Procfile

web: heroku-php-apahce2 public/
它现在正在工作

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

我只是在heroku中遵循了postgresql server的url格式

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

最近,当我试图在heroku部署我的测试项目时,我遇到了同样的问题。最近我发现我的proc文件中有一个问题

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

web: heroku-php-apache2 web/
就这样。我用Laravel应用程序的public/文件夹创建了另一个Procfile

web: heroku-php-apahce2 public/
它现在正在工作

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

我只是在heroku中遵循了postgresql server的url格式

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

当你收到错误时,你能提供日志吗?我怎样才能得到错误日志?它将在项目根文件夹中。请参阅storage/logs/laravel.log或storage/logs/{date}。谢谢,但我无法从heroku服务器获取它。请尝试在调试模式下运行应用程序,以了解具体的错误。收到错误时是否可以提供日志?如何获取错误日志?它将位于项目根文件夹中。请参阅storage/logs/laravel.log或storage/logs/{date}。谢谢,但我无法从heroku服务器获取它。请尝试在调试模式下运行应用程序以了解具体错误。