この記事はMagento Advent Calendar 2017の15日目です。
# はじめに
Magento2をComposerで入れて、Magento2 Cookbookを片手にいじっていたのですが、サンプルデータがないとどうも不便なことに気づきました。
自分でデータを入れるのはめんどくさいので、サンプルデータを後から入れようと思ったんですけど、サンプルデータを入れてMagentoをセットアップする方法という情報はあっても、意外とMagentoをセットアップしてから、サンプルデータを入れたくなったっていう情報は少ないんですね。
ってことで、Magento初心者の方に参考になれば幸いと思い、この度は、Magento2セットアップ後に、後からサンプルデータを簡単にインストールする方法を紹介したいと思います。
開発環境
・ホストOS Mac
・ゲストOS Ubuntu16.04
・MySQL14.14
・Apache2.4.18
・PHP 7.0.22
・Vagrant 2.0.0
1. モードを切り替える。
まずサンプルデータを入れるために、開発モードにMagentoを切り替えます。
何も手を加えていなければ、Defaultになっていると思います。
はじめにMagentoのルートディレクトリに移動してください。
今のモードを下記のコマンドで見てみましょう。
$ php bin/magento deploy:mode:show
"Developer"となっていなければ、下記のコマンドで変更しましょう。
$ php bin/magento deploy:mode:set developer
変えたらまた同じコマンドで開発モードになっているか確認しましょう。
$ php bin/magento deploy:mode:show
Developerになっているのが確認できたと思います。
2. サンプルデータを既存のMagentoに取り組む。
早速サンプルデータを既存のMagentoに取り組みます。
コマンドは下記です。
$php bin/magento sampledata:deploy
途中でMagentoをセットアップした際に聞かれたIDとパスワードが聞かれます。
これはMagentoをセットアップした際に使ったpublic key/private keyです。
MagentoにログインしMarketplace→My access keyで見ることができます。
これでサンプルデータが入りました。
→インストール中にkillされた場合、下記の補足を参照してください。
Magentoに反映させる。
今度はサンプルデータをMagentoに反映させます。
$php bin/magento setup:upgrade
完了です。
補足
サンプルデータは大きいです。
デフォルトのメモリだと、インストール中に実行中のプログラムが殺される場合があります。
なので、インストール中にkillされた場合、たいていの場合はメモリ不足です。
以下のコマンドでログを見て原因を探りましょう。out of memoryとあればメモリ不足が原因となります。
$cat /var/log/kern.log
VagrantのメモリがDefaultになっている場合は増やすべきです。
1Gでは足りません。4Gに増やしましょう。
*メモリは高い方がいいかもしれませんが、高すぎるとうまく動作しないことがあるので注意しましょう。
Vagrantfileに以下のコマンドを追加。
Vagrant.configure(2) do |config| config.vm.box = "ubuntu" config.vm.provider "virtualbox" do |vb| vb.memory = 4096
結果的にVagrantfileの終わりにendが3つになることに注意してください。
endを忘れていたりすると、Vagrant reload時に怒られます。
あるいは、LanchpadからVirtual Boxを開き、
メインメモリー>システム>設定
でメインメモリーを4096に増やしてください。
(こっちの方が簡単です。)
そして、$vagrant reload
をし、
$vagrant up
で起動し、
$vagrant ssh
でゲストOSに戻ります。
仮想OSにあるメモリ量を確認しましょう。
freeコマンドで全容量と使っているメモリを確認できます。
$free -m
(-mというのはメガ単位でメモリを見るということです)
メモリが上がっていると思います。
さらにメモリをあげたい場合
サンプルデータを入れるためには、4Gで十分ですが、さらにメモリをあげたい場合は、Swapを追加しましょう。
SwapはDefaultでは入っていません。
Swapを使うためには、/var/tmp に空ファイルswapfileを作ります。
$cd /var/tmp
$vim swapfile
そしてtmpディレクトリがカレントディレクトリの状態で、1Gのswapを作ります。
$ dd if = /dev/zero of=/var/tmp/swapfile bs=1m count1024
$mkswap swapfile
$swapon swapfile
うまくいかない場合は、単純エラーの可能性がありますので、一度起動し直しましょう。
$swapoff swapfile
$mkswap swapfile
$swapon swapfile
これでswapが作られたか確認します。
$free -m
メインメモリの下に、swap欄がありますが、そこに1G追加されたのが見えると思います。
*Vagrantを停止すると、再度swapを起動させる必要があります。
その際は以下のコマンドで起動させることができます。
(ここでは起動自動化については割愛させていただきます。)
$mkswap swapfile
$swapon swapfile
以上です。
次回の16日目の記事はkzkick2ndさんで”サーバー1つで頑張るMagento2インフラ”です。