(Laravel) さくらのレンタルサーバにlaravelプロジェクト(Git管理)を公開する

 

さくらのレンタルサーバーに、laravelのプロジェクトを公開する方法をシェア。
意外と詰まってしまった部分があったので、備忘。

 

まずはサーバにsshログイン

まずはサーバにログイン。
macならターミナル、windowsならテラタームなどから、sshコマンドでサーバにログインする。

その際必要になるのがサーバへのログイン情報。
さくらサーバに契約すると、契約者の情報がつらつら書いてある、
下記のようなメールが届いているはずだ。

その中の<<契約サービス接続情報>>と書いてある部分がsshログインに使う情報だ。

 

sshコマンドを使ってログインする。

ssh FTPアカウント@FTPサーバ名

#パスワード
サーバパスワード

 

入力後、以下のように表示されればログイン完了

 

 

composerのインストール

次はcomposerと呼ばれる、phpのパッケージ管理ツールをインストールする。
laravelをインストールするのにcomposerを使うためだ。

まずはcomposerをインストールする階層に移動。
場所はホームディレクトリにする人が多い。

cd 任意のディレクトリ

 

そうしたら下記コマンドでcomposerをダウンロード

curl -sS https://getcomposer.org/installer | php

 

完了後、composer.pharがあるはずなので、確認。

 

こいつを下記コマンドでインストール。

php composer.phar
Pasted Graphic.png

 

上記のような表示がされれば成功。

 

laravelプロジェクトをgitからclone

公開したいプロジェクトを、さくらサーバで設定してあるドキュメントルート以下に配置する。

gitからcloneしてくる。

git clone プロジェクトURL

 

ここまでできたら動いてくれても良さそうなものだが、実はまだこのままだと動かない。

 

vendorディレクトリの作成

無事クローンできたら、プロジェクトの中に移動してディレクトリ構成を覗こう。

cd プロジェクト名

ls -l
Pasted Graphic 4.png

 

結論から言うとlaravelに本来あるはずの「vendor」ディレクトリが存在しない
venderはlaravelでは核となるプログラム。

下記コマンドでvendorを作ることができる※。

php ../composer.phar install

 

※composer.pharのパスに注意。
composer.pharが存在するディレクトリを相対パスで指定しています(../をつけています)。

 

ls -l

 

無事、vendorディレクトリができていればOK.

 

.envファイルの作成

最後に確認するのが.envファイル。
なぜか上記手順だとこのファイルが作成されない。

筆者はこれが作成されていないことに気がつかず、
ずっと500 internal server errorと戦うハメになった。

プロジェクト直下で以下のコマンド。

ls -la
Pasted Graphic 6.png

 

.env.exampleは存在しているが、.envは存在しない。
.env.exampleをコピーして、.envを作成する。

cp .env.example .env
Pasted Graphic 7.png

できた。

 

keyの作成

 

.envも作ったらブラウザから、アクセス、すると

Pasted Graphic 8.png

 

エラー。。
しかし落ち着こう、エラーよく読むと、下記コマンドを打てと書いてある。
打ってみる。

php artisan key:generate

 

すると

Pasted Graphic 9.png

アプリケーションキーはセットされましたと書かれた。
OKっぽい。

 

storage以下の権限

最後に、プロジェクト直下のstorageディレクトリ以下の権限に注意したい。
何やらユーザ権限の問題で、デフォルトの権限だとうまく動かないことがある、
筆者はローカルのlaravelをapacheで起動した時にこれが原因で動かなかった。
と言うわけで、プロジェクト直下にて下記コマンド。

 

chmod -R 777 storage

 

ちょっとガバガバすぎかな?757とかでも良いかもしれない。。

 

とりあえずここまでやればまあ動くっしょ

筆者のは上記で動いてます。

 

記事が気に入った方はシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。