Written by Manabu Bannai

【Laravel】ForgeとDigitalOceanの設定方法まとめ

Laravel PHP PROGRAMMING

Laravelといえば、Forgeが便利とのことなので実際に使ってみました。
サーバーはDigitalOceanという安いサーバーを使っています。

もくじ

ForgeとDigitalOceanの初期設定

Forgeに会員登録する

Forgeを使うことでLaravelがかんたんにデプロイできるようになります。
以下からForgeに登録をします。
登録:Forge

Githubとコネクトする

登録がおわったらForgeとgithubをコネクトします。
github

Server Providerを登録する

つぎにServer Provider情報を入力します。
ここでDigitalOceanを使うので、登録しておいてください。
serverprovider

DigitalOceanからClient IDとAPIキーを取得する

ジェネレートキーをクリックすると取得できます。
api1
api2

Forgeの管理画面からAPIキーを入力する

api3

サーバーを作成する

DigitalOceanのバージョン1を利用します。
servermake

サーバーが完成すると以下のように表示されます。
serverdone
※上記写真内のManageをクリックすることで、サーバーの設定画面に入れます。

Repositoryを登録する

repository
上記の写真のとおりです。
RepositoryにはgithubのURLを入力します。

(例)
GithubのURL:https://github.com/manabubannai/Comment_Application
Repositoryへの入力:manabubannai/Comment_Application

インストールがおわると以下の画面になります

クイックデプロイを有効化しておきます。
installdone

これで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

変更をデプロイします。

deploy nowをクリックします。
deploy-now

これで変更がデプロイされました。

データベースと接続する方法

まず、SSHキーを設定するします。
以下のコマンドで秘密鍵をコピーします。

$ cat ~/.ssh/id_rsa.pub| pbcopy

それをForgeの管理画面から貼り付けます。
ssh

Sequel Proをつかってデータベースに接続してみます

DBのID, パスワードはForgeからメールで届いています。
その情報を以下のように入力します。
sequel

以上でDB内の操作ができます。

ターミナルからForgeにログインする方法

以下のコマンドでログインできます。

$ ssh forge@[IPアドレス]

artisanコマンドを利用する際にご利用ください。
※ForgeにはRecipesという項目がありますが、ここからartisanコマンドは実行できません。

Mysqlと接続する方法

Active SitesからManageを選択します。
manage2

Envirommentのタブから以下のように入力します。

Key: DB_HOST
Value: 104.131.7.169

Key: DB_NAME
Value: forge

Key: DB_USERNAME
Value: forge

Key: DB_PASSWORD
Value: [パスワード]

Enviromment

データベース設定を編集する

編集ファイル: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

以上です( ˘ω˘ )☝︎