Drupal のイベントに行って参りました~。
DrupalもPHPで動くものなので、composer を使ってのインストールが良いようです。
前回インストールしたAcquia Dev Desktop2 は、内部でcomposerを使っているようです。
新たにDBを作って、インポートすべし
ローカル環境で、他のサーバ上で構築されていたDrupal環境を再現するには、
必要なデータとしては、
- データベースのdumpファイル
- Drupalのファイル一式
があれば良いそうです。Drupalのプラグインを使ってデータを移行する場合は、上記のファイルを用意する必要は無いそうです。
とりあえず、phpMyAdmin で新しいデータベースを作り、ダンプファイルをインポートするのが大事と。
講師の方のご温情により、zipファイルを用意していただいので、展開。
んで、Acquia Dev Desktop 2 で、 をクリックし、
「Import local Drupal site...」で。
「Change...」をクリック。
展開しておいたDrupalのサイトを選択し(coreってフォルダを含んだディレクトリを選択すれば良いかと)、
「OK」で。
インポートできました。
PHPのバージョンをAcquia Dev Desktop 2 で利用できる中の最新バージョンにしときます。
setting.php のデータベースの設定も変えときます。データベース名、ユーザー名、パスワードを自分の作成したデータベースに合わせときます。
そしたらば、local site:のURLにアクセス。
「Save and continue」クリックで。
デフォルトのまま、「保存して次へ」。
Drupalのインストールが始まります。
翻訳ファイルとかも整えてくれるようです。
サイトの情報を適当に入力し、 「保存して次へ」。
インストール処理の続きが進行。
無事、インポートが完了しました。
ドハマリした内容は、NG集で。
今回はこのへんで。
NG集:とりあえず、ローカルに、が悪夢の始まり...
作業自体は、講師の方が、「さくらクラウド」上に環境を用意してくれていましたので、そこで作業した分のデータを、scpなんかでWindowsにコピーしてます。
必要なデータとしては、
- データベースのdumpファイル
- Drupalのファイル一式
があれば良いそうです。Drupalのプラグインを使ってデータを移行する場合は、上記のファイルを用意する必要は無いそうです。
前回、インストールした
「Acquia Dev Desktop 2」を起動し、
「Local code:」のリンクをクリックすると、
Drupalがインストールされてるディレクトリが表示されるので、
上書きしたくない場合は、1つ上の階層に行って、
⇧ 「C:\Users\[ユーザー名]\Sites\devdesktop」に、クラウド上のDrupalのデータを展開(解凍)します。
で、拡張子が「.tar.gz」のファイルは、tar 状に圧縮されたファイルを、更にgz 状に圧縮した、2段階圧縮されてるものらしいです。
Windows 10 からは、
tar コマンドが使えるようになったらしく、展開(解凍)ができるんじゃと。
⇧ 上記サイト様でも言及されてますが、たしかに、このへん気になりますよね。
まぁ、とりあえず、Windows 10からは、Windowsでもtar が使えるそうなので、ワンライナー(コマンド一発)で展開(解凍)できるじゃろうて。
まぁ、とりあえず、圧縮されたファイルを下記フォルダにコピって、
コマンドプロンプトで、ファイルを配置したディレクトリに移動し、
cd C:\Users\[ユーザー名]\Sites\devdesktop
んで、展開(解凍)
tar xvzf demo4.tar.gz
んで、はい、エラー。展開が上手くできず...
そんでは、先にデータベースのデータをインポートしてみようということで...やっちまいました...。
その前に、phpMyAdminが、相変わらずの、アップロードできるファイルサイズの制限がかかっているという...なんだろう、ダンプしたsqlファイルとかのアップロードを想定してないってことですかね?
⇧ 上記サイト様によりますと、php.ini を修正すればOKとのこと。
自分の場合だと、『Acquia Dev Desktop 2』の中のPHPを使ってるので、
⇧ 上記のphp.ini の項目で、
post_max_size=500M
upload_max_filesize=500M
memory_limit=900M
⇧ のように修正後、
⇧ 「Stop」をクリックし「Apache」「MySQL」を一旦、停止し、「Start」で。
で、「Local database」のリンクをクリックで、ブラウザ上からphpMyAdminにアクセスし、インポート。
「ファイルを選択」をクリックし、ダンプしたsqlファイルをアップ。
で、見事に、サイトにアクセスできなくなるという...
⇧ おそらく、ダンプしたsqlファイルのインポートの影響で、ローカルのDrupal用のデータベースの情報が上書きされた影響ですかね...
⇧ 上記サイト様によりますと、
Drupal6や7ではsettings.phpにてbase_urlを設定することで解決していたので同様に設定しようにもDrupal8ではsettings.phpからbase_urlが無くなった模様。
⇧ Drupal 8 からの仕様でややこしいことになっているようです。
というか、
It is possible to spoof the HTTP Host header for nefarious purposes, and trick Drupal into using a different domain name in several subsystems (particularly link generation). The Symfony framework provides a trusted host mechanism, where site administrators can whitelist hostnames. This mechanism can now be configured through settings.php.
結局、settings.php で制御しとるという...
$settings['trusted_host_patterns'] = array(
'^example\.com$',
'^.+\.example\.com$',
'^example\.org',
'^.+\.example\.org',
);
⇧ URLを追加しろってことらしい...なんだかなぁ~
で、なんかデータベースの設定とかも記載が無かったので、
⇧ 上記サイト様を参考に追加してみるも、駄目でした...。
Trusted host setting for Acquia Dev Desktop 2 (tested with Drupal 8.6.2 and PHP 7.2.8)
If you are using Acquia Dev Desktop 2, try the following trusted host pattern. Change "sitename" to the name of your site:
$settings['trusted_host_patterns'] = array(
'^sitename\.dd$',
);
⇧ Acquia Dev Desctop 2 を使ってる場合は、localhost ではないらしい...XAMPPとかでもDrupal 導入できたのね...
はい、駄目でした...
ということで、時間があるときに調べてみたいと思います。