2016-06-18 / @syui

memo

Pantheonにホスト、デプロイする場合は初期設定は必要ありません

Elmで書かれたテンプレートで認証ページを作成し、バックエンドにPantheon上に構築したDrupalを使いました。

Demo:

https://syui.github.io/elm-hedley

その際に、BehatDrush, Treminus, Composerなどに触れました。

しかし、そのままでは動きません。なぜなら、Pantheonで公開するには独自のDrupal設定が必要だからです。

以下、問題解決に必要だった情報を示します。

今回、ほとんどはCLIからの操作では問題は解決しませんでした。したがって、基本的にはPantheon, Drupalの管理画面にてエラーを見て、修正していきます。

Pantheonにホスト、デプロイする場合は初期設定は必要ありません

Pantheonにホスト、デプロイする場合は初期設定は必要ありません。いくらconfig.shで設定してもそのままでは有効にならないし、ユーザー設定はブラウザのPantheon -> Drupal管理画面から行うことになるからです。

$ cp default.config.sh config.sh
$ ./install
$ cd www
$ git init
$ ...git push

remoteを設定するの自体が面倒なので、Connection Infoのclone情報をコピーし、.gitwww/.gitに置くと良いでしょう。

$ git clone ssh://foo.git
$ cp -rf foo/.git www/
$ cd www
$ git add .
$ git commit -m f
$ git push

Pantheonの仕組みを簡単に

DBを含んだCMSなどをホストできます。開発はNAME.{dev,test,live}という3つのURLが用意され、順にデプロイしていくことで安定を目指します。

サーバーは、dev, test, liveごとにGit, SFTP, SSHが用意されており、必要な情報は管理画面にて表示されます。

本来はliveで開発はdevと使い分けます。

ただ、面倒な場合(使う人が少ない場合)は、すべてdevで開発、公開してもよいでしょう。

ここで、特に必要な情報は、Drupalの初期設定にて必要になるDBの認証情報です。具体的には以下。Pantheon, Drupal(MYSQL)で多少項目名が異なりますが、ある程度推測してください。DBはMYSQLを使います。

Database
	Host
	Username
	Password
	Port
	DB Name

Pantheonのモジュールがないと言われる

# https://github.com/pantheon-systems/drops-7/tree/master/modules/pantheon
$ cp -rf drops-7/modules/pantheon www/modules/
$ ...git push

モジュールはブラウザの管理画面にて有効にしたり、アップデートしたりします。

Drupal Coreが無効のCoreで上書きされたと言われる

$ cp -rf drops-7/* www/
$ ...git push

Settings.phpが読めないと言われる

管理画面からGit -> SFTPに変更し、サーバーにアクセスします。

$ sftp ...
> chmod 644 code/sites/default/settings.php
> quit

なぜかGitHub Pagesからの認証後にロードされたままページが表示されない

とりあえず、管理画面にて重要な警告(赤)をすべて修正した後に、Drupalでログインした後、Publicのコンテンツを作成する。これは必要なかったかもしれませんが、自分の場合はコンテンツを作成したら行けたような気がします。

それぞれのコマンド操作

# エイリアスを有効にする
$ terminus sites aliases
$ drush sa

# ステータスの確認
$ drush @pantheon.NAME.dev st

# アップデートする
$ drush @pantheon.NAME.dev up

# アクセスする(ただし、これにはDrupalの初期設定を終えている必要がある)
$ drush @pantheon.NAME.dev uli

GitHub OAuth

今回、GitHubログインは用意していません。確認も面倒なので。やりたい人は、こっちを使うと出来ます。あと、GitHubの管理画面(App OAuth)から認証情報を発行し、Client IDなどを取得。

https://github.com/Gizra/hedley-server/tree/master/hedley/modules/custom/hedley_github

https://github.com/Gizra/hedley-server/blob/master/default.config.sh#L75-L77

最後に

初めて使うものばかりだったので、構成の把握にだいぶ時間がかかってしまいました。

私のような初心者がパソコンで何かしようとすると、何かしらハマったりします。