エックスサーバーに Craft CMS をインストールするときの注意点
目次
エックスサーバーに 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 のインストール直後の画面が表示されます。
以上です。