Designer's BLOG
Magento2

Installing Magento 2

Sunday, 24 January 2016
何故かは分からないけどCentOS6だとちゃんとMagento2がインストール出来るみたい。
昨日ブログ書いた後ちょこっとやったら躓く事なく出来た。
前に出来た方法でもう一度やってみたらエラー吐かれずにすんなり成功しました。
なので忘れないように何やったか書いて残しておく。
前と違うのはphp7にしたんですが比べ物にならないくらい早い。
どれだけ早いかってMagento2のインストールが前回20分くらい待ったのに今回30
秒で終わった。
これだけ早ければこのまま使ってもいいかもしれない。
でもNginxもリベンジしてみたい。
今更だけどnginx側の設定が間違ってたのかもしれない。
user nginx nginx;
という表記でユーザーとグループを一緒に表記するのかな?
デフォルトってnginxが一つしか書かれてなかった気がする。
php-fpmの方はちゃんとuser = nginx group = nginx に変えてたから。
その所為でサーバ側に権利を渡せなくてブラウザでエラー吐かれたのかもしれない。
もう一度やってみたいな。
あとNginxが早いって聞いてるからどれだけ違いがあるのか見てみたい。
早いと言っても速度よりどちらかというとアクセス過多に強いサーバらしい?


○初心者どころかド素人のMagento2インストール手順。

・VPSサーバ
・CentOS6(デフォルトのまま)
・Apache 2.2
・php7
・MySQL 5.6

Magento2はブラウザからインストールします。
ちなみにCentOS6+php7+nginx+MySQL5.6ではブラウザでエラー。
更にCentOS7+php7+Apache2.4+MySQL5.6でもブラウザエラーだったので安全策をとって2.2を入れました。
後から知ったんだけどCentOS7だとファイヤーウォールの設定がfirewalldになって良くわからなかったんだけど
firewalldを停止すればCentOS6と同じようにiptablesで設定が出来たらしい。
7だと基本的な仕様が変わってて混乱して上手く出来なかった。


ーCentOS6の初期設定
操作はMacのターミナルから。

$ ssh root@IPaddress
(sshでrootログイン)

useradd username
(ユーザを追加)

# passwd username
(ユーザパスワードを設定)

usermod -G wheel username
(ユーザをwheelに追加)

# visudo
/wheel(スラッシュでwheelを検索)
##Allows people in group wheel to run ask commands
%wheel                    ALL=(ALL)                   NOPASSWD=ALL
この部分をコメントアウト(シャープを消す)

:wq
(escで抜けてこれを打って編集内容を保存)

新規タブでMac側で操作
$ ssh-keygen -t rsa
(鍵の作成)

$ brew install ssh-copy-id

$ ssh-copy-id username@IPadress
(パスワードを入力して鍵のアップロードは完了)

サーバに戻ってsshdの設定
$ ssh username@IPadress
$ sudo -s (root権限にする)

# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org
(sshdの設定をバックアップ)

# vim /etc/ssh/sshd_config
(vimでファイルを編集)

Port 数字
(ポートをコメントアウトして22以外の任意のポート番号を設定)

/PasswordAuth
PasswordAuthentication no
(noにする)

/PermitRoot   
PermitRootLogin no
(コメントアウトしてnoにする)

:wq(編集保存)

# service sshd restart

$ ssh -p 数字 username@IPadress
(これで任意のポート番号でsshでログイン出来る。)

# vim /etc/sysconfig/iptables
(iptablesの設定、新規ファイル)

*filter
:INPUT    DROP   [0:0]
:FORWARD  DROP   [0:0]
:OUTPUT   ACCEPT [0:0]
:SERVICES -      [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 4 -j ACCEPT
-A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp -m state --state NEW -j SERVICES
-A INPUT -p udp --sport 53 -j ACCEPT
-A INPUT -p udp --sport 123 --dport 123 -j ACCEPT
-A SERVICES -p tcp --dport 上記で設定した数字 -j ACCEPT
-A SERVICES -p tcp --dport 80 -j ACCEPT
-A SERVICES -p tcp --dport 443 -j ACCEPT
COMMIT

:wq(上記をコピーして保存)

# service iptables start


—Apache 2.2

# yum install httpd
# chkconfig httpd on
# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org
# vim /etc/httpd/conf/httpd.conf 

/ServerTokens
ServerTokens Prod
(OSになっているのをProdに変える)

/ServerSignature
ServerSignature off
(onoffにする)

/Options Indexes
    Options -Indexes FollowSymLinks
(/var/www/htmlの下にあるOptions IndexIndexの前にハイフンを入れる)

:wq(編集保存)

# service httpd configtest
# service httpd start
# chown -R username:username /var/www/html
(ドキュメントルートのディレクトリの権限をユーザに渡す)

.htaccessの有効化
# vim /etc/httpd/conf/httpd.conf 
AllowOverride All
(Allに書き換え)
:wq


PHP7

# yum -y install epel-release
# wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
#  rpm -Uvh remi-release-6*.rpm

# yum install -y --enablerepo=remi --enablerepo=remi-php70 php 
 php-opcache php-devel php-fpm php-gd php-pdo php-mbstring php-mcrypt  php-pecl-imagick  php-openssl php-mhash php-soap php-intl php-xml php-xsl php-pear
(php7のインストール。Magento2公式に記述があるものも一緒に。)

# cp /etc/php.ini /etc/php.ini.org
#vim /etc/php.ini

/error_log
error_log = /var/log/php_errors.log
(コメントアウトをして/var/log/を付け足す)
/mbstring
mbstring.language = Japanese
(コメントアウトして日本語にする)
mbstring.internal_encoding = UTF-8
(コメントアウトしてUTF-8を入れる)

/http_input 
mbstring.http_input = auto
(コメントアウトをしてautoを加える)

/detect_order
mbstring.detect_order = auto
(コメントアウトする)

/expose_php
expose_php = off
(offにする)

/timezone
date.timezone = Asia/Tokyo
(コメントアウトしてアジア東京にする)

:wq(編集保存)

service httpd restart
(CentOS6ではphpApacheをリスタートさせる)

# echo "<?php phpinfo() ?>" > /var/www/html/info.php
(ブラウザからinfo.phpにアクセスしてちゃんと表示されてるか確認する)


MySQL5.6

# yum install mysql mysql-devel mysql-server mysql-utilities
# mysql --version(5.6かチェック)
# service mysqld start
# chkconfig mysqld on
# mysql_secure_installation(パスワード設定)
# mysql -u root -p
> CREATE DATABASE magento2;(magento2のデータベース作成)

前回はmagento1.9も入れてたのでphpMyAdminも入れてました。
今回はデータベースだけなので入れてません。
入れる場合はphp7だとリポジトリがどうこうとかでyumでインストール出来ないみたいで直接zipで入れた方が早い。


ーMagento2

公式からmagento2のzipをDLしておく
cyberduckでmagento2.zipをアップ
(アップロードできない時はもう一度権利を渡す)
# chown -R username:username /var/www/html/

# cd /var/www/html (cdでディレクトリを移動)
# unzip magento2 (zip解凍)

Magentoパーミッションと権限の設定
# chmod -R a+w var app/etc pub/media pub/static
# chmod -R 777 var app/etc pub/media pub/static
(これはmegento1.9と同じやり方、やったらブラウザが表示されなかったので)
# chown -R apache:apache magento2
# chmod -R g+w magento2/{pub,var}
# chmod -R g+w magento2/{app/etc,vendor}

Magetno2公式だと下記コマンドが書いてあったけど出来なかった。
# chown -R :apache .
# find . -type d -exec chmod 770 {} \; && find . -type f -exec chmod 660 {} \; && chmod u+x bin/magento

magento2が置いてあるところにブラウザからアクセスするとセットアップページが表示される。
スクリーンショット取るの忘れたけどそのままユーザネームとか管理URLとか入力。
データベースは作成したデータベース名とパス入れる。
最後のページまで何のエラーも出る事なく30秒ほどでインストールが完了。

一番下にパーミッション変えといてねって書いてある。
そのまま管理画面にアクセスすると再インデックスしてって出てくる。

# cd /var/www/html/magento2
# php bin/magento indexer:reindex

ストアページはこんな感じ。ヘッダーの画像だけ変えてる。


前回はサンプルデータも込みでインストールしたんだけど今回は無しなので真っ白。
いろんなサイトを参考にさせて頂いていじりまくったので参考ページはネット上にあげて下さってる皆さん全部です。

次はthemeの作成。これが難しそう。
ちょこちょこテンプレートは出てるみたいだけどヘッダーとフッターだけでも自分でいじりたい。
出来なかったらthemeだけ作成依頼するか、ブラウザから編集出来る管理ツールが出るのを待つ。
公式のフォーラム見てるとみんなxmlでガツガツいじってる。いいなあ。
次はthemeの勉強する。
管理画面日本語化もするかも。機能がたくさんあるし知らない英単語ばかりでまだちゃんと全部見れてない。
とりあえずヘッダーの画像が変更できる事だけしまだ知らない。
あとバーチャルホストの設定はまだやってない。
数え切れないくらいOSインストールしまくったけど結局一番最初にやった形でもう一度成功できました。
良い勉強になりました。

とりあえずmagento2はここまで。
今日は引き続きお洋服のパターンの修正を頑張る。