C-RTX BLOG

Webやネットワークなどなど

Laravel5をさくらのレンタルサーバで動かす(スタンダードプラン以上)

   

PHPのフレームワークであるLaravel5をさくらのレンタルサーバのスタンダードプランで動かしてみた。Laravel4やLumenも同様の手順で動かせると思う。

注意!

sshでリモートログインして操作するため、ライトプランでは今回説明する方法を使えないので注意。

環境

  • さくらのレンタルサーバ(sshを使うためスタンダードプラン以上)
  • Laravel 5.1

準備

Laravel5をさくらのレンタルサーバに動かすためにいくつかの準備を行う。

PHPのバージョンを5.6に変更

最近のLaravel5ではPHPのバージョン5.9.9以上が要求されるため、さくらのレンタルサーバのコントロールパネルでPHPのバージョンを変更する。

サーバコントロールパネルにログインしたら、左側にあるメニューの「アプリケーションの設定」の「PHPのバージョン選択」をクリックする。

スクリーンショット 2015-09-22 17.09.50

PHPのバージョン選択の画面になったら、新しいバージョンを「PHP 5.6」にして、変更ボタンをクリックする。

スクリーンショット 2015-09-22 17.09.35

現在のバージョンが「PHP 5.6」になっていたら、設定完了。

スクリーンショット 2015-09-22 17.16.38

Composerのインストール

LaravelではComposerを使うので、レンタルサーバで使えるようにする。

まず、レンタルサーバにsshでログインする。MacOSXなどUNIX系OSを使っている場合はターミナルからsshコマンドを使う。Windows等の場合は「Tera Term」等を使用する。初期ドメインが接続先のホスト名になる。sshコマンドの場合は、以下のコマンドでログインできる。

$ ssh {アカウント名}@{初期ドメイン}

アカウント名がexampleの場合の例)
$ ssh example@example.sakura.ne.jp

レンタルーサーバにsshでログインしたら、ホームディレクトリにbinディレクトリを作っておく。

% mkdir bin

.profileファイルをcatコマンドなどで編集し、環境変数PATHに「$HOME/bin」が含まれているか確認しておく。

% cat .profile

スクリーンショット 2015-09-22 17.36.40

 

composerをbinディレクトリにインストールし、実行権限を付与しておく。

% curl -sS https://getcomposer.org/installer | php -- --install-dir=bin --filename=composer
% chmod 755 bin/composer

composerをアップデートしておく。もし、「Command not found」となり動かなかったら、一旦、ログアウト(exitコマンドでログアウトできる)してログインしなおすといいかもしれない。

% composer self-update

インストールしたばかりなので既に最新だよ!っていわれるかもしれないが、もしかしたら以下のような表示がでるかもしれない。

スクリーンショット 2015-09-22 18.25.44error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

こうなった場合、新しい証明書が必要なので、以下のコマンドでダウンロードする。

% wget http://curl.haxx.se/ca/cacert.pem

次に、composerでこの証明書を使うようにしてcomposerをアップデートする。

% SSL_CERT_FILE=~/cacert.pem composer self-update

以後、composerを使うときは、以下のように使用する。

% SSL_CERT_FILE=~/cacert.pem composer

Laravel5を使ったプロジェクトのインストール

Laravel5を使ったプロジェクトをscp, ftp, gitなどを使って、ホームディレクトリ(wwwではなく、さっきログインしたばかりの場所)に保存するが、今回は新しくLaravelのプロジェクトを作成することにする。プロジェクトのディレクトリ名は「laravel_project」とする。パスは以下の通り。「~/」はホームディレクトリを表します。

~/laravel_project
または
/home/{アカウント名}/laravel_project

Laravelプロジェクトの作成

※既存のプロジェクトをインストールする場合は、この手順をスキップ。

composerかlaravelコマンドでプロジェクトを作成できるが、今回はlaravelコマンドを使ってプロジェクトを作成してみる。

まず、laravelコマンドを以下のコマンドでインストールする。

% composer global require “laravel/installer=~1.1”
(SSL_CERT_FILEを使う場合は以下のコマンド)
% SSL_CERT_FILE=~/cacert.pem composer global require “laravel/installer=~1.1”

これで「~/.composer/vendor/bin/」に「laravel」コマンドがインストールされたので、以下のコマンドで「laravel_project」を作成する。

% ~/.composer/vendor/bin/laravel new laravel_project

これでLaravelのプロジェクト「laravel_project」が作成された。

依存パッケージのインストール(vendorがないとき)

※依存パッケージ(vendorディレクトリ以下)がインストール済みの場合はスキップ

gitでLaravelプロジェクトをインストールした場合、vendorディレクトリがないはずなので、依存パッケージ(vendorディレクトリ以下)をインストールする必要がある。

インストールしたプロジェクトのディレクトリに移動して、「composer install」を実行して依存パッケージをインストールする。

% cd ~/laravel_project
% composer install
(SSL_CERT_FILEを使う場合は SSL_CERT_FILE=~/cacert.pem を先頭に追加してcomposerを実行)

依存パッケージをアップデートしたいとき

※依存パッケージをアップデートしない場合はスキップ

インストールしたプロジェクトのディレクトリに移動して、「composer update」を実行して依存パッケージをアップデートする。

% cd ~/laravel_project
% composer update
(SSL_CERT_FILEを使う場合は SSL_CERT_FILE=~/cacert.pem を先頭に追加してcomposerを実行)

Laravelプロジェクトの公開

ここまでの手順でホームディレクトリにLaravelのプロジェクト「laravel_project」がインストールされていると思う。次は公開の手順に進む。

サブディレクトリにはしたくない

通常、Laravelではpublicディレクトリを公開するDocument Rootと設定する。しかし、レンタルサーバでは好きなディレクトリを設定できず、wwwディレクトリ固定となっている。しかし、今回は以下のようなURLでアクセスしたい。

http://{アカウント名}.sakura.ne.jp/
※ http://{アカウント名}.sakura.ne.jp/publicなどのサブディレクトリではない

publicディレクトリの中身をwwwディレクトリにコピー

Laravelプロジェクトのpublicディレクトリはどこにあっても大丈夫みたいなので、中身をwwwディレクトリの中にコピーする。

% cp -r ~/laravel_project/public/* ~/www/

.htaccessの編集

さくらのレンタルサーバでは.htaccessのOptionsが許可されていないようなので、viコマンドなどで.htaccessを編集してOptionsを指定している箇所を削除する。viコマンドの使い方は省略。

% cd ~/www
% vi .htaccess

スクリーンショット 2015-09-22 19.41.31.htaccess(編集前)

スクリーンショット 2015-09-22 19.41.49.htaccess(Options削除後)

index.phpの編集

index.phpを置くディレクトリが変わったので、index.phpも編集して「laravel_project」へのパスを修正する必要がある。viなどでindex.phpを編集する。ここでは「laravel_project」のパスを相対パスで記述しているが、絶対パスで記述してもいい。

% cd ~/www
% vi index.php

スクリーンショット 2015-09-22 19.50.52index.php(編集前)

スクリーンショット 2015-09-22 19.51.45index.php(編集後:laravel_projectの場所を相対パスで指定する場合)

設定完了!ブラウザから開いてみる

これまでの手順でLaravelプロジェクトの公開ができているはずなので、ブラウザでアクセスしてみて見事表示されたら完了。データベースを使う場合、そちらの設定などもお忘れずに。

スクリーンショット 2015-09-22 19.56.44

 - Laravel ,