本記事は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よりダウンロードしておいて下さい) https://www.magentocommerce.com/download手順
今回はさくらのレンタルサーバーに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.ブラウザからフロントエンドにアクセス
インストールが完了したら、実際にブラウザからアクセスしてみます。 うまくフロントエンド画面が表示されていれば良いのですが、サーバーエラーが表示されることが時々あります。![スクリーンショット 2015-12-07 12.30.46.png](https://qiita-image-store.s3.amazonaws.com/0/97920/57a895cd-4140-aabb-551f-86379b9b633b.png "スクリーンショット 2015-12-07 12.30.46.png") ・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