さくらのレンタルサーバでLaravelを動かす方法

今回はさくらのレンタルサーバLaravelの環境を構築する方法を説明します。

Composerのインストール

Laravelのインストールや管理にはComposerが必要なのでインストールを行います。

まず、SSHでさくらのレンタルサーバへログインします。

SSH を利用したい | さくらのサポート情報

ログインしたら「cd ~」でホームディレクトリに移動します。例えばユーザ名がabcなら/home/abcに移動します(pwdコマンドで確認できます)。そして「cd bin」でbinフォルダに移動します。

次にComposerをダウンロードします。以下のページからダウンロードに使用するコマンドを取得できます。

Download Composer Latest: v2.5.5

記事執筆時点では以下のようなスクリプトでした。

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

このスクリプトを、SSHでログインしているターミナルにコピペで貼り付けて実行します。実行したら現在いるフォルダの中に composer.phar というファイルが生成できていると思います。(lsコマンドで確認できます)

そうしたら、以下のコマンドでファイル名を変更します。

mv composer.phar composer

cd コマンドで再度ホームディレクトリに戻ります。composer about コマンドを実行して、以下のようにバージョン情報などが表示されたら成功です。

Laravelのインストール

次にLaravelをインストールしたいディレクトリに移動します。今回は例として、以下のフォルダにインストールします。

/home/<ユーザー名>/www/website/<ドメイン名>

インストールしたいフォルダーに移動したら、以下のコマンドを実行します。(末尾のピリオドに注意!)

composer create-project laravel/laravel:^<バージョン> .

以下のようにインストールが始まります。

以下のように表示されればインストール完了です。(バージョンによって表示は違います)

ドメインの設定

次にドメインの設定を行います。インストールしたディレクトリの中のpublicフォルダをルートに指定し、ドメインの設定を行って下さい。

設定したドメインにアクセスし、以下のような画面が出ればインストール完了です。

しかし、このままではドメイン関連でエラーが起きてしまうかもしれないので、.envファイルを編集します。インストールしたディレクトリで 「vim .env」を実行し、vimで編集を行います。ファイルの上部にある、以下の設定の中のAPP_URLをインストールしたドメインに書き換えます(例: APP_URL=https://example.com (空白を開けないこと))。

APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:<ランダムな文字列>
APP_DEBUG=true
APP_URL=https://example.com

データベースの設定

Laravelではデータベースを使うことが多いと思うので、データベースの設定を行います。さくらのレンタルサーバの公式マニュアルに従ってデータベースを作成します。

データベースの作成・追加・削除・パスワード再設定をしたい | さくらのサポート情報

作成できたら、「ドメインの設定」の最後に編集を行った.envファイルを再度開きます。DBと書かれたところの項目を、以下を参考に書き換えます。

DB_CONNECTION=mysql
DB_HOST=mysql○○.<ユーザー名>.sakura.ne.jp
DB_PORT=3306
DB_DATABASE=<ユーザー名>_DB名
DB_USERNAME=<ユーザー名>
DB_PASSWORD=<パスワード>

書き換えができたら保存を行い、以下のコマンドを実行して接続を確認します。

php artisan db

コマンドを実行した際に「ERROR 2003 (HY000): Can't connect to MySQL server on」等のエラーが出た場合は正常に接続できていないので、設定を再度確認して下さい。正常に接続できた場合は以下のような表示が出ます。

これが出ていればデータベースの設定は完了です。(migration等もできると思います)

セキュリティ設定

現在の設定では、.envファイルのURLを直接指定すると、ファイルの中身を見ることができてしまいます。.envファイルにはデータベースのパスワードなど、公開しては良くない情報が記載されていますので、外部からアクセスできないように設定します。

具体的には、.envファイルと同じディレクトリに.htaccessファイルを設置し、そこに.envファイルへのアクセスを拒否する設定を書き込みます。まずは「vim .htaccess」を実行し、vimで編集を行います。そして、.htaccessファイルに以下の設定を書き込んでください。

<Files .env>
 deny from all
</Files>

まとめ

今回はさくらのレンタルサーバでComposerを使ってLaravelのインストールを行いました。レンタルサーバーでSSHで接続し、コマンドで簡単にLaravelをインストールできるのは結構珍しいと思います。非常に使いやすいので、Laravelをホストしたいと考えている方はぜひさくらのレンタルサーバをご検討ください!