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