tohokuaikiのチラシの裏

技術的ネタとか。

Magento2.1をComposerを使ってインストールする

普通にZIP持ってきてインストールする方法はこちらなのですが、せっかくなのでComposer使ってやってみましょう。アップデートとかあった際にupdateコマンド一発で何とかしてくれそうですしね。 magento.flatz.jp

環境設定

普通に、Ubuntu16.04を使ってインストール

PHP

$php -v
PHP 7.0.15-0ubuntu0.16.04.4 (cli) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.15-0ubuntu0.16.04.4, Copyright (c) 1999-2017, by Zend Technologies

追加モジュール

apt-get install -y php7.0-curl php7.0-dev php7.0-gd  php7.0-intl php7.0-mcrypt php7.0-mbstring php7.0-mysql php7.0-xml php7.0-soap php7.0-xsl php7.0-zip php7.0-json

php.iniに設定値追加

date.timezone = 'Asia/Tokyo'
memory_limit = 2048M
upload_max_filesize = 200M
post_max_size = 200M
allow_url_fopen = Off

これくらいかな。。

allow_url_fopen = Off はダメだった。Extensionをインストールする時にエラー出された。

MySQL

5.7をインストール

mysql> select @@version;
+-------------------------+
| @@version               |
+-------------------------+
| 5.7.17-0ubuntu0.16.04.1 |
+-------------------------+

/etc/mysql/mysql.conf.d/mysqld.cnf を編集

character-set-server=utf8
max_allowed_packet      = 128M
innodb_buffer_pool_size = 512M
innodb_log_file_size=128M

インストール作業

こちらの記事にしたがって、インストール開始。 devdocs.magento.com

Composerのインストール

なんとなくこれはapt-getではなくユーザー権限で。

~/bin$ curl -sS https://getcomposer.org/installer | php
All settings correct for using Composer
Downloading...

Composer (version 1.4.1) successfully installed to: /home/magento/bin/composer.phar
Use it: php composer.phar


~/bin$ ln -s composer.phar composer

.bashrcに

export PATH=$PATH:~/bin

Magentoのインストール

DocumentRootを作成し、https://account.magento.com/customer/account/create/ で作成したアカウントでcreate-projectする。 以下ではwwwディレクトリにMagentoをインストールする場合。

$ composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition www

    Authentication required (repo.magento.com):
      Username: xxxxxxxxxxxxxxxxxxxxxx
      Password:

この時、UsernameとPasswordを求められる。これは https://account.magento.com/customer/account/create/ のUsernameとPasswordではない。

Magento.comのアカウントページ > Marketplace > My Access Keys > Magento2の箇所から作成したPublicKeyとPrivateKeyのキーペアをUsername/Passwordとして入力する。

結構時間かかるけど、あとはComposerがインストールを進めてくれる。

ファイルのパーミション変更

Apacheがファイルを書き込んだりできるように、インストール作業を行ったユーザーをApache実行権限グループに入れ、そのグループに書き込み権限を与える。

Apache実行権限ユーザーの確認

レンタルサーバーなどでsuExecしてればApache実行=ファイルオーナーなので、ファイルのパーミションは問題ないのだけど、そうでないときはこの手の変更を行う。

$ ps auwx|grep apache
root       305  0.0  0.8 411924 36220 ?        Ss   14:35   0:00 /usr/sbin/apache2 -k start
www-data   384  0.0  0.4 412776 18800 ?        S    14:40   0:00 /usr/sbin/apache2 -k start
...


$ groups www-data
www-data : www-data

ということで、Apacheを実行しているwww-dataユーザーのグループであるwww-dataグループにインストールを実行したアカウントを入れる。

# usermod -g www-data magento
# groups magento
magento : www-data adm cdrom sudo dip plugdev lpadmin sambashare
対象ファイルにGroup書き込みができる設定を行う

対象となるのは以下の5つ * vendor * app/etc * pub/static * pub/media * var

$ find var vendor pub/static pub/media app/etc -type f |xargs -I{} chmod g+w {}
$ find var vendor pub/static pub/media app/etc -type d |xargs -I{} chmod g+ws {}

ファイルグループをApache実行グループに変更し、magentoコマンドに実行権限を付与。

chown -R :www-data . 
chmod u+x bin/magento

インストールセットアップ

webからとコマンドラインからセットアップするのと2つあるみたい。

コマンドラインから

Webブラウザから

webからの方が簡単かな。