Edited at

XREAでLaravel5.6を導入する方法

More than 1 year has passed since last update.


概要

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';


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


参考記事