目的
Composer を使って Drupal を管理したいし、できる環境を見つけておきたい。 けど、レンタルサーバってそれぞれ制約が違う ソースコードで全てを管理しておけば楽なのでそうしたい。 中級者向けくらいの記事かなと思ってます。
レンタルサーバ探し
AWS とか Heroku とか使えばいいんだけど、そうじゃないケースもあったので探して見ました。最初の候補はさくらインターネットでスタンダードプランを試したけど、Drupal8 が素直にインストールできなさそうだったのでやめた。サーバの制約で.htaccess とかを書き換えるとかはないかな。 次は Xserver。結論から言えばここを試用中で、その詳細は以下から。
Xserver で環境設定と Drupal のインストール
大前提としてまず、Drupal は PHP のパッケージマネージャーの Composer から管理できます。Using Composer to manage Drupal site dependencies | Drupal.org 不要な人には不要だと思うけど、僕は必須だと思ってます。
早速 SSH で繋いで確認すると composer が使える
$ composer -V
Composer version 1.2.1 2016-09-12 11:27:19
php のバージョンは古め
$ php -v
PHP 5.4.16 (cli) (built: Aug 11 2016 21:24:59)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
with Zend OPcache v7.0.5, Copyright (c) 1999-2015, by Zend Technologies
Composer 経由で Drupal をインストールするも失敗
$ composer create-project drupal-composer/drupal-project:8.x-dev hogehoge --stability dev --no-interaction
Installing drupal-composer/drupal-project (8.x-dev 3b9ee0d3a1c9363d53fc6da4111701269496e9ca)
- Installing drupal-composer/drupal-project (8.x-dev 3b9ee0d)
Cloning 3b9ee0d3a1c9363d53fc6da4111701269496e9ca
Created project in hogehoge
> DrupalProject\composer\ScriptHandler::checkComposerVersion
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- drupal/console 1.0.0-rc9 requires php ^5.5.9 || ^7.0 -> your PHP version (5.4.16) does not satisfy that
(長いので以下省略)
対応策
direnv
direnv はディレクトリごとに環境変数を設定できる便利なツール。これを使って、php5.6 へのパスを通した。direnv/direnv: Unclutter your .profile /usr/bin/
や/opt/
以下に他のバージョンの PHP も入っているので、direnv を利用してそれらを使うことにした。
$ cat .envrc
PATH_add ./hogehoge/vendor/bin
PATH_add /opt/php-5.6.24/bin
おまけ
また、ホームディレクトリ以下のbin
にもパスが通っているからディレクトリを作り最新版の composer をインストールした。
まとめ
以上で Xserver でも Drupal を Composer で管理できるようになった。(パチパチ) 尚、今回の作業はおそらくサポート対象外となるであろうものが含まれるので試される方は注意されたい。