Laravelをさくらインターネットのレンタルサーバにデプロイ・アップロードする方法をまとめてみた

Laravelをさくらインターネットのレンタルサーバにデプロイ・アップロードする方法をまとめてみた

先日、数人で作業をしている時に、Laravelのプロジェクトをさくらインターネットにデプロイ・アップロードをする機会がありました。

せっかくのよい機会だと思ったので、ブログにまとめてみることにしました!細かく丁寧に説明するつもりなので、「デプロイ・アップロード方法がわからない」「うまくデプロイ・アップロードできない」と困っている方の、お力添えになれたら嬉しいです!

目次

Laravelをさくらインターネットのレンタルサーバにデプロイ・アップロードする上での事前準備

まずは、Laravelで作ったプロジェクトデータをさくらインターネットのレンタルサーバにデプロイ・アップロードする上で、事前に準備しておいていただきたいことをご紹介します!

ポイントは以下の3点です!
(準備ができていると言う方は、読み飛ばしていただいて大丈夫です・・・!)

  • 契約しているさくらインターネットのサーバ情報。特にサーバに関する情報(パスワードなど)は必要ですよ!
  • さくらインターネット上でデータベースを作成する
  • GitHub(アカウントがない場合は作成)にLaravelのデータをpushする。

基本的にはこの3つでOKです。

事前準備その1・さくらインターネットのサーバ情報について確認する

さくらインターネットのサーバに関する情報が必要だ!ということをお話させていただきましたが、具体的には以下の情報が必要になります!

  • ホスト名(FTPサーバ名)
  • アカウント名(FTPアカウント)
  • サーバパスワード

上記3つの情報は、さくらインターネットのレンタルサーバ申し込みをした際に、さくらインターネット側から届く「仮登録完了のお知らせ」というタイトルのメールの中に記載されています。

さくらインターネットから届く仮登録のお知らせメールの中でサーバ情報が書かれている部分

実際に届く「仮登録のお知らせ」の中で、必要な情報が書かれた部分を画像で掲載してみたので、参考にしてくださいね!

事前準備その2・さくらインターネットのレンタルサーバ上でデータベースを作成する

次に、今回のLaravelプロジェクトをさくらインターネットのレンタルサーバ上にアップロード・デプロイして公開した際に使用するデータベースを作成します。

さくらインターネットのサーバコントロールパネル

さくたインターネットのサーバコントロールパネルにログインをしていただいた後、「データベースの設定」を選択し、その後に出てくる画面から「データベースの新規作成」を選択します。

さくらインターネットのサーバコントロールパネル・データベース新規作成画面

「データベースの新規作成」画面が出てきたら、データベース名を入力してください。

また、初めて作成する際は「接続用パスワード」を設定するための入力欄が表示されているはずなので、パスワードを新規作成するようにしましょう!

ここまでできたら、「同意する」のチェックボックスにチェックを入れて、「データベースの作成」ボタンを押します!これで作成はOKです!

さくらインターネットのサーバコントロールパネル・データベース設定画面

ここまでの作業で作成したものも含めて、この後Laravelプロジェクトデータをさくらインターネットのレンタルサーバ上にアップロードする際には、以下の4つの情報が必要になります!

  • データベースサーバ
  • データベース名
  • データベースユーザー名
  • 接続パスワード

忘れずに保存などしておいてくださいね!

事前準備その3・GitHub上のリポジトリにデータをプッシュする

最後に事前準備としてお願いしたいのが、LaravelのプロジェクトデータをGithub上のリポジトリにプッシュしておいて頂きたいということです。

前回記載した「SourceTreeを使ったGit入門」のブログ。 前回の記事では1人の範疇でも使用することができるGit操作につい...

GitHubについては、以前Arrownでもgit入門!SourceTreeでリモートリポジトリ周りのgit運用基礎を理解の記事でもご紹介させていただいているのですが、Arrown以外でもGitHubに関してご紹介してたくさんあると思います!笑

git init
git add .
git commit -m "コミット内容を記入"
git remote add origin ここにGitHubのリポジトリアドレスを入力
(https://github.com/arrown/laravel-project.gitみたいなやつ)
git push origin master

ターミナルなどを使ってコマンドライン操作で行う場合は、最低限上記のコマンドを順番に入力して頂ければOK!

Gtihubのリポジトリ上にLaravelプロジェクトのデータがpushできた一例

要するに、GitHubにアカウント作って、リポジトリと呼ばれるものを作成し、そこにLaravelプロジェクトのデータをプッシュしていただきたいということなので、そちらをご準備ください!
(プッシュできた時のGitHub上の画面の状況を画像として掲載しておきました)

具体的なデプロイ・アップロード方法の概要について

今回ご紹介するデプロイ・アップロード方法の具体的な流れについて、概要を説明します!

LaravelプロジェクトをGitHub上にプッシュしてからさくらインターネット上にgit pull してデータを引っ張って対応する

事前準備でもお願いしたように、Laravelのプロジェクトデータは、一部をのぞいて GitHub上に送っておきます。

そして、別途ターミナルなどを使ってさくらインターネットのサーバに接続・ログインをしていただきます。

ログインをしたら、LaravelのデータをGitHub上からさくらインターネットのレンタルサーバ内に引っ張ってくるという形をとります!

全体像としては以上のような手順になりますので、抑えておいてくださいね!

ちなみに、これから具体的なアップロード・デプロイの手順を追っていくのですが、事前に知っておいて頂きたい考え方があるので、2つご紹介させていただきます!

考え方その1・Laravelプロジェクト内のデータを3つに分けて考えた上でデプロイする

LaravelはPHPで作られているフレームワークです。

さくらインターネットのレンタルサーバはPHPに対応しているため、Laravelで作成したデータを、適切な方法でサーバ上にデプロイ・アップロードをすれば、問題なく作成したプロジェクトをWeb上に公開することができます。

しかし!Laravelのデータ一式をそのまままるごと、「どーん!」とサーバ上にアップロードすれば良いというわけではないんですね・・・

今回ご紹介するアップロード・デプロイ方法では、Laravelで作成したプロジェクトデータを

  • vendorフォルダ
  • .envファイル
  • それ以外

以上3つに分けて考えた上で、デプロイを進めていきます。

考え方その2・さくらインターネットのサーバ上にターミナルでログインをしてphp artisan migrateなどのコマンドを実行するようにする

もう1つ、考え方の前提として認識をしておいていただきたいことがあります。

今回の記事をお読みいただいている方であれば、Laravelを触って何かを作った経験は当然ながらお持ちかと思います。

Laravelで開発をする中で、「データベース上にテーブルを作成する」ときに、どのようにしたか、覚えていらっしゃいますか??

そう、「php artisan migrate」のようなコマンドを、ターミナルなどのCUIソフトに打ち込み、実行することで、作成していましたよね。

じゃあ、さくらインターネットのレンタルサーバ上にLaravelのデータをデプロイ・アップロードした際や、データの更新をした際に、どこでどうやって「php artisan migrate」などのコマンドを打ち込んで実行すれば良いのでしょう??

お手持ちのPCからターミナルなどを使ってさくらインターネットのサーバにデプロイ

答えは、みなさんお手持ちのPCで、ターミナルなどのソフトを使ってさくらインターネットのレンタルサーバに接続する、です!

こうすることで、「さくらインターネットのレンタルサーバ上でphp artisan migrate」などのコマンドを実行することができます!

GitHubからデータを引っ張って来る時にも、さくらインターネットのレンタルサーバに接続をした上で行うんだよ、というお話は先述した通りですが、同じようにして、artisanコマンドを使うことができるわけなんですね!

/vendor/フォルダ内のデータと.envファイル以外のデータをさくらインターネットのサーバにデプロイする

では最初に、/vendor/フォルダ内のデータと.envファイル以外のデータを、さくらインターネットのレンタルサーバ上にアップロード・デプロイする方法を見ていきたいと思います!

GitHub上にLaravelで作成したプロジェクトのデータをプッシュ済という前提でお話を進めていきますので、その点ご注意くださいね!

さくらインターネットにSSH接続をする

まずは、お手持ちのPCにあるターミナルなどのソフトを使って、さくらインターネットのレンタルサーバ上に接続・ログインをするところからスタートします!

ssh arrown@arrown.sakura.ne.jp 
(ssh FTPアカウント@FTPサーバ名)

ターミナルで上記のようなルールに従ってコマンドを入力します!

ご用意いただいたさくらインターネットのレンタルサーバ情報を確認しながら、ご自身の情報に置き換えてみてくださいね!

入力後、パスワードを聞かれますので、さくらインターネットのレンタルサーバ情報のFTPパスワードを入力し、Enterキーを押します。

ターミナルにログインできた時の状態

接続に成功すると、Webcome To FreeBSD!というメッセージが流れます。これで接続完了です!

GitHub上からデータを引っ張ってくる

次に、GitHub上からデータを引っ張ってきます。

さくらインターネットのレンタルサーバにSSH接続でログインした後、今サーバの中のどこにいるのかを確認してみましょう。

pwd

というコマンドを実行していただくと、現在サーバの中のどこにいるのかを確認することができるようになります。

さくらインターネットのサーバ上でpwdを実行した画面

pwdコマンドを実行した際に、以下のようになっていることを確認してください。

/home/アカウント名

/home/アカウント名となっていることを確認したら、GitHubにLaravelのデータをプッシュしたリポジトリのアドレスを確認します。(以下は例です)

https://github.com/arrown/laravel-project.git

アドレスを確認したら、以下のコマンドを実行してみてください!

git clone https://github.com/arrown/laravel-project.git
(git clone GitHubのリポジトリのアドレス。適宜自分のものに置き換えてくださいね!)

ユーザー名とパスワードを聞かれたら「GitHubのユーザー名とパスワード」を適宜入力するようにしてください。

すると、あれよあれよというまにGitHubからLaravelプロジェクトのデータをさくらインターネットのレンタルサーバ上に取り込むことができます。

ここで以下のコマンドを打ってみましょう。

ls
ターミナルでさくらインターネットにログインできた後にlsコマンド実行した画面

すると、サーバ内で現在いる場所にあるデータの一覧が表示されます。

この中に、GitHubから引っ張ってきたLaravelのプロジェクトデータが入っているフォルダ名が確認できれば、ここまでは完了となります!
(僕の場合、laravel-stripe-baseというのがLaravelで作成したプロジェクトデータになります)

vendorフォルダの中身を作成する

次に、vendorフォルダの中身をアップロードします。

さくらインターネットにLaravelプロジェクトをどうデプロイするか

「あれ?Laravelのプロジェクトデータの中にvendorというフォルダもあるのだから、ここまでの作業の中でアップロードできているんじゃないの?」と思った方もいらっしゃるかもしれません。

実は、Laravelプロジェクトのデータの中に「.gitignore」というファイルが存在しています。

このファイルの中身の記述によって、/vendor/フォルダの中身はGitでの管理対象から外れ、GitHubにデータがプッシュされないような設定になっているのです。
(なぜ/vendor/フォルダ内のデータがGit管理対象外になるのかは、下記記事などを参考にしてみてください!)

/vendor/には、Laravelのコア(中心となる)ファイルもたくさん含まれているので、このままではLaravelで作ったプロジェクトデータが動きません。

ということで、/vendor/内のデータを、GitHubからさくらインターネットのサーバ上に引っ張ってきたLaravelのプロジェクトデータ内に用意するための設定を行っていきましょう!

composerインストールをする

まずは、composerをインストールします。 Laravelのデータ自体、composerを使ってインストールするものになっているので超重要な部分です!

pwd

pwdコマンドをターミナル上に入力し、現在「/home/アカウント名」の場所にいることを確認していただいたら、cdコマンドを使ってLaravelプロジェクトの中に移動します。

cd Laravelのプロジェクト名

※今回の記事のサンプルでいうと以下になります。
cd laravel-stripe-base

再びpwdコマンドを入力し、

/home/アカウント名/Laravelプロジェクト名
(例:/home/arrown/laravel-stripe-base)

が表示されればOKです。

続いて以下のコマンドをターミナルなどのCUIソフトに入力して、実行しましょう!

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

すると、ゴニョゴニョと画面が動き出します。

All settings correct for using Composer
Downloading…

Composer (version 1.9.2) successfully installed to: /home/アカウント名/Laravelプロジェクト名/composer.phar
Use it: php composer.phar

引き続き、以下のコマンドを入力します!

php composer.phar

すると、composerがあっという間にインストールされます!以下のような画面が表示されたらcomposerのインストール完了です!

composerがインストールできた状態

composerを使って/vendor/のデータをインストールする

composerをインストールすることができたら、Laravelの/vender/データをインストールしていきましょう!

以下のコマンドをターミナル上に入力し、実行してください!

php composer.phar install
さくらインターネットのサーバ上でcomposer installを実行

上記画像のような画面になれば、/vendor/フォルダ内に相当するデータをインストールすることができた状態になります

lsコマンドをターミナル上に入力すると

Laravelのプロジェクトデータ

Laravelプロジェクト内のデータ一覧が表示されるかと思いますが、vendorが表示されていれば、ここまでの作業は成功です!

.envファイルをサーバ上のLaravelプロジェクトに複製する

ここまでで、Laravelのプロジェクトデータの大半をアップロード・デプロイすることができました!

続いて、Laravelプロジェクトとデータベースを接続するための設定を行っていきます!

.vimrcを使ってさくらインターネット上のサーバに SSH接続後のテキスト・コード編集をしやすくする

データベースとの接続設定の前に、さくらインターネット上のレンタルサーバ限定(?)でやっておいた方がいいことがあります。

この後、引き続きターミナル上でのコマンド操作によって、Laravelの中に.envファイルを作成し、データベース情報を入力していきます。

その際に、コード編集作業が発生するのですが、さくらインターネットのレンタルサーバの初期設定のままだと、コード編集時に「deleteキー」が使用できないようで、文字を削除する時に著しく不便です。

まずは、deleteキーを使えるように設定を変更するために必要な処理をしていきたいと思います!

cd

上記のようにcdコマンドのみを入力して、一旦サーバ内の現在地を

/home/アカウント名

に相当する場所に移動します。続いて、以下のコマンドを入力しましょう。

vim .vimrc

すると、以下のような画面になります。

さくらインターネットのLaravelでvim起動した画面

新しく.vimrcというファイルが作成されます。(まだ未保存状態)

このまま「アルファベットのi(アイ)」を押すと、INSERTモードというものに切り替わり、文字入力・編集をすることができるようになるので、以下のコードを貼り付けましょう。

set backspace=indent,eol,start

貼り付け・入力することができたら、「escキー」を押す→「:wq」と入力して、エンターキーを押します。

すると、.vimnrcファイルの中身を保存することができます。

これで、deleteキーを使えるようにするための設定が完了です!

.envファイルを作成する

では、いよいよLaravelプロジェクトのデータと.データベースを接続するための設定をしていきましょう!

まずは、以下のコマンドをターミナルに入力・実行し、Laravelプロジェクトの中に再び移動します。

cd laravelプロジェクト名

移動をすることができたら、以下のコマンドを実行し、.envファイルの元データを新規作成します。

vim .env

すると、先ほど.vimrcファイルを作成した時と同じような画面になりますので、ローカル上で作成していた.envファイルの内容を貼り付けてください!

.envファイルの中身を入力する

貼り付けをすることができたら、データベースに関連する部分のみ、「さくらインターネットのレンタルサーバで作成したデータベース」の情報になるように、関連部分を書き換えします。

DB_CONNECTION=mysql
DB_HOST=データベースサーバ
DB_PORT=3306
DB_DATABASE=さくらインターネットのレンタルサーバで作成したデータベース名
DB_USERNAME=アカウント名
DB_PASSWORD=データベースパスワード

事前準備の段階で確認頂いたさくらインターネットのレンタルサーバに関する情報や、作成頂いたデータベースの情報をしっかりと確認し、ご入力くださいね!

貼り付け・入力することができたら、「escキー」を押す→「:wq」と入力して、エンターキーを押します。

これで、.envファイルの設定はOKです!

php artisan key:generateをする

続いて、アプリケーションキーの設定をします!以下のコマンドを入力しましょう!(Laravelのプロジェクト内にいることを確認してくださいね!)

php artisan key:generate

入力し実行をした後、「Application key set successfully.」というメッセージが表示されれば、アプリケーションキーの設定完了です!

php artisan migrate

では、 Laravelプロジェクトとデータベースが接続できているかを確認する意味も含めて、ターミナル上でphp artisan migrateを実行しましょう!

php aritsan migrate

実行して、以下のような表示になれば、OKです!

php artisan migrateを実行した画面

エラーが出る場合は、エラー内容を確認してみてください!

データベースの接続情報が正しいかなど、エラー内容に応じて諸々確認しましょう!

ここまでで、ほとんどの設定は完了になります!

public/index.phpをwww内に複製・移動する

いよいよ、設定・作業も佳境です!

今の状況を改めて確認すると、Laravelプロジェクトが以下の場所に存在する形となります。

/home/アカウント名/Laravelプロジェクト名

しかし、さくらインターネットのレンタルサーバにおいては、

/home/アカウント名/www

の中にあるデータがインターネット上に公開されるという決まりがあるため、このままではLaravelで作成したプロジェクトの内容をWebブラウザで確認することができません。

なので、wwwフォルダ内に、最低限必要なファイルのみを複製・移動するという方法を取りたいと思います!

publicフォルダデータを複製するための場所に移動・用意

まずは、以下のコマンドを順番に実行していきましょう!

cd 
cd www

※以下は、Laravelのプロジェクトを「アカウント名.sakura.ne.jp/フォルダ名」でアクセスできるようにしたい場合
mkdir フォルダ名
(例:アカウント名.sakura.ne.jp/stripe)
cd フォルダ名


続いて、以下を実行します!

cp -r /home/アカウント名/Laravelプロジェクト名/public/* /home/アカウント名/www/


※以下は、Laravelのプロジェクトを「アカウント名.sakura.ne.jp/フォルダ名」でアクセスできるようにしたい場合
cp -r /home/アカウント名/Laravelプロジェクト名/public/* /home/アカウント名/www/フォルダ名

すると、/home/アカウント名/www/ (フォルダ名)フォルダの中に、Laravelプロジェクトの中ののpublicフォルダ内のデータがコピーされます!

続いて、以下をターミナルに入力・実行するようにします。

(/home/アカウント名/www/にデータをコピーした場合)
cd /home/アカウント名/www/
vim index.php

(/home/アカウント名/www/フォルダ名にデータをコピーした場合)
cd /home/アカウント名/www/フォルダ名
vim index.php

すると、以下のような画面になります。

index.phpをvimで開いた時の画面

ここで、

require __DIR__.'/../vendor/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';

の2箇所を、データの置き場所に応じて記述変更します。以下をご参照ください!

(/home/アカウント名/www/にデータをコピーした場合)
require __DIR__.'/../Laravelプロジェクト名/vendor/autoload.php';
$app = require_once __DIR__.'/../Laravelプロジェクト名/bootstrap/app.php';


(/home/アカウント名/www/フォルダ名にデータをコピーした場合)
require __DIR__.'/../../Laravelプロジェクト名/vendor/autoload.php';
$app = require_once __DIR__.'/../../Laravelプロジェクト名/bootstrap/app.php';

編集することができたら、「escキー」を押す→「:wq」と入力して、エンターキーを押します。

以上で、必要な作業は終了です!

まとめ

ここまでの作業を行うことで、アカウント名.sakura.ne.jp(場合によっては/フォルダ名を追加)をブラウザのアドレスバー に入力してEnterキーを押すことで、プロジェクトの中身が表示されれば、完璧です!

ここまでご覧いただきありがとうございました!

シェアする

  • このエントリーをはてなブックマークに追加

フォローする