本記事はMagento Advent Calendar 2015の6日目の記事になります。
概要
サーバー関連の勉強を始めて1か月の初心者が、さくらのレンタルサーバーにMagento2を導入してみました。
手順どおりやっても上手くいかず、幾度となくハマり自暴自棄になりかけたので、今回は初心者の観点からハマりやすいポイントを押さえつつ、丁寧に解説していきたいと思います。WebサーバーとしてNginxを選択しましたが、とにかくMagento2を入れて試してみたいだけという方はNginxよりもApache2の方がハマりポイントが少なくオススメです。
構築環境
OS : Ubuntu 14.04 LTS
Nginx : 1.8.0
MySQL : 5.6.27
PHP : 7.0
Magento2 正式版 (下記URLよりダウンロードしておいて下さい)
手順
今回はさくらのレンタルサーバーにUbuntu14.04を入れただけの状態から始めていきます。このサーバーへNginx, PHP, MySQLをインストールすることで、Magento2を構築することができます。
事前にダウンロードしたMagento2ファイルはサーバーの適当なディレクトリ(/var/wwwなど)に配置しておいてください。
1. PHPのインストール・設定
2. Nginxのインストール・設定
3. MySQLのインストール・設定
4. ブラウザからセットアップ画面にアクセス
5. Magento2インストール(コマンドラインを用いて)
6. ブラウザからフロントエンドにアクセス
7. CSSを読み込ませる
1.PHPのインストール・設定
・PHP7.0のリポジトリを追加
$sudo add-apt-repository ppa:ondrej/php-7.0 -y
$sudo apt-get update
・PHP7.0のインストール
PHP-FPMもインストールしておきます。
$sudo apt-get install php
$sudo apt-get install php7.0-fpm
PHPのインストールはこれで完了です。
・PHP-FPMの設定
今回はPHP-FPMとの接続をTCP/IPではなく、UNIXソケットを用いて行います。
/etc/php/7.0/fpm/pool.d/www.confに以下のコードが記述されているか確認してください。
ない場合は、追加しましょう。
listen = /run/php/php7.0-fpm.sock
最後にPHP-FPMの再起動をして、PHPのインストールと設定はこれで終了です。
$ sudo service php7.0-fpm restart
2.Nginxのインストール・設定
・nginxサイトが配布するPGPキーを追加
$curl http://nginx.org/keys/nginx_signing.key | sudo apt-key add -
・リポジトリを一覧に追加
$sudo sh -c "echo 'deb http://nginx.org/packages/ubuntu/ trusty nginx' >> /etc/apt/sources.list"
$sudo sh -c "echo 'deb-src http://nginx.org/packages/ubuntu/ trusty nginx' >> /etc/apt/sources.list"
$sudo apt-get update
・インストール
$sudo apt-get install nginx
・Nginxの設定
Nginxの設定ファイルがMagento2ファイルのルートディレクトリにnginx.conf.sampleとして入っているので、そのままetc/nginx/conf.d/に配置しましょう。*.confが読み込まれる設定なので、ファイル名の変更を行っておいてください(nginx.conf.sample→nginx.conf)以下のコメントアウトを外します。
upstream fastcgi_backend {
server unix:/run/php/php7.0-fpm.sock;
}
server {
listen 80;
server_name mage.dev;
set $MAGE_ROOT /var/www/Magento2;
set $MAGE_MODE developer;
3.MySQLのインストール・設定
・そのままapt-getでインストールしてはいけません。
Magento2ではMySQLのバージョンが5.6.xと指定されているため、そのままの状態でapt-getを用いてインストールするとMySQL5.5が入ってしまい、エラーが出てしまいます。そこでパッケージリストを更新することで、より新しいバージョンをインストールしていきます。
・リポジトリの追加
$sudo wget http://dev.mysql.com/get/mysql-apt-config_0.3.3-2ubuntu14.04_all.deb
次にこのままのディレクトリで、
sudo dpkg -i mysql-apt-config_0.3.3-2ubuntu14.04_all.deb
すると、以下の画面が表示されるので Server → MySQL5.6 → Applyを選択
・パッケージリストの更新
$sudo apt-get update
・インストールされるパッケージの確認
$sudo apt-cache policy mysql-server
コマンド入力後、以下のように表示されていれば大丈夫です。
mysql-server:
Installed:(none)
Candidate: 5.6.27-1ubuntu14.04
・インストール
$sudo apt-get install mysql-server
これでMySQLのインストールが完了しました。
4.ブラウザからセットアップ画面にアクセス
PHP・Nginx・MySQLの設定が終わったら、一旦ブラウザからアクセスしてみたいと思います。
サーバーのURLにブラウザからアクセスしてみてください。
権限が適切に与えられていないと上のようなエラー画面が表示されてしまいます。権限を適切に変更して、もう一度ブラウザからアクセスしてみてください。
Magento2のセットップ画面が表示されていれば、問題ありません。
ブラウザを用いて、この画面からインストールを始めても良いのですが、今回はコマンドラインからインストールしていきます。
5.Magento2インストール(コマンドライン)
Magento2のインストールは、ブラウザとコマンドラインの二つの方法で行うことができます。当初、私はブラウザを用いたインストールを試みましたが、必ずどこかで止まってしまい、インストールを完了させることが出来ませんでした。
・コマンドラインからのインストールをオススメします
まずはディレクトリをMagento2の実行ファイルmagentoがあるbinに移します。
$ cd /var/www/Magento2/bin
各種パラーメータを適宜入力してください。
./magento setup:install
--base-url=http://~~
--db-host=localhost
--db-name=magento
--db-user=root
--db-password=
--admin-firstname=
--admin-lastname=
--admin-email=---@---
--admin-user=admin
--admin-password=admin123
--language=en_US
--currency=USD
--timezone=America/Chicago
--cleanup-database
--sales-order-increment-prefix="ORD$"
--session-save=db
--use-rewrites=1
パラメーターの設定が終わったら、インストールを実行します。
インストール中に何度か止められるので、その都度エラーの指示にしたがって、足りないものを追加してあげてください。
・PHP Fatal error: Class 'Locale' not found
PHPの拡張関数、Localeが利用できないようなので、php7.0-intlをインストールしてあげます。
$sudo apt-get install php7.0-intl
インストールが終わりましたら、もう一度Magento2のインストールを試みます。
・Database 'magento' does not exist or specified database server user does not have privileges to access this database.
「magentoのデータベースが存在しない」と言われています。
事前にデータベースを作成しておく必要があったようです。MySQLに接続して、データベースを作成します。
$ mysql -u root -p
CREATE DATABASE magento;
再度インストールを実行します。完了までには少しばかり時間がかかると思います。
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin
上記のように表示されたら完了です。adminのURIはしっかり覚えておきましょう。
6.ブラウザからフロントエンドにアクセス
インストールが完了したら、実際にブラウザからアクセスしてみます。
うまくフロントエンド画面が表示されていれば良いのですが、サーバーエラーが表示されることが時々あります。
・Magento2/var以下に適切な権限を与えて下さい
私の場合は、正しい権限が与えられておらず、キャッシュに書き込みができなくなっていました。
7.CSSを読み込ませる
・CSSが反映されていないことがある
ブラウザの表示が上の画像のようになっている場合はCSSが正しく読み込まれていない可能性が考えられます。
Magentoの実行ファイルを用いて、静的ファイルをデプロイしていきます。
./magento setup:static-content:deploy
デプロイが終了したら、Nginxを再起動してもう一度アクセスしてみてください。
$sudo service nginx restart
正常に表示されたら、これでMagento2の設定は完了です。
まとめ
Magento2のインストールは大変難しい作業であると痛感しました。初心者がMagento2をインストールする際は時間の余裕を持って、エラーログをしっかり確認しながら慎重に進めていく必要があります。
ブラウザからのインストールでは、コケてもエラーログが表示されず、問題の箇所を特定することができなかったので、結局インストールできないままで終わってしまいました。
Magento2をインストールする際は、権限の問題など最低限のUNIXの知識は持っていないと厳しいようです。
2.0.2 インストールパラメーター
./magento setup:install --db-host="localhost" --db-name="magento" --db-user="" --db-password="" --language="ja_JP" --timezone="Asia/Tokyo" --currency="" --admin-user="" --admin-password="" --admin-email="" --admin-firstname="" --admin-lastname="" --cleanup-database --use-sample-data