レンタルサーバではじめるモダンなDrupal8環境

November 25, 2016

目的

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 で管理できるようになった。(パチパチ) 尚、今回の作業はおそらくサポート対象外となるであろうものが含まれるので試される方は注意されたい。


Profile picture

Webのフロントエンドからバックエンド、プロトタイピングからプロダクションまで。定額の開発サービスも。詳しくはAboutページで。