エックスサーバーに composer を使って Craft CMS をインストールするときの注意点をご紹介します。
エックスサーバーに Composer 経由で Craft CMS をインストールするときの注意点です。
エックスサーバーはサーバーパネルでドメインごとに 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 のバージョンを変更する必要があります。
まず、ホームディレクトリに移動して、.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
になりました。
エックスサーバーでは、初期ドメインだと /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 のインストール直後の画面が表示されます。
以上です。