さくらのレンタルサーバーに、laravelのプロジェクトを公開する方法をシェア。
意外と詰まってしまった部分があったので、備忘。
Contents
macならターミナル、windowsならテラタームなどから、sshコマンドでサーバにログインする。
その際必要になるのがサーバへのログイン情報。
さくらサーバに契約すると、契約者の情報がつらつら書いてある、
下記のようなメールが届いているはずだ。
その中の
<<契約サービス接続情報>>と書いてある部分がsshログインに使う情報だ。
ssh FTPアカウント@FTPサーバ名
#パスワード
サーバパスワード
入力後、以下のように表示されればログイン完了
## composerのインストール
次は
composerと呼ばれる、 phpのパッケージ管理ツールをインストールする。
laravelをインストールするのにcomposerを使うためだ。
まずはcomposerをインストールする階層に移動。
場所はホームディレクトリにする人が多い。
cd 任意のディレクトリ
そうしたら下記コマンドで
composerをダウンロード。
curl -sS  | php
完了後、
composer.pharがあるはずなので、確認。
こいつを下記コマンドで
インストール。
php composer.phar
上記のような表示がされれば成功。
## laravelプロジェクトをgitからclone
公開したいプロジェクトを、
さくらサーバで設定してあるドキュメントルート以下に配置する。 gitからcloneしてくる。
git clone プロジェクトURL
ここまでできたら動いてくれても良さそうなものだが、実はまだこのままだと動かない。
## vendorディレクトリの作成
無事クローンできたら、プロジェクトの中に移動してディレクトリ構成を覗こう。
cd プロジェクト名
ls -l
結論から言うと
laravelに本来あるはずの「vendor」ディレクトリが存在しない。
venderはlaravelでは核となるプログラム。
下記コマンドでvendorを作ることができる※。
php ../composer.phar install
※composer.pharのパスに注意。
composer.pharが存在するディレクトリを相対パスで指定しています（ ../をつけています）。
無事、vendorディレクトリができていればOK.
## .envファイルの作成
最後に確認するのが
.envファイル。
なぜか上記手順だとこのファイルが作成されない。
筆者はこれが作成されていないことに気がつかず、
ずっと
500 internal server errorと戦うハメになった。
プロジェクト直下で以下のコマンド。
ls -la
.env.exampleは存在しているが、 .envは存在しない。
.env.exampleをコピーして、.envを作成する。
cp .env.example .env
できた。
## keyの作成
.envも作ったらブラウザから、アクセス、すると
エラー。。
しかし落ち着こう、エラーよく読むと、下記コマンドを打てと書いてある。
打ってみる。
php artisan key:generate
すると
アプリケーションキーはセットされましたと書かれた。
OKっぽい。
## storage以下の権限
最後に、プロジェクト直下の
storageディレクトリ以下の権限に注意したい。
何やらユーザ権限の問題で、デフォルトの権限だとうまく動かないことがある、
筆者はローカルのlaravelをapacheで起動した時にこれが原因で動かなかった。
と言うわけで、プロジェクト直下にて下記コマンド。
chmod -R 777 storage
ちょっとガバガバすぎかな？757とかでも良いかもしれない。。
とりあえずここまでやればまあ動くっしょ
筆者のは上記で動いてます。