7
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

magento2:開発環境構築(初級者編)

Last updated at Posted at 2016-12-11

この記事は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

該当箇所を検索し、コメントアウトを外します。
下記の様に書き換えます。

Vagrantfile
config.vm.box_check_update = false

(意図せずアップデートされ、環境が動かなくなる事をさけます)

Vagrantfile
config.vm.network "private_network", ip: "192.168.33.35"

(自分のローカルからのみ接続できる様にします。初期値は末尾10ですが、私の場合10をすでに別のマシンで使用しているため、35に変更しました。)

Vagrantfile
config.vm.provider "virtualbox" do |vb|
  vb.memory = "1024"
end

(magento2はメモリを沢山使用するので、上限をふやします)

5.起動

 $ vagrant up

気長に待ちます。。。:coffee:

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 コメントアウトを外します。

apache2.conf
<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

(デフォルトのwebrootディレクトリにmagentoが自動で上書きできる様にします)

apache2.conf
Servername localhost

(サーバーはローカルホストを使うことをシステムに教えてあげます)

 $ cd /etc/apache2/mods-enabled/
 $ sudo a2enmod rewrite

上記で設定した上書きをしてくれるモジュール、「rewrite」 を有効化します。

 $ sudo vim /etc/apache2/envvars 

下記の様に書き換えます。

envars
 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の中身が表示されたらおっけーです:smiley:

 $ sudo vim /var/www/html/index.php
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/

ここでも気長に待ちます:coffee::coffee:~

####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

##参考
http://devdocs.magento.com/

7
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?