Laravelをさくらのレンタルサーバへデプロイ
Oct 6, 2016 · serverphpdb
ローカルで開発したLaravel5のプロジェクトをさくらのレンタルサーバ(スタンダード)で公開する時のメモ
環境
- macOS 10.12.0
- Laravel 5.1
- さくらのレンタルサーバ(スタンダード)
- PHP 5.6
- MySQL 5.5
ちなみにローカルではPhpStormで開発している
手順
www.アカウント名.sakura.ne.jp/hogeとアクセスすると表示させる前提の手順
(アカウント名は○○○○.sakura.ne.jpの○○○○部分)
流れとしては、
- Gitの
exportでアップするファイルを準備 - FTPで1をアップロード
composerをインストール- プロジェクトの設定
- 公開
今回はGitのリモートサーバは外部に公開していない為、1〜2の手順が必要。 GitHubとかで管理しているならcloneしてくればOK
ファイルの準備
(任意)除外ファイルの設定
※普段はGit管理しているがサーバへアップしたくないファイルがある場合のみ
今回はPhpStormのプロジェクトファイルをアップロード対象外としたい
=エクスポートさせたくないので、.gitattributesに設定を追加する
- プロジェクトのルートフォルダの
.gitattributesを開く
(無い場合は作成) - 除外対象を
.idea/ export-ignoreとして追記する
(.ideaフォルダ以下をエクスポート時に除外する設定)
エクスポート
ターミナルでエクスポートする。エクスポート先はプロジェクトのフォルダと同じ階層にしている
cd (プロジェクトのルート)
mkdir ../export
git archive master --worktree-attributes | tar -x -C ../export
(回線によってはここで圧縮しておき、サーバ上で展開した方が良いかも)
サーバへアップロード
FTPソフトで一つ前の手順でエクスポートしたフォルダの中身を丸ごとアップロードする
アップロード先は/home/アカウント名/laravelとする
www以下にはアップロードしないこと!
composerをインストール
SSHでログインする
ターミナルでssh アカウント名@アカウント名.sakura.ne.jp鍵認証をしていなければ、パスワードを聞かれるので入力する
binディレクトリを作成し、そこへcomposerをインストールする% mkdir bin % curl -sS https://getcomposer.org/installer | php -- --install-dir=bin --filename=composer % chmod 755 bin/composer一旦ログアウトしてログインする
% exit ssh アカウント名@アカウント名.sakura.ne.jpLaravelプロジェクトにパッケージをインストールする% cd laravel % composer install
プロジェクトの設定
DBの準備
- サーバのコントロールパネルへログイン
データベースの設定を開き、DBサーバとユーザ名を確認データベースの新規作成からプロジェクト用のデータベースを作成
Laravelへ設定
.envファイルを設定する
DB_〜の各項目はコントロールパネルで確認・設定したものを記述しておく
.envファイルのAPP_KEYを生成
(ターミナルの状態は前回の続き)% php artisan key:generateDBのマイグレーションを実施
% php artisan migrate
公開
公開用フォルダの設定
さくらのレンタルサーバはDocumentRootを変更できないので、
% ln -s ~/laravel/public ~/www/hoge
としてLaravelのpublicへのシンボリックリンクをwwwの中へ置く
これでwww.アカウント名.sakura.ne.jp/hogeへのアクセスで、
プロジェクトの公開用フォルダpublicへアクセスできるようになる
(ただしまだこの段階ではエラー)
.htaccessの編集
さくらのレンタルサーバは.htaccessでOptionsを使えないので、
laravel/publicの中の.htaccessを開き、
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
の部分を削除する
これで無事公開が完了!
参考
サーバ上のファイル構成は以下の感じ
/home/アカウント名
├─ laravel
| ├─ .env
| ├─ public
| | ├─ .htaccess
| | └─ ...
| └─ ...
├─ www
| ├─ hoge # シンボリックリンク
| └─ ...
└─ ...
