【Laravel】ForgeとDigitalOceanの設定方法まとめ
Laravelといえば、Forgeが便利とのことなので実際に使ってみました。
サーバーはDigitalOceanという安いサーバーを使っています。
もくじ
- ForgeとDigitalOceanの初期設定
- ファイルに変更を加えて、再度デプロイする方法
- データベースと接続する方法
- ターミナルからForgeにログインする方法
- Mysqlと接続する方法
- 番外編:ローカルとサーバー上でDB接続先を変更する方法
ForgeとDigitalOceanの初期設定
Forgeに会員登録する
Forgeを使うことでLaravelがかんたんにデプロイできるようになります。
以下からForgeに登録をします。
登録:Forge
Githubとコネクトする
Server Providerを登録する
つぎにServer Provider情報を入力します。
ここでDigitalOceanを使うので、登録しておいてください。
DigitalOceanからClient IDとAPIキーを取得する
Forgeの管理画面からAPIキーを入力する
サーバーを作成する
サーバーが完成すると以下のように表示されます。
※上記写真内のManageをクリックすることで、サーバーの設定画面に入れます。
Repositoryを登録する
上記の写真のとおりです。
RepositoryにはgithubのURLを入力します。
(例)
GithubのURL:https://github.com/manabubannai/Comment_Application
Repositoryへの入力:manabubannai/Comment_Application
インストールがおわると以下の画面になります
これでLaravelのデプロイが完了しました。
ファイルに変更を加えて、再度デプロイする方法
git hubをローカルにコピーする
Comment_Applicationというレポジトリを例に説明します。
$ git clone https://github.com/manabubannai/Comment_Application $ cd Comment_Application
なにかファイルに変更を行います。
その後に以下のコマンドを実行します。
$ git status $ git add . $ git commit -m 'Change something' $ git push
変更をデプロイします。
これで変更がデプロイされました。
データベースと接続する方法
まず、SSHキーを設定するします。
以下のコマンドで秘密鍵をコピーします。
$ cat ~/.ssh/id_rsa.pub| pbcopy
Sequel Proをつかってデータベースに接続してみます
DBのID, パスワードはForgeからメールで届いています。
その情報を以下のように入力します。
以上でDB内の操作ができます。
ターミナルからForgeにログインする方法
以下のコマンドでログインできます。
$ ssh forge@[IPアドレス]
artisanコマンドを利用する際にご利用ください。
※ForgeにはRecipesという項目がありますが、ここからartisanコマンドは実行できません。
Mysqlと接続する方法
Envirommentのタブから以下のように入力します。
Key: DB_HOST
Value: 104.131.7.169
Key: DB_NAME
Value: forge
Key: DB_USERNAME
Value: forge
Key: DB_PASSWORD
Value: [パスワード]
データベース設定を編集する
編集ファイル:config/database.php
'mysql' => array( 'driver' => 'mysql', 'host' => getenv('DB_HOST'), 'database' => getenv('DB_NAME'), 'username' => getenv('DB_USERNAME'), 'password' => getenv('DB_PASSWORD'), 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ),
その後にコミットします。
$ git add . $ git commit -m 'db setting done' $ git push
以上でMysqlに接続できました。
番外編:ローカルとサーバー上でDB接続先を変更する方法
bootstrap/start.phpを以下のように編集します。
// $env = $app->detectEnvironment(array( // 'local' => array('homestead'), // )); $env = $app->detectEnvironment(array( 'local' => array('ホストネーム'), ));
ホストネームの部分は、以下のコマンドで確認できます。
$ hostname
つぎにローカル開発環境におけるDB情報を入力します。
編集ファイル:app/config/local/database.php
'mysql' => array( 'driver' => 'mysql', 'host' => 'localhost', 'database' => 'hogehoge', 'username' => 'root', 'password' => 'root', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ),
※以下のコマンドで、現在の環境を確認できます。
$ php artisan env Current application environment: local
以上です( ˘ω˘ )☝︎