LaravelプロジェクトをHerokuにデプロイする方法(2)

HerokuでのMySQLの設定と認証機能、Debugbarの導入について紹介したいと思います。
プロジェクト内のファイルに変更があったら、適宜gitコミットし、Herokuへプッシュしてください。

HerokuでのMySQLの設定

前回、Herokuアプリを作成したディレクトリで以下のコマンドを実行し、MySQLを追加します

$ heroku addons:create cleardb:ignite

下記のコマンドでアクセスURLをHerokuのConfig Varsに設定します

$ heroku config | grep CLEARDB_DATABASE_URL

config/database.phpを以下のように編集します

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

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

return [
    ...
    'connections' => [
        'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', $host),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', $database),
            'username' => env('DB_USERNAME', $username),
            'password' => env('DB_PASSWORD', $password),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],
    ],

データベースを設定します

heroku run php artisan migrate

上記のコマンドを行うとエラーが出ますので、app/Providers/AppServiceProvider.phpを以下のように修正します

use Illuminate\Support\Facades\Schema;

...

public function boot()
{
   Schema::defaultStringLength(191);
}

問題が発生しないように、もう一度下記のコマンドを実行します

$ heroku run php artisan migrate:reset 

認証機能の追加

下記のコマンドを実行し、認証機能を追加します

$ php artisan make:auth

上記のコマンドで追加、変更されたファイルをコミットし、Herokuへプッシュします

Debugbarの追加

下記のコマンドを実行してDebugbarを追加します。
Heroku上でもDebugbarが使えるように、--devを付けずに実行します

composer require barryvdh/laravel-debugbar

コマンド実行後、composer.jsonとcomposer.lockをHerokuにプッシュし、下記のコマンドでHeroku上でDebugbarを有効にします

heroku config:set DEBUGBAR_ENABLED=true
heroku config:set APP_DEBUG=true

これで、Heroku上でDBや認証機能、Debugbarが使えるようになりました

参考サイト

https://appdividend.com/2018/04/17/how-to-deploy-laravel-project-on-heroku/
https://devcenter.heroku.com/articles/getting-started-with-laravel
https://dev.to/connor11528/deploy-a-laravel-5-app-to-heroku
https://qiita.com/sutara79/items/a173b969474d9f5afe1b

料金表ナビゲーション 料金表ナビゲーション

おすすめ記事