この記事はMagento Advent Calendarの11回目です。
コマンドラインを中心に、Magento2.1.2の開発環境構築手順をまとめました。
開発初心者の自分でも、コマンドに迷わない様に記したつもりです。
手順
・vagrantで仮想環境を構築
・composerを使ってmagentoのソースをダウンロード
・仮想環境でmagentoの動作確認
動作確認環境
$ sudo /var/www/html/bin/magento --version
Magento CLI version 2.1.2
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04 LTS"
$ php -v
PHP 7.0.8-0ubuntu0.16.04.3 (cli) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.8-0ubuntu0.16.04.3, Copyright (c) 1999-2016, by Zend Technologies
$ mysql --version
mysql Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using EditLine wrapper
$ apache2 -v
Server version: Apache/2.4.18 (Ubuntu)
導入手順
####仮想環境の作成
1.VirtualBoxをインストール
[https://www.virtualbox.org/] (https://www.virtualbox.org/)
$ VBoxManage -v
5.1.8r111374
2.Vagrantをインストール
https://www.vagrantup.com/
$ vagrant -v
Vagrant 1.8.7
3.使用boxを選択
[http://www.vagrantbox.es/]
(http://www.vagrantbox.es/)
今回はうまく日本語化できる様、ubuntuを使用しました。
Official Ubuntu 16.04 daily Cloud Image amd64 (Long Term Support release, No Guest Additions)という名前です。
$ vagrant box add [option] {name}
$ vagrant box list
$ mkdir {任意のディレクトリ}
$ cd {任意のディレクトリ}
$ vagrant init {title}
使用したいボックスを追加
名前を確認(今回のbox名は"gbarbieru/xenial"でした)
作業ディレクトリの作成
移動
初期化
まで行うと、Vagrantfileというファイルができます。
4.Vagrantfileの編集
$ vim Vagrantfile
該当箇所を検索し、コメントアウトを外します。
下記の様に書き換えます。
config.vm.box_check_update = false
(意図せずアップデートされ、環境が動かなくなる事をさけます)
config.vm.network "private_network", ip: "192.168.33.35"
(自分のローカルからのみ接続できる様にします。初期値は末尾10ですが、私の場合10をすでに別のマシンで使用しているため、35に変更しました。)
config.vm.provider "virtualbox" do |vb|
vb.memory = "1024"
end
(magento2はメモリを沢山使用するので、上限をふやします)
5.起動
$ vagrant up
気長に待ちます。。。
6.接続
$ vagrant ssh
仮想環境が立ち上がったら、sshで接続します。
$ sudo apt-get update
$ sudo apt-get install -y apache2 git snmp mysql-server php-bcmath php-curl php7.0-gd php-imagick php7.0-intl php7.0-xsl php-mbstring php7.0-mbstring php-gettext libapache2-mod-php7.0 mcrypt php7.0-mcrypt php7.0-xml php-soap php7.0-zip
必要モジュールをインストールします。
magento masterの西さんがMagento Advent calendar第一回の記事にて、日本語でまとめてくださっています!
https://principle-works.jp/blog/magento2-setup-guide-2016-edition
※mysqlのパスワード記入を求められるので、任意で設定します。
$ php -m
apt-getで入れたモジュールに足りないものがないか確認してください。
apache2の設定変更
$sudo vim /etc/apache2/apache2.conf
下記の設定を追記 or コメントアウトを外します。
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
(デフォルトのwebrootディレクトリにmagentoが自動で上書きできる様にします)
Servername localhost
(サーバーはローカルホストを使うことをシステムに教えてあげます)
$ cd /etc/apache2/mods-enabled/
$ sudo a2enmod rewrite
上記で設定した上書きをしてくれるモジュール、「rewrite」 を有効化します。
$ sudo vim /etc/apache2/envvars
下記の様に書き換えます。
export APACHE_RUN_USER=vagrant
export APACHE_RUN_GROUP=vagrant
apacheの実行者のズレによってmagento側でエラーが発生するため、実行ユーザー・グループをwww-data→vagrantで統一します。
データベースの作成
$ mysql -u root -p
mysql> create database magento character set utf8mb4;
mysql> exit;
vagrant up時に設定したパスワードを入力します。
####動作確認
$ sudo service apache2 start
apache2を起動し、ブラウザ上で"192.168.33.35"(Vagrantfileで設定したURL)を入力します。
/var/www/html/index.htmlの中身が表示されたらおっけーです!
$ sudo vim /var/www/html/index.php
<?php echo "something" ?>
192.168.33.35/index.phpも確認し、
phpが動いていること(somethigの文字列表示)を確認します。
$ sudo chmod -R /var/www/html/*
動かなかったら権限を変えます。
$ sudo rm -rf /var/www/html/*
確認したらmagentoのソースダウンロード時にエラーが発生しない様、webrootのファイルを全て消去します。
composerのダウンロード/magento2のインストール
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php -r "if (hash_file('SHA384', 'composer-setup.php') === 'aa96f26c2b67226a324c27919f1eb05f21c248b987e6195cad9690d5c1ff713d53020a02ac8c217dbf90a7eacc9d141d') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
$ sudo php composer-setup.php
$ sudo php -r "unlink('composer-setup.php');"
$ sudo mv composer.phar /usr/local/bin/composer
$ sudo php composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition /var/www/html/
composerをインストールし、webroot(/var/www/html)にmagentoのソースをインストールします。
composerの最新版をインストールするcommandは変わります。随時下記リンクでcommandを確認してください。
https://getcomposer.org/download/
ここでも気長に待ちます~
####composerに関するエラーに遭遇したら
magentoのソースのインストールに失敗し、再度やり直す際は、
$ sudo rm -rf /var/www/html/*
$ sudo composer clear-cache
を行ない、途中までインストールされたファイルと、composerのキャッシュをクリアしてください。
インストールが終了したら、magentoのコマンドがファイルを上書きできる様に、権限をかたっぱしから変更します(笑)
$ sudo chmod -R 777 /var/www/html/app/etc
$ sudo chmod -R 777 /var/www/html/var
$ sudo chmod -R 777 /var/www/html/pub/media
$ sudo chmod -R 777 /var/www/html/pub/static
これでブラウザにmagentoの設定画面が表示されるはずです!
任意で設定してください。
##おわりに
開発環境構築にあたり、お世話になった皆様ありがとうございました。
権限設定など、もっといい方法があると思います。
ツッコミどころ、間違っているところなどございましたらご教示の程、よろしくお願いいたします。
また、別記事で『magento2:管理画面を日本語化する』をまとめようと思います!
https://principle-works.jp/magento2-japaneselocale