PHP
Composer
レンタルサーバー
xrea
laravel5.6

概要

XREA(エクスリア)のレンタルWEBサーバに
Laravel 5.6を導入する方法を解説します。

ご注意

:warning: 2018年現在、XREAではLaravelを公式にサポートしていないようです。
※サーバのコントロールパネルからワンクリックで導入したりはできない模様。

:warning: レンタルWEBサーバ上での運用は自己責任で、
WEBサイトの動作に関する不具合の問題発生時も自己解決となります。

:warning: この記事自体も不備がある可能性があります。もし何かありましたらご指摘いただけましたら幸いです。

よろしくお願いします。

導入の流れ

  1. WEBサーバのコンパネからSSH接続IP許可
  2. SSHでサーバにログイン
  3. インストールに必要なディレクトリ作成
  4. Composerをインストール
  5. Laravel5.6をインストール
  6. npmをインストール
  7. Laravel5.6の動作パス設定を変更

導入方法

※ 新コンパネで解説していきます。

1. WEBサーバのコンパネからSSH接続IP許可

  • 左側のメニューから、
    サイト設定->ツール/セキュリティーを選択してください。
    • サイト設定
      xrea001.png

    • サブメニューの一番下のツール/セキュリティ xrea002.png

  • 「注意点」を読んで、SSH接続IP許可の項目でボタンをクリックし、IPが一致しているなら許可します。

2. SSHでサーバにログイン

Teratermなどのツールを使用します。
接続情報はFTPと同じです。

  • サイト設定 -> FTP設定を開いて、
    接続に必要な情報を確認します。
  • SSHクライアントに入力してサーバにログインします。
    ※ 反映には5分以上かかることもあるため焦らず待ちます。

3. インストールに必要なディレクトリを作成

目標とするディレクトリ構成は次の通りです。
~/laravel/hoge.s999.xrea.comは後述のLaravelインストール時に作成するため、作らないでください。
hoge.s999.xrea.comは目的に合わせて書き換えてください。

~/
├─ /laravel
│   └─ /hoge.s999.xrea.com <- Laravel本体ディレクトリ
│
└─ /public_html
    └─ /hoge.s999.xrea.com <- 公開部分ディレクトリ

※ 公開部分ディレクトリが本来のLaravelルート下の/publicに相当します。
※ この構成になっているのは、ドメインWEBで複数のLaravelを一つのサーバで運用するためです。
※単一サイトで運用する場合、~/public_html/hoge.s999.xrea.com~/public_html に読み替えてください。

  • 下記のようにディレクトリ作成を行います。
-bash-4.2$ mkdir laravel
-bash-4.2$ mkdir public_html/hoge.s999.xrea.com

4. Composerをインストール

  • まず、自分のルートに移動します。
-bash-4.2$ cd ~/
  • 次にインストーラをとってきます。
-bash-4.2$ cd ~/laravel/hoge.s999.xrea.com
-bash-4.2$ php72cli -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
  • 改ざんされていないかチェックします
-bash-4.2$ php72cli -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
  • composerをインストールします
-bash-4.2$ php72cli composer-setup.php
  • セットアップファイルを削除。これでComposer本体は準備完了です。
-bash-4.2$ php72cli -r "unlink('composer-setup.php');"

Laravel 5.6をインストール

:warning: XREAのサーバではregister_argc_argvがApacheでオフになっているため、
-d register_argc_argv=1のオプションをつける必要があります。
:warning: ジョブの実行時間が3分間までのため、Killedと表示された場合は再実行しましょう。
:warning: php_unitがextensionの関係でインストールできないため、オミットします。

  • 仮インストール実施

※ここで一度、必須ライブラリが無いためエラーになり、インストールが中断します。

-bash-4.2$ php72cli -d register_argc_argv=1 "/virtual/(あなたのユーザ名)/composer.phar" create-project lar
avel/laravel hoge.s999.xrea.com --prefer-dist
  • composerの依存関係を修正

Laravelルートで下記のコマンドを実行し、"phpunit/phpunit": "^7.0"を除去します。
※ この影響でサーバ上ではテストが使用できなくなります。

-bash-4.2$ composer remove --dev phpunit/phpunit
  • インストール再試行
-bash-4.2$ php72cli -d register_argc_argv=1 "/virtual/(あなたのユーザ名)/composer.phar" update

これでLaravelの設置は完了です。

npmをインストール

  • 下記コマンドを実行します。時間制限でkillされる場合、機能ごとにインストールするか何回か再実行してください。
-bash-4.2$ npm install

Laravel5.6の動作パス設定を変更

publicの中身を移動

Laravelの公開ディレクトリの内容を移動します。
下記のようにコマンドを実行してください。

-bash-4.2$ mv ~/laravel/public/* ~/public_html/hoge.s999.xrea.com/

パス設定を変更

移動した~/public_html/hoge.s999.xrea.com/index.phpをエディターで開き、以下の2箇所を変更します。

変更前
require __DIR__.'/../vendor/autoload.php';
変更後
require '/virtual/(あなたのユーザーネーム)/laravel/hoge.s999.xrea.com/vendor/autoload.php';
変更前
$app = require_once __DIR__.'/../bootstrap/app.php';
変更後
$app = require_once '/virtual/(あなたのユーザーネーム)/laravel/hoge.s999.xrea.com/bootstrap/app.php';

以上で実行できるようになるはずです。

参考記事