首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用ClearDB在Heroku上部署PHP应用程序

用ClearDB在Heroku上部署PHP应用程序
EN

Stack Overflow用户
提问于 2019-06-07 02:16:24
回答 1查看 711关注 0票数 0

因此,在过去的几周里,我一直在开发一个PHP web应用程序,现在它已经接近完成,我想尝试将它部署到Heroku上。我遵循了关于scotch.io的教程,这是相当直观的。直到我找到数据库连接。我会带你走完我走的路,也许有人能指出我哪里出了问题。

在开始之前,我必须提到,对于数据库连接和随后的SQL查询,我使用了PDO。scotch.io教程不使用PDO,这就是我出轨的原因。此外,我的应用程序在以下网址上运行:https://fathomless-bastion-62027.herokuapp.com/index.php

我开始执行步骤11:将本地DB表导入Heroku DB。我运行了heroku config | grep CLEARDB_DATABASE_URL命令,获得了清除数据库URL,根据这是另一个scotch.io教程,我创建了用于从phpmyadmin从导出的mysql文件中重定向输出的mysql命令。

但是我不确定我是否做得对,因为如果我从Heroku管理面板转到ClearDB,并导航到"Dev & Production“,什么都不会出现。但是,如果我尝试重新运行步骤11中的mysql命令,cli会给出一个错误,说明我的表已经存在。我不知道,也许我有点疑神疑鬼,我一直在试着为hour+修复这个问题。

现在我们到了车轮开始掉落的地方。教程说我们必须更新一些database.php文件,但我没有。如前所述,我使用的是PDO,以及我学习PHP的方式(去年我上了一个were课程),我们所有的数据库连接都是用PHP片段在我们的主文件中完成的,所以我就是这样为我的应用程序做的。您可以查看我的代码库这里

因此,我试图根据苏格兰教程的步骤12在我的index.php文件中建立数据库连接,并将我的代码建立在其他一些关于ClearDB和PDO的帖子上。这就是我得出的结论,我真的没有任何方法来测试它。另外,它位于我的主index.php文件中,如果这可以帮助您找到我出错的地方的话。

代码语言:javascript
复制
<?php 
//Get Heroku ClearDB connection information
$cleardb_url      = parse_url(getenv("CLEARDB_DATABASE_URL"));
$cleardb_server   = $cleardb_url["host"];
$cleardb_username = $cleardb_url["user"];
$cleardb_password = $cleardb_url["pass"];
$cleardb_db       = substr($cleardb_url["path"],1);

try {
    $pdo = new PDO("mysql:host=".$cleardb_server."; dbname=".$cleardb_db, $cleardb_username, $cleardb_password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $pdo = null;
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
}
?> 

这看起来是正确的,尽管这显然不是因为当你尝试访问我的web应用程序时,也可以在这里访问:https://fathomless-bastion-62027.herokuapp.com/index.php,什么也没有出现。而开放Chrome工具,我得到了一个500 ISE,未能加载资源。我有一个感觉,我的问题在于我的应用程序无法连接到数据库。抱歉,如果我问的问题似乎微不足道--这个web应用程序更适合我自己的学习目的,如果您更有经验的PHP查看git,您可能会发现许多明显的错误。它们一定会发生的,我对这件事相当陌生。

如果你在我的岗位上做了这么多,并且能帮我的忙,我非常感谢你。如有任何建议,敬请见谅。谢谢!

-Dan

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-07 02:31:20

500是PHP错误。您确实需要检查错误日志文件。如果您不知道日志文件的位置,请使用phpinfo()命令转储您的环境配置并查找"error_log“。我的猜测是,您没有正确地解析CLEARDB_DATABASE_URL,但是,由于不知道它的价值,我说不出出了什么问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56487189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档