drush (細かいことはできないがシンプルで使いやすい。普段のアップデートとかに便利。本体のダウンロード、データベースの作成も含めたインストールもできる。)
Drupal Console (スクリプト通りにインストールさせられる。同じ環境を数多く作りたいとか、少しずつ設定を変えてインストールしたいとか、そういうのに便利なのかな。あとは、サイトを数多く管理している人には便利なのかもしれない。)
composer (phpのツール。pearのようなもの。依存関係を解決してインストールするもの。drupalも含めた広い範囲の依存関係を解決しながらインストールできる。)
がある。
で、今回、
Composerを使ってdrupal8をインストールする。
主にdrupalサイトのUsing Composer to manage Drupal site dependenciesを見ながらやった。
最初にcomposerのインストールから、
(getcomposer.orgのダウンロードページ、その中のCommand-line installationに説明がある。)
適当なディレクトリで
composerのインストーラーをcomposer-setup.phpという名前にしてネットからコピー。
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
インストーラーを実行して実行ファイルを作成する。
php composer-setup.php
いらなくなったcomposer-setup.phpを削除する。
php -r "unlink('composer-setup.php');"
/usr/local/bin/にcomposerという名前で移し、どこからでも使えるようにする。
mv composer.phar /usr/local/bin/composer
最後に動作確認(composerのバージョンなどの表示)
composer
--------------------------------------------------------------------------------------
drupal8のインストール
Available starting templates
feature | drupal-composer/drupal-project | drupal/drupal ^8.3.0 |
---|---|---|
open source | yes | yes |
directory structure | docroot is subdir | docroot is repo root |
installer-paths config | yes | yes |
repositories config | yes | yes |
updates scaffold files | yes | no |
includes drush | yes | no |
includes drupal console | yes | no |
This table is from "Using Composer to manage Drupal site dependencies" of drupal's site.
表にあるように
drupal-composer/drupal-project
(ドキュメントルート下のwebといサブディレクトリにdrupalコアがインストールされる。)
drupal/drupal
(ドキュメントルートにdrupalのコアがインストールされる。)
(ドキュメントルート下のwebといサブディレクトリにdrupalコアがインストールされる。)
drupal/drupal
(ドキュメントルートにdrupalのコアがインストールされる。)
の2種類のインストール方法がある。
とりあえず、drupal-composer/drupal-projectの方をやってみる。
下のコマンドでサイトがダウンロードされる。
composer create-project drupal-composer/drupal-project:8.x-dev /var/www/html/hogedru --stability dev --no-interaction
rootで進めると
Do not run Composer as root/super user! See https://getcomposer.org/root for details
といわれるが、ルートを抜けれるように止まるオプションがあるわけでもなく、どんどんインストールが進む。インストール後に所有者をapacheなどにしておけばいいのかな。
Package operations: 102 installs, 0 updates, 0 removals
と、結構な数がインストールされた。
/var/www/html/hogedru
にcomposer.jsonやdrushディレクトリ、その他が作られている。
/var/www/html/hogedru/web
がdrupal8のドキュメントルートになっている。
にcomposer.jsonやdrushディレクトリ、その他が作られている。
/var/www/html/hogedru/web
がdrupal8のドキュメントルートになっている。
composer.jsonを見てみると、
drupal.orgのリポジトリURLが追加されている。
"repositories": [
{
"type": "composer",
"url": "https://packages.drupal.org/8"
}
],
下の2行は、安定板がなければ、開発版を使う。安定板があれば安定板を優先して使う。という意味。devの他にはstable, RC, beta, alpha。
"minimum-stability": "dev",
"prefer-stable": true,
スクリプトの実行。
pre-install、pre-update、post-install、post-updateの中で好きなタイミングでスクリプトを書いて実行できる。
"scripts": {
"drupal-scaffold": "DrupalComposer\\DrupalScaffold\\Plugin::scaffold",
"pre-install-cmd": [
"DrupalProject\\composer\\ScriptHandler::checkComposerVersion"
],
"pre-update-cmd": [
"DrupalProject\\composer\\ScriptHandler::checkComposerVersion"
],
"post-install-cmd": [
"DrupalProject\\composer\\ScriptHandler::createRequiredFiles"
],
"post-update-cmd": [
"DrupalProject\\composer\\ScriptHandler::createRequiredFiles"
]
},
インストールパスを指定する。
"extra": {
"installer-paths": {
"web/core": ["type:drupal-core"],
"web/libraries/{$name}": ["type:drupal-library"],
"web/modules/contrib/{$name}": ["type:drupal-module"],
"web/profiles/contrib/{$name}": ["type:drupal-profile"],
"web/themes/contrib/{$name}": ["type:drupal-theme"],
"drush/contrib/{$name}": ["type:drupal-drush"]
ここで、インストール。
今、/var/www/html/hogedruの下にwebディレクトリがあって、それがdrupal8のルートになっている。
/var/www/html/hogedru
で、
composer install
すると、
composer.jsonの記述に従ってダウンロード、インストールされる。
その後、drushのインストールか、手動でmysqlデータベースを作って、いつものdrupal8インストール作業を開始する。
hogedruをルートとしたサイトが作られたのかと思ったが、hogedru/web/の中にdrupal本体が入っている。どういうこと?やってみないとわからない。
drupal/drupalのインストールは
composer create-project drupal/drupal /var/www/html/hogedru
こっちの場合は、htmlディレクトリにdrupalドキュメントルートhogedruが作られる。
これもインストール後にドキュメントルートにいろいろなファイルが作られる。
余計なファイルはいらないというのであれば、composerを使ってのインストールはやめた方がいいかもしれない。
-------------------------------------------------------------------------------------
composerを使ってモジュール、テーマをセットする。
composer require drupal/<modulename>
例えば: composer require drupal/token
composerはモジュールをダウンロードするけど、インストールはしない。
有効にするにはdrushを使うこと。
drush en <modulename> -y
モジュールのステータスを見るには
drush pm-list
を使うこと。
-------------------------------------------------------------------------------------
drupalでComposerを使ってみて。
まだよくわかっていない時点での感想。
使った感じではdrush8だけを使った方がシンプルでいいのかなぁ。
drupal8になってモジュールの互換性などを検証してインストールすることがdrush8でできないから、そういうところでcomposerを使う。ということになるのか?
同じ構造のdrupalの複製を簡単に作れる。というところがいいのかなぁ。composer.jsonに構造を書いて
composer install
で作って、それをコピーペーストして・・・。(そういう使い方でちゃんと使えるのかどうかは未検証。)
それで、それをdrushを使ってデータベースの設定とdrupal本体の最終インストールを自動で行う。
ちょこちょことモジュールを変えていろいろと試したいときは、いちいちモジュールをダウンロードして、インストールしてとやるよりは時間はかからないよなぁ。
--------------------------------------------------------------------------------------
----上の事を書き出す前にここに書いたこと。
今、drupal8のインストールをcomposerでやってみようと思ってネットで調べ始めた。
調べる前は、drupal7からdrupal8になってSymfonyが採用されたのでdrushと同じようなものが平行して開発されていて、それがComposerというもの。と思っていたのだけど、どうやらComposerって、phpのComposerの事を言っているんだよなぁ。とわかってきた。(後述: ComposerとConsoleを混同していた。ConsoleがSymfony用に開発されたものらしい。)
最初は、phpのComposerとdrupalのComposerは別物なのに名前が一緒か?と思っていたけど、同一の物だった。
とにかくComposerはphpのライブラリとかツール間の依存関係を調べてインストールすることのできるツールだから、drupal8もphpだし、symfonyなども含めた広い範囲でコントロールできるから便利に使いましょう。ということらしい。
Composer開発者側からしたら、drupal用の依存関係ものはデフォルトで入れる予定はないだろうから、そこは、drupalの開発側
がdrupal用のリポジトリを作って、それをComposerに組み込んで使うようにしているらしい。
drushの事もちょっと前にインストールしたばかりで何も知らないけど、drushはdrupalように開発されたものだから、それはそれで便利な機能もあるんでしょう。
なんてったって、composerは、yumみたいに依存関係とインストール専門らしいし・・・。できることは限られているし。
composer install
すると、
composer.jsonの記述に従ってダウンロード、インストールされる。
その後、drushのインストールか、手動でmysqlデータベースを作って、いつものdrupal8インストール作業を開始する。
hogedruをルートとしたサイトが作られたのかと思ったが、hogedru/web/の中にdrupal本体が入っている。どういうこと?やってみないとわからない。
drupal/drupalのインストールは
composer create-project drupal/drupal /var/www/html/hogedru
こっちの場合は、htmlディレクトリにdrupalドキュメントルートhogedruが作られる。
これもインストール後にドキュメントルートにいろいろなファイルが作られる。
余計なファイルはいらないというのであれば、composerを使ってのインストールはやめた方がいいかもしれない。
-------------------------------------------------------------------------------------
composerを使ってモジュール、テーマをセットする。
composer require drupal/<modulename>
例えば: composer require drupal/token
すると自動でcomposer.jsonがアップデートされる。
{
"require": {
"drupal/token": "1.x-dev"
}
composerはモジュールをダウンロードするけど、インストールはしない。
有効にするにはdrushを使うこと。
drush en <modulename> -y
モジュールのステータスを見るには
drush pm-list
を使うこと。
-------------------------------------------------------------------------------------
drupalでComposerを使ってみて。
まだよくわかっていない時点での感想。
使った感じではdrush8だけを使った方がシンプルでいいのかなぁ。
drupal8になってモジュールの互換性などを検証してインストールすることがdrush8でできないから、そういうところでcomposerを使う。ということになるのか?
同じ構造のdrupalの複製を簡単に作れる。というところがいいのかなぁ。composer.jsonに構造を書いて
composer install
で作って、それをコピーペーストして・・・。(そういう使い方でちゃんと使えるのかどうかは未検証。)
それで、それをdrushを使ってデータベースの設定とdrupal本体の最終インストールを自動で行う。
ちょこちょことモジュールを変えていろいろと試したいときは、いちいちモジュールをダウンロードして、インストールしてとやるよりは時間はかからないよなぁ。
--------------------------------------------------------------------------------------
----上の事を書き出す前にここに書いたこと。
今、drupal8のインストールをcomposerでやってみようと思ってネットで調べ始めた。
調べる前は、drupal7からdrupal8になってSymfonyが採用されたのでdrushと同じようなものが平行して開発されていて、それがComposerというもの。と思っていたのだけど、どうやらComposerって、phpのComposerの事を言っているんだよなぁ。とわかってきた。(後述: ComposerとConsoleを混同していた。ConsoleがSymfony用に開発されたものらしい。)
最初は、phpのComposerとdrupalのComposerは別物なのに名前が一緒か?と思っていたけど、同一の物だった。
とにかくComposerはphpのライブラリとかツール間の依存関係を調べてインストールすることのできるツールだから、drupal8もphpだし、symfonyなども含めた広い範囲でコントロールできるから便利に使いましょう。ということらしい。
Composer開発者側からしたら、drupal用の依存関係ものはデフォルトで入れる予定はないだろうから、そこは、drupalの開発側
がdrupal用のリポジトリを作って、それをComposerに組み込んで使うようにしているらしい。
drushの事もちょっと前にインストールしたばかりで何も知らないけど、drushはdrupalように開発されたものだから、それはそれで便利な機能もあるんでしょう。
なんてったって、composerは、yumみたいに依存関係とインストール専門らしいし・・・。できることは限られているし。