エックスサーバーに Craft CMS をインストールするときの注意点

エックスサーバーに composer を使って Craft CMS をインストールするときの注意点をご紹介します。

Craft CMS Logo

エックスサーバーに Composer 経由で Craft CMS をインストールするときの注意点です。

CLI でのPHP のバージョンが古い

エックスサーバーはサーバーパネルでドメインごとに PHP のバージョンを変更することができます。2020年6月7日現在では PHP 7.3 の設定が推奨されています。

しかし、Composer で Craft CMS をインストールするとき(Craft に限った話ではありません)は、PHP のバージョンがサーバーパネルで設定したものではなく、CLI(コマンド・ライン・インターフェース)での PHP のバージョンになります。残念ながらまだ CLI での PHP のバージョンは 5.4 系になっています。

したがって、そのまま Craft CMS を下記のコマンドでインストールしようとするとエラーになってしまいます。

composer create-project craftcms/craft craftcms

そこで、Craft CMS をインストールするまえに、CLI での PHP のバージョンを変更する必要があります。

CLI での PHP のバージョンを変更

まず、ホームディレクトリに移動して、.bash_profile を編集します。

$ cd
$ vi .bash_profile

.bash_profile の中の PATH=$PATH:$HOME/bin という部分を下記のように変更します。

PATH=$HOME/bin:$PATH

簡単に解説すると、もともと PATH 変数には下記のような値が入っています(見やすいように : で改行して表示します)。

/usr/lib/courier-imap/bin
/usr/local/bin
/usr/bin
/usr/local/sbin
/usr/sbin
/home/サーバーID/.composer/vendor/bin

これに最初に書いてあった PATH=$PATH:$HOME/bin だと、一番最後に /home/サーバーID/bin が追加されます。しかし、例えば php -v とコマンドを打ったときこの PATH にセットされている中で最初に見つかったものから使われてしまうので、エックスサーバーの場合 /usr/bin/php にあるものが使われてしまい、それが PHP 5.4.16 というわけです。

ちなみに PHP の他のバージョンは /usr/bin の中に /usr/bin/php7.3 のように入っています。

$ ls -1 /usr/bin | grep php
jsonlint-php
php
php5.1
php5.3
php5.4
php5.5
php5.6
php5.6-cgi
php7.0
php7.0-cgi
php7.1
php7.1-cgi
php7.2
php7.2-cgi
php7.3
php7.3-cgi
php7.4
php7.4-cgi
php-cgi
php-fcgi5.1
php-fcgi5.3
php-fcgi5.4
php-fcgi5.5
php-fcgi5.6
php-fcgi7.0
php-fcgi7.1
php-fcgi7.2
php-fcgi7.3
php-fcgi7.4
phpize

今、PATH=$HOME/bin:$PATH として先頭に /home/サーバーID/bin を追加したので、ユーザーのホームディレクトリ直下の bin ディレクトリに php が入ればいいわけです。

今回は、php7.3 を使いたいので、/home/サーバーID/bin の中に php として /usr/bin/php7.3 へのシンボリックリンクを作成します。

$ cd
$ mkdir bin
$ cd bin
$ ln -s /usr/bin/php7.3  php

これで準備はできましたので、先程変更した .bash_profile を再読み込みして反映させます。

$ source ~/.bash_profile
$ php -v
PHP 7.3.16 (cli) (built: Apr  9 2020 20:08:27) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.16, Copyright (c) 1998-2018 Zend Technologies

これで CLI の PHP のバージョンが 7.3 になりました。

Craft CMS はどこにインストールする?

エックスサーバーでは、初期ドメインだと /home/サーバーID/サーバーID.xsrv.jp/public_html 、独自ドメインだと /home/サーバーID/独自ドメイン/public_html が公開ディレクトリになります。

したがって、Craft CMS 本体は公開ディレクトリの中には入れずに、/home/サーバーID/サーバーID.xsrv.jp 直下にインストールすると良いでしょう。

インストールコマンドの流れは以下のとおりです。

$ cd
$ cd サーバーID.xsrv.jp
$ cd composer create-project craftcms/craft craftcms

これでインストールすると、Craft の公開ディレクトリに必要なファイルは /home/サーバーID/サーバーID.xsrv.jp/craftcms/web に入っていますので、これを public_html に移動します(エックスサーバーデフォルトのファイルは削除します)。

$ cd
$ cd サーバーID.xsrv.jp/craftcms/web
$ mv .htaccess ../../public_html/.
$ mv index.php ../../public_html/.
$ mv web.config ../../public_html/.
$ cd ../../public_html
$ rm default_page.png
$ rm index.html

そして /home/サーバーID/サーバーID.xsrv.jp/public_html/index.php を少し編集します。

$ cd
$ cd サーバーID.xsrv.jp/public_html
$ vi index.php

# index.php 内の下記の部分を、
define('CRAFT_BASE_PATH', dirname(__DIR__));

# 下記のように変更します
define('CRAFT_BASE_PATH', dirname(__DIR__) . '/craftcms');

これで http://サーバーID.xsrv.jp にアクセスすれば Craft CMS のインストール直後の画面が表示されます。

以上です。

Published 2020-06-07
Updated 2020-06-07