Развертывание PHP Web App на Heroku с ClearDB - PullRequest
0 голосов
/ 07 июня 2019

Итак, в течение последних нескольких недель я разрабатывал веб-приложение на PHP, и теперь, когда оно почти завершено, я хочу попробовать развернуть его на Heroku.Я следовал руководству по scotch.io , и оно было довольно интуитивно понятным.Пока я не добрался до подключения к базе данных.Я проведу вас по шагам, которые я предпринял, и, возможно, кто-то может указать, где я ошибся.

Прежде чем начать, я должен упомянуть, что я использую PDO для подключения к базе данных и последующих запросов SQL.В учебнике по scotch.io PDO не используется, поэтому я потерпел крушение.Кроме того, мое приложение работает по следующему URL-адресу: https://fathomless -bastion-62027.herokuapp.com / index.php

Я перешел к шагу 11: импорт локальных таблиц БД вГероку Д.Б.Я запустил команду heroku config | grep CLEARDB_DATABASE_URL, получил свой URL-адрес cleardb и, согласно этому другому учебнику scotch.io , я сделал свою команду mysql, которая использовалась для перенаправления вывода из моего экспортированного файла sql из phpmyadmin.

Я не уверен, что все сделал правильно, потому что, если я зайду в ClearDB из админ-панели Heroku и перейду к «Dev & Production Edition», ничего не появится.Но если бы я попытался повторно запустить команду mysql из шага 11, то в результате выполнения команды cli я получил бы ошибку, заявив, что мои таблицы уже существуют.Я не знаю, может быть, я параноик, я пытался это исправить в течение часа +.

Теперь мы подошли к тому месту, откуда начали падать колеса.В руководстве говорится, что мы должны обновить какой-то файл database.php, но у меня его нет.Как я уже говорил выше, я использую PDO и то, как я изучал PHP (посещал уроки веб-разработки в прошлом году в колледже), все наши соединения с базами данных выполнялись с помощью фрагментов PHP в наших основных файлах, поэтому я так и сделалдля моего приложения.Вы можете просмотреть мою кодовую базу ЗДЕСЬ .

Итак, я попытался установить соединение с базой данных в моем файле index.php, основываясь на шаге 12 из учебника по Scotch, и основал свой код на некоторых других публикациях SO о ClearDB и PDO.Это то, к чему я пришел, и у меня нет никакого способа проверить это.Кроме того, это находится в моем основном файле index.php, если это поможет вам точно определить, где я ошибся.

<?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();
}
?> 

Этот выглядит правильным, хотя, очевидно, это не такпотому что когда вы пытаетесь зайти в мое веб-приложение, снова доступное здесь: https://fathomless -bastion-62027.herokuapp.com / index.php , ничего не появляется.И открывая инструменты Chrome Dev, я получаю 500 ISE, не удалось загрузить ресурсы.Я чувствую, что моя проблема заключается в неспособности моего приложения подключиться к базе данных.Извиняюсь, если то, что я спрашиваю, кажется тривиальным - это веб-приложение больше для моих собственных целей обучения, и если вы более опытные разработчики PHP, посмотрите на git-репо, вы, вероятно, найдете много очевидных ошибок.Они обязательно произойдут, хотя, я довольно новичок в этом.

Если вы зашли так далеко в моем посте и можете помочь мне, я не могу вас отблагодарить.Любой совет приветствуется.Спасибо!

-Дан

1 Ответ

1 голос
/ 07 июня 2019

500 - ошибки PHP. Вам действительно нужно проверить файл журнала ошибок. Если вы не знаете, где находится файл журнала, используйте команду phpinfo (), чтобы вывести конфигурацию среды и найти «error_log». Я предполагаю, что вы неправильно анализируете CLEARDB_DATABASE_URL, но, не зная его значения, я не могу сказать, что не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...