MagentoはPHPで書かれたオープンソースのeコマースプラットフォームです。 その拡張可能でモジュラーアーキテクチャは、大規模および中規模のWebサイトを構築するのに最適です。 Magentoは5.6から7.1までのPHPバージョンをサポートしています。 MySQLデータベースを使用してデータを保存します。 このトピックでは、CentOS 7オペレーティングシステムを実行するElastic Compute Service (ECS) インスタンス上にMagento eコマースWebサイトを構築する方法について説明します。
前提条件
Alibaba Cloud アカウントが作成済みであること。 Alibaba Cloudアカウントを作成するには、[Alibaba Cloudに登録] ページに移動します。
ECSインスタンスのセキュリティグループにインバウンドルールが追加され、ポート80と3306のトラフィックが許可されます。 詳細については、「セキュリティグループルールの追加」をご参照ください。
説明ほとんどのクライアントはLAN内に配置され、プライベートIPアドレスをパブリックIPアドレスにマッピングして外部リソースと通信できます。 したがって、ipconfigまたはifconfigコマンドによって返されるIPアドレスは、クライアントの実際のパブリックIPアドレスではない可能性があります。 クライアントがMagento Webサイトの構築後にアクセスできない場合は、クライアントのパブリックIPアドレスを確認します。
ルールの方向
Action
プロトコルタイプ
ポート範囲
権限付与タイプ
権限付与オブジェクト
インバウンド
許可
HTTP (80)
80/80
IPv4 CIDR block
CIDRブロックには、Magento Webサイトにアクセスする必要があるすべてのクライアントのパブリックIPアドレスが含まれています。 CIDRブロックはコンマ (,) で区切ります。
すべてのクライアントがMagento Webサイトにアクセスできるようにするには、承認オブジェクトとして0.0.0.0/0を指定します。
インバウンド
許可
MySQL (3306)
3306/3306
IPv4 CIDR block
CIDRブロックには、MySQLデータベースサービスにアクセスする必要があるすべてのクライアントのパブリックIPアドレスが含まれています。 CIDRブロックはコンマ (,) で区切ります。
すべてのクライアントがサービスにアクセスできるようにするには、承認オブジェクトとして0.0.0.0/0を指定します。
背景情報
このトピックでは、次の設定を持つECSインスタンスが使用されます。
インスタンスタイプ: ecs.c6.large
オペレーティングシステム: CentOS 7.2 64ビットパブリックイメージ
CPU: 2 vCPU
メモリ: 4 GiB
説明Magentoサーバーを構築する場合、選択したインスタンスタイプのメモリは少なくとも2 GiBである必要があります。
ネットワークタイプ:Virtual Private Cloud (VPC)
IPアドレス: パブリックIPアドレス
サンプル手順では、次のソフトウェアバージョンが使用されます。
Apache HTTPサーバー: 2.4.6
MySQL: 5.7
PHP: 7.0
コンポーザ: 1.8.5
Magento: 2.1
前のバージョンとは異なるバージョンのソフトウェアを使用している場合は、コマンドとパラメーター設定を調整する必要があります。
手順
次の手順を実行して、Alibaba Cloud ECSインスタンスにMagento e-commerce Webサイトを構築します。
手順1: Apache HTTPサーバーのインストールと設定
Apacheをインストールします。
次のコマンドを実行してApacheをインストールします。
yum install httpd -y
次のコマンドを実行して、Apacheがインストールされているかどうかを確認します。
httpd -v
次のコマンド出力は、Apacheがインストールされていることを示します。
Apacheを設定します。
次のコマンドを実行して、Apacheの設定ファイルを開きます。
vim /etc/httpd/conf/httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so
をInclude conf.mo dules.d/*.conf
の下に追加します。 次の手順を実行します。Include conf.mo dules.d/*.conf
行の下の行の先頭にポインターを移動します。Iキーを押して編集モードに入ります。
LoadModule rewrite_module modules/mod_rewrite.so
と入力します。
追加されたコンテンツを次の図に示します。
次のコンテンツの
AllowOverride None
をAllowOverride All
に置き換えます。# AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # # Add a number sign (#) at the beginning of the line to comment out this line. #AllowOverride None # Add the following content: AllowOverride All
置換結果を次の図に示します。
[Esc] キーを押して :wqと入力し、enterキーを押して設定ファイルを保存して閉じます。
次のコマンドを実行してApacheを起動します。
systemctl start httpd
次のコマンドを実行して、システム起動時にApacheを実行するように設定します。
systemctl enable httpd
ステップ2: MySQLのインストールと設定
MySQLをインストールします。
次のコマンドを実行して、MySQL YUMリポジトリを追加します。
rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
次のコマンドを実行してMySQLをインストールします。
yum -y install mysql-community-server -- nogpgcheck
次のコマンドを実行してMySQLを起動します。
systemctl start mysqld
次のコマンドを実行して、システム起動時にMySQLを実行できるようにします。
systemctl enable mysqld
MySQLを設定します。
次のコマンドを実行して、/var/log/mysqld.logファイルを確認し、rootユーザーの初期パスワードを取得して記録します。
grep 'temporary password' /var/log/mysqld.log
次のコマンド出力が返されます。
2016-12-13T14:57:47.535748Z 1 [Note] A temporary password is generated for root@localhost: p0/G28g>lsHD
説明この初期パスワードは、rootユーザーのパスワードをリセットするときに使用します。
次のコマンドを実行して、MySQLのセキュリティ設定を構成します。
mysql_secure_installation
次の操作を実行します。
rootユーザーのパスワードを設定します。
Enter password for user root: # Enter the initial password that you obtained in the previous step. The 'validate_password' plugin is installed on the server. The subsequent steps will run with the existing configuration of the plugin. Using existing password for root. Estimated strength of the password: 100 Change the password for root ? (Press y|Y for Yes, any other key for No) : Y # Enter Y to change the password of the root user. New password: # Enter a new password that is 8 to 30 characters in length. The password must contain uppercase letters, lowercase letters, digits, and special characters. Supported special characters include ( ) ` ~ ! @ # $ % ^ & * - + = | { } [ ] : ; ‘ < > , . ? / Re-enter new password: # Enter the new password again. Estimated strength of the password: 100 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y
匿名ユーザーを削除するには、
Y
と入力します。By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y # Enter Y to delete the anonymous user. Success.
ルートユーザーによるリモートアクセスを拒否するには、
Y
と入力します。Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y # Enter Y to deny remote access by the root user. Success.
Y
と入力して、テストデータベースとデータベースのアクセス許可を削除します。Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y # Enter Y to delete the test database and the access permissions on the database. - Dropping test database... Success.
権限テーブルをリロードするには、
Y
と入力します。Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y # Enter Y to reload privilege tables. Success. All done!
詳細については、「MySQLドキュメント」をご参照ください。
ステップ3: PHPのインストールと設定
PHPをインストールします。
次のコマンドを実行して、IUSリポジトリを追加します。
yum
install \ https:// repo.ius.io/ius-release-el7.rpm \ https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
次のコマンドを実行してWebtaticリポジトリを追加します。
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
次のコマンドを実行して、PHP 7と必要なすべての拡張機能をインストールします。
yum -y install php70w php70w-pdo php70w-mysqlnd php70w-opcache php70w-xml php70w-gd php70w-mcrypt php70w-devel php70w-intl php70w-mbstring php70w-bcmath php70w-json php70w-iconv
次のコマンドを実行して、PHPのバージョンを確認します。
php -v
次のコマンド出力は、PHPがインストールされていることを示します:
PHP 7.0.33 (cli) (built: Dec 6 2018 22:30:44) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies with Zend OPcache v7.0.33, Copyright (c) 1999-2017, by Zend Technologies
PHPを設定します。
次のコマンドを実行して、PHP設定ファイルを開きます。
vim /etc/php.ini
ポインタを最後の行の末尾に移動します。 次の操作を実行します。
:$ と入力し、Enterキーを押してポインタをファイルの最後の行に移動します。
$キーを押してポインタを行末に移動します。
Iキーを押して編集モードに入ります。
ファイルの末尾にメモリ制限とタイムゾーンの設定を追加します。
; The maximum memory value allowed for the PHP script. You can increase or decrease the memory limit. memory_limit = 1024M ; Set the time zone to Shanghai. date.timezone = Asia/Shanghai
以下の図に結果を示します。
[Esc] キーを押して :wqと入力し、enterキーを押して設定ファイルを保存して閉じます。
Apacheを再起動します。
systemctl restart httpd
ステップ4: Magentoデータベースを作成する
次のコマンドを実行して、rootユーザーのアカウントとパスワードでMySQLにログインします。
mysql -u root -p
次のコマンドを実行して、
magento
データベースを作成します。mysql> CREATE DATABASE magento; # Replace magento with the name of database that you want to create.
次のコマンドを順番に実行して、
magento
データベースのユーザーを作成します。mysql> GRANT ALL ON magento.* TO <YourUser>@localhost IDENTIFIED BY '<YourPass>'; # Replace <YourUser> with the account that you want to create and <YourPass> with the password that you want to set. mysql> FLUSH PRIVILEGES;
たとえば、
magentoUser
という名前のアカウントを作成し、そのパスワードをmagentoUser1 @ 3
に設定するには、次のコマンドmysql> GRANT ALL ON magento.* TO magentoUser@localhost IDENTIFIED BY 'magentoUser1@3'; mysql> FLUSH PRIVILEGES;
Enter exitを入力し、Enterキーを押してMySQLを終了します。
オプション: 新しいMagentoデータベースとアカウントが利用可能かどうかを確認します。 次の手順を実行します。
次のコマンドを実行して、新しいアカウントとパスワードでMySQLにログインします。
mysql -u <YourUser> -p # Replace <YourUser> with the account that you created.
次のコマンドを実行して、新しい
magento
データベースを表示します。mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | magento | +--------------------+ 2 rows in set (0.00 sec)
次のコマンドを実行し、Enterキーを押してMySQLを終了します。
mysql> exit
ステップ5: Composerのインストールと設定
ComposerはPHPの依存関係管理ツールです。 Composerは、プロジェクトの基礎として使用されるコードリポジトリを識別できます。 プロジェクトの依存コードリポジトリをインストールするためにも使用できます。
次のコマンドを実行してComposerをインストールします。
curl -sS https://getcomposer.org/installer | php
次のコマンドを実行してComposerを設定します。
mv /root/composer.phar /usr/bin/composer
composer -vコマンドを実行して、Composerのバージョンを確認します。
次のコマンド出力は、Composerがインストールされていることを示します。
/ ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 1.8.5 2019-04-09 17:46:47
説明最新のComposerバージョンはMagentoと互換性がありません。 したがって、Magentoと互換性のあるバージョンのComposerをインストールする必要があります。 次のコマンドを実行して、最新のComposerバージョンをMagentoと互換性のあるComposer 1.8.5などのバージョンに変換します。
composer self-update 1.8.5
ステップ6: Magentoのインストールと設定
さまざまな方法でMagentoをインストールし、サンプルデータをインストールするかどうかを判断できます。
テスト目的でのみMagentoをインストールする場合は、サンプルデータをインストールできます。
本番向けにMagentoをインストールする場合は、Magentoをインストールして最初から設定することをお勧めします。
この例では、Gitを使用してMagentoをダウンロードし、Composerを使用してMagentoをインストールします。
ダウンロードMagento.
次のコマンドを実行してGitをインストールします。
yum -y install git
webサーバーのデフォルトのルートディレクトリに移動します。
cd /var/www/html/
ダウンロードMagento.
git clone https://github.com/magento/magento2.git
オプション: 次のコマンドを実行して、Magentoを安定バージョンに切り替えます。
cd magento2&git checkout tags/2.1.0 -b 2.1.0
次のコマンド出力が返されます。
Switched to a new branch '2.1.0'
に切り替え
説明デフォルトでは、Gitは最新のMagentoバージョンをダウンロードしてインストールします。 本番環境でMagentoを使用する場合は、Magentoを安定したバージョンに切り替えることを推奨します。 そうしないと、将来Magentoをアップグレードしてインストールするときに問題が発生する可能性があります。
次のコマンドを実行して、インストールファイルをwebサーバーのルートディレクトリに移動します。
shopt -s dotglob nullglob && mv /var/www/html/magento2/* /var/www/html/ && cd ..
説明このコマンドを実行すると、
https:// <ECSインスタンスのパブリックIPアドレス>
を使用してMagento Webサイトにアクセスできます。 それ以外の場合は、https:// <ECSインスタンスのパブリックIPアドレス>/magento2
を使用してのみ、Magento Webサイトにアクセスできます。次のコマンドを順番に実行して、Magentoファイルに適切な権限を設定します。
chown -R :apache /var/www/html
find /var/www/html -type f -print0 | xargs -r0 chmod 640
find /var/www/html -type d -print0 | xargs -r0 chmod 750
chmod -R g + w /var/www/html /www/html/{pub,var}
chmod -R g + w /var/www/html/{app/etc,vendor}
chmod 750 /var/www/html/bin/magento
composer installコマンドを実行してMagentoをインストールします。
手順7: Magentoクライアントの設定
ブラウザを開きます。
ブラウザーのアドレスバーに、
http:// <ECSインスタンスのパブリックIPアドレス>
と入力します。次のページは、Magentoがインストールされていることを示します。
[Agree and Setup Magento] をクリックしてMagentoの設定を開始します。 次の手順を実行します。
準備状況を確認します。
[準備チェックの開始] をクリックします。
チェックが完了したら、[次へ] をクリックします。
データベースを追加します。
作成したデータベースのアカウントとパスワードを入力します。 この例では、ユーザーアカウントは
magentoUser
で、パスワードはmagentoUser1 @ 3
です。作成したデータベースの名前を入力します。 この例では、データベース名は
magento
です。[次へ] をクリックします。
webアクセスの設定を完了し、[次へ] をクリックします。
カスタムストア情報を入力し、[次へ] をクリックします。
管理者アカウント情報を入力し、[次へ] をクリックします。
[今すぐインストール] をクリックしてMagentoをインストールします。
次のページは、Magentoが設定されていることを示します。
ステップ8: cronジョブを追加する
cronジョブを追加するには、次の手順を実行します。
crontab -u apache -eコマンドを実行して、cronが操作するジョブを設定します。
Iキーを押して編集モードに入ります。
次の設定を入力します。
*/10 * * * * php -c /etc /var/www/html/bin/magento cron:run */10 * * * * php -c /etc /var/www/html/update/cron.php */10 * * * * php -c /etc /var/www/html/bin/magento setup:cron:run
[Esc] キーを押して :wqと入力し、enterキーを押して設定ファイルを保存して閉じます。
Magentoでcronジョブを使用する方法の詳細については、「cronの設定と実行」をご参照ください。
よくある質問
ブラウザにhttp:// <ECSインスタンスのパブリックIPアドレス>/admin
を入力してMagento Webサイトに接続した場合、「1つ以上のインデクサーが無効な場合」 Magento cronジョブが実行中であることを確認します。エラーメッセージが返され、次の操作を実行します。
Magentoサーバーに接続します。 詳細については、「接続方法の概要」をご参照ください。
次のコマンドを実行して、PHPインストールパスから /usr/sbin/phpディレクトリへのシンボリックリンクを作成します。
ln -s /usr/local/php/bin/php /usr/sbin/php
次のコマンドを実行してインデックスを更新します:
cd /var/www/html php bin/magento indexer:reindex
次のようなコマンド出力は、インデックスが更新されたことを示します。
[root@iZbp1h2mquu8nb0jz99**** wwwroot]# php bin/magento indexer:reindex Design Config Grid index has been rebuilt successfully in 00:00:00 Customer Grid index has been rebuilt successfully in 00:00:00 Category Products index has been rebuilt successfully in 00:00:00 Product Categories index has been rebuilt successfully in 00:00:00 Product Price index has been rebuilt successfully in 00:00:00 Product EAV index has been rebuilt successfully in 00:00:00 Stock index has been rebuilt successfully in 00:00:00 Catalog Rule Product index has been rebuilt successfully in 00:00:00 Catalog Product Rule index has been rebuilt successfully in 00:00:00 Catalog Search index has been rebuilt successfully in 00:00:00
で正常に再構築されました
ページを更新し、[キャッシュ管理] をクリックします。
[キャッシュタイプ] 列に [無効化] が表示されているキャッシュを選択し、[送信] をクリックします。 次のようなコマンド出力は、問題が修正されたことを示します。
次のステップ
http:// <ECSインスタンスのパブリックIPアドレス>
にアクセスして、次のデフォルトのホームページに移動します。http:// <ECSインスタンスのパブリックIPアドレス>/admin
にアクセスし、インストール時に設定したユーザー名とパスワードを入力します。 管理コンソールにログインすると、次のページが表示されます。