Ubuntu 20.04LTSにMagento2をインストールする方法

Ubuntu20.04サーバーにMagento2ストアをセットアップしてデプロイする方法に関する包括的なガイド。

Magentoは、PHPで構築および作成された人気のあるeコマースプラットフォームであり、多くの小規模企業が製品を販売し、オンラインでの存在感を高めるために使用されています。これにより、在庫管理、製品カタログ、配送、請求などの機能を備えた本格的なオンラインストアを作成できます。

あなたのビジネスのための洗練されたエンタープライズグレードのショッピングプラットフォームを構築しようとしているなら、Magentoは素晴らしい出発点になるはずです。そのため、このガイドでは、Ubuntu20.04サーバーでLAMPスタックを使用してMagentoコミュニティエディションバージョン2.3をセットアップする方法について説明します。

前提条件

Ubuntu 20.04 LTSサーバーが必要であり、 sudo 有効なユーザー。また、Ubuntu20.04サーバーのIPを指すドメイン名も必要です。我々は使用するだろう example.com ドメイン名が必要な場合は、それを自分のドメインに置き換えてください。始める前に、パッケージリストを更新してから、Ubuntu20.04サーバー上のパッケージをアップグレードしてください。

sudo apt update && sudo apt upgrade

ApacheWebサーバーをインストールします

Magentoが機能するには、Webサーバーが必要です。このガイドでは、LAMP(Linux、Apache、MySQL、PHP)スタック上でMagentoアプリケーションを実行することを選択しました。したがって、LAMPスタックで構成されるすべてのパッケージをインストールします。

Apache Webサーバーは、インターネット上で最も人気のあるWebサーバーの1つであり、Webサーバーの総市場シェアのほぼ37.2%を占めています。また、Apacheの代わりにNginxWebサーバーを使用するLEMPスタックにMagentoをインストールすることもできます。ただし、このガイドでは、Apacheを使用してMegentoサーバーをデプロイします。

Apache Webサーバーをインストールするには、以下のコマンドを実行します。

sudo apt install apache2

ユーザーパスワードを入力してを押します Y プロンプトが表示された場合。インストールが完了したら、UbuntuのUncomplicate Firewall(UFW)を構成して、ポートでのトラフィックを許可する必要があります 80 & 443.

UFWには事前構成されたプロファイルが付属しており、これを切り替えて、アプリケーションがUbuntu20.04サーバーのポートにアクセスできるようにすることができます。そのため、Apache Webサーバーをインストールすると、「Apache」、「Apache Full」、「ApacheSecure」というUFWプロファイルがUFWアプリリストに追加されました。 ApacheWebサーバーがポートでサービスを提供できるようにする 80 & 443 実行することによって:

sudo ufw allow'Apache Full '

これで、UFWを有効にするだけで済みますが、有効にする前に、ポートが許可されていることを確認してください。 22 (SSH)。 SSH UFWルールを変更しないと、Ubuntu20.04サーバーからロックアウトされる可能性があります。

sudo ufw allow'OpenSSH '

最後に、以下を実行してUFWファイアウォールを有効にします。

sudo ufw enable

押す Y SSHを通過させるルールをすでに追加しているため、コマンドがSSH接続を中断する可能性があるというプロンプトが表示された場合。これで、ブラウザからApache Webサーバーにアクセスし、URLバーにUbuntu 20.04サーバーのIPアドレスを入力して、Enterキーを押すことができます。

apache2ubuntuのデフォルトページ

MySQLサーバーをインストールします

また、Magentoショップのすべてのコンテンツが保存される場所であるため、Magentoを実行するためのデータベースサーバーも必要になります。 MySQLサーバーをインストールし、というユーザーを作成します マゼンタ と呼ばれるデータベース Magento Magentoの場合。

MySQLパッケージは次のように呼ばれます mysql-server Ubuntuリポジトリで、次のコマンドを実行してインストールします。

sudo apt install mysql-server

次に、MySQLのセキュリティ設定を適切に構成する必要があります。幸い、MySQLパッケージには、MySQLサーバーの構成をはるかに簡単にするセキュリティスクリプトが付属しています。したがって、次のコマンドを実行してこのスクリプトを実行します。

sudo mysql_secure_installation

複数の質問が表示されます。これらはMySQLサーバーの最適な設定です。

  • VALIDATE PASSWORDコンポーネントをセットアップしますか?[y / n]:次のように入力します Y
  • パスワード検証ポリシーには3つのレベルがあります。
    • 0 = LOW、1 = MEDIUM、2 = STRONGと入力してください:入力してください 2
  • ここでrootのパスワードを設定してください。
    • 新しいパスワード:MySQLrootユーザーのパスワードを入力します。
    • 新しいパスワードを再入力します。選択したパスワードを繰り返します。
  • 匿名ユーザーを削除しますか? [y / n]:入力 Y
  • rootログインをリモートで禁止しますか? [y / n]:入力 Y
  • テストデータベースを削除してアクセスしますか? [y / n]:入力 Y
  • 今すぐ特権テーブルをリロードしますか? [y / n]:入力 Y

次に、MySQLサーバーがインストールされ、正しく機能していることを確認および確認するには、次の方法でrootユーザーとしてMySQLサーバーにログインします。

sudo mysql

あなたの〜を入力してください sudo プロンプトが表示されたらユーザーパスワードを入力し、Enterキーを押します。 MySQLrootユーザーは unix_socket ログインを認証します。これが本質的に意味することは、あなたは sudo rootユーザーとしてMySQLサーバーにログインするユーザー。

Magentoの新しいデータベースとユーザーを作成する

これで、MagentoのMySQLユーザーを作成できます。このガイドの各手順を実行した場合は、MySQLコンソールを開いておく必要があります。と呼ばれるデータベースを作成します Magento MySQLコンソールに次のクエリを入力します。

CREATE DATABASE magento;

と呼ばれる新しいMySQLユーザーを作成するには マゼンタ、コンソールで次のクエリを実行します。

CREATE USER'magentouser '@'% 'IDENTIFIED WITH mysql_native_password BY'password';

ノート: 交換してください パスワード 選択した強力なパスワードを使用してクエリを実行します。

次に、新しい マゼンタ へのフルアクセス Magento データベース:

GRANT ALL ONmagento。* TO'magentouser '@'% 'WITH GRANT OPTION;

を設定する必要があります log_bin_trust_function_creators 最新バージョンのMySQLでは無効になっているため、パラメータは1です。有効にしないと、Magentoはインストール中にいくつかのエラーをスローします。これを行うには、次のクエリを実行します。

SET GLOBAL log_bin_trust_function_creators = 1;

最後に、変更したデータベースの権限と設定を再読み込みし、次のクエリを使用してコンソールを終了します。

フラッシュ特権;出口;

PHPと必要な拡張機能をインストールする

Magentoが機能するには、PHPといくつかのPHP拡張機能が必要です。この記事を書いている時点で、Magentoコミュニティエディションバージョン 2.3 最新のPHPバージョンでは機能しません 7.4 したがって、PHPバージョンをインストールする必要があります 7.3.

PHPバージョンをインストールできるように、サードパーティのPHPPPAを追加する必要があります 7.3 Ubuntuリポジトリには最新のものしかありません 7.4 パッケージ。次のコマンドを実行して、PPAを追加し、パッケージリストを更新します。

sudo add-apt-repository ppa:ondrej / php && sudo apt update

次に、次のコマンドを実行して、PHP7.3とMagentoに必要なすべてのPHPモジュールをインストールします。

sudo apt install php7.3 php7.3-common php7.3-mysql php7.3-fpm php7.3-gmp php7.3-curl php7.3-intl php7.3-mbstring php7.3-xmlrpc php7.3- gd php7.3-xml php7.3-cli php7.3-zip php7.3-bcmath php7.3-soap libapache2-mod-php7.3

PHP 7.3をインストールした後、Magentoが正しく機能するために推奨するいくつかの基本設定を構成する必要があります。このコマンドを実行して、nanoを使用してFPM拡張機能の構成ファイルを開きます

sudo nano /etc/php/7.3/fpm/php.ini

ほとんどのMagentoWebサイトに推奨される設定のいくつかを次に示します。

file_uploads =オンallow_url_fopen =オンshort_open_tag =オンmemory_limit = 256M cgi.fix_pathinfo = 0 upload_max_filesize = 100M max_execution_time = 360

を押して変更を保存します Ctrl + O 次に、を押してnanoエディターを終了します。 Ctrl + X。これでPHPと必要なすべての拡張機能ができたので、Magentoの入手に進むことができます。

Composerをインストールします

Composerは、PHPフレームワークとライブラリのインストールを容易にするPHP依存関係マネージャーです。 Ubuntu 20.04サーバーにMagentoをダウンロードしてインストールするには、Composerが必要です。

Composerには、というパッケージが必要です 解凍 ダウンロードしたライブラリとフレームワークを抽出するには、次のコマンドを実行してインストールします。

sudo apt install unzip

次に、次のコマンドを実行して、composerをシステム全体のレベルにインストールします。

curl -sS //getcomposer.org/installer | sudo php --- install-dir = / usr / local / bin --filename = composer

上記のコマンドは、Ubuntu20.04サーバーにComposer依存関係マネージャーをインストールする必要があります。以下を実行して、Composerが正しくインストールされていることを確認します。

作曲
 出力:  ______ / ____ / ___ ____ ___ ____ ____ ________ _____ / / / __ \ / __ `__ \ / __ \ / __ \ / ___ / _ \ / ___ / / / _ / / / / _ /(__)__ / / \ ____ / \ ____ / _ / / _ / / _ / .___ / \ ____ / ____ / \ ___ / _ / / _ / Composerバージョン1.10.82020-06- 24 21:23:30使用法:コマンド[オプション] [引数] 

Magentoをダウンロードしてインストールする

Magentoに必要なすべてのパッケージをインストールして構成したので、Magentoのダウンロードとインストールに進むことができます。

Magentoアカウントの作成

Ubuntu 20.04サーバーにMagentoをダウンロードするには、Magento2アクセスキーが必要です。このアクセスキーを取得するには、Magentoアカウントが必要です。登録しておらず、Magentoアカウントをお持ちでない場合は、このページに移動して[登録]をクリックしてください。

Magentoアカウントの作成が完了すると、新しいアクセスキーを作成できるようになり、composerを使用してマシンにMagento2をダウンロードできるようになります。このページですべてのMagentoアクセスキーを表示できます。 Magento 2タブの下にアクセスキーがない場合は、[Create A New Access key]ボタンをクリックして名前を付け、[OK]を押します。

これらのキーは、Composerを介してMagentoリポジトリからMagento2をダウンロードするために使用される資格情報です。 Magentoをダウンロードするときにこれらのキーを使用しますが、その前に、ディレクトリの所有権とアクセス許可を設定します。

インストール前の所有権と権限の構成

ファイルのアクセス許可は、任意のWebサイトのセキュリティを確立または破壊する可能性があるため、Apacheサーバーのドキュメントルートの所有権とアクセス許可を適切に設定する必要があります。

のデフォルトの所有者 / var / www / ディレクトリはrootユーザーですが、このディレクトリの下のファイルにアクセスして変更する必要があります。さらに、Webサーバーは、Magentoサイトのコンテンツを書き戻したり変更したりするために、ドキュメントルートにアクセスする必要もあります。

したがって、この問題を解決するために、現在のユーザーをに追加します。 www-data グループ、そうするために実行します:

sudo usermod -a -G www-data $ USER

The -a-G オプションは追加するので重要です www-data ユーザーアカウントのセカンダリグループとして、ユーザーのプライマリグループを保持します。ユーザーをWebサーバーグループに追加した後、の所有者を変更します / var / www / このコマンドを使用したサブディレクトリとそのサブディレクトリ:

sudo chown -R $ USER:www-data / var / www /

Magentoのインストール前のアクセス許可を設定したので、Webサーバーのドキュメントルートにダウンロードすることができます。

Magentoのダウンロード

この時点で、アクセスキーとインストール前のアクセス許可が正しく設定されたMagentoアカウントが必要です。そこで、Composerを使用してMagentoをApacheドキュメントルートにダウンロードしてからインストールします。

現在のディレクトリをに変更します / var / www / したがって、ターミナルは次のコマンドを実行してその方向を指します。

cd / var / www /

以下のコマンドを実行して、Composerを使用して新しいプロジェクトを作成します。 Magento.

composer create-project --repository = // repo.magento.com/ magento / project-community-edition magento

上記のコマンドを使用すると、ユーザー名とパスワードの入力を求められます。ここで作成したアクセスキーを使用します。公開鍵をコピーしてユーザー名として貼り付け、同様に秘密鍵をコピーしてパスワードとして端末に貼り付けます。次にを押します Y 将来の使用のために資格情報を保存します。

 出力:  「./magento」での「magento / project-community-edition」プロジェクトの作成repo.magento.comからの警告:Magento認証キーが提供されていません。手順については、// devdocs.magento.com/guides/v2.3/install-gde/prereq/connect-auth.htmlにアクセスしてください。認証が必要です(repo.magento.com):ユーザー名:e8b6120dce14c3d982a85525264897c4パスワード:資格情報を保存しますか/home/ath/.config/composer/auth.jsonのrepo.magento.comの場合? [Yn] Y

Magentoとそのすべての依存関係をComposerからダウンロードしたら、新しいmagentoプロジェクトディレクトリとそのファイルの所有権と権限も設定する必要があります。次の方法でディレクトリをMagentoプロジェクトルートに変更します。

cd / var / www / magento /

次に、以下を実行して、Magentoプロジェクトディレクトリとそのサブディレクトリのグループ所有者を変更します。

検索var生成ベンダーpub / static pub / media app / etc -type f -exec chmod g + w {} + && findvar生成ベンダーpub / static pub / media app / etc -type d -exec chmod g + ws {} + && chmod u + x bin / magento && sudo chown -R:www-data。 

このコマンドは、Webサーバーグループに(www-data)ベンダー、pub / static、pub / media&app / etcディレクトリおよびそれらの内部のファイルに書き込むための権限。さらに、それは bin / magento ファイルは実行可能であるため、実行してシステムにMagentoをインストールできます。

Magento用のApacheの設定

この場合、CLIインストールよりも直感的であるため、GUIを介してMagentoをインストールします。したがって、Magentoのインストールを続行する前に、ApacheWebサーバーの仮想ホストを作成する必要があります。

次のコマンドを使用して、Apacheのデフォルトの仮想ホストファイルをnanoで開きます。

sudo nano /etc/apache2/sites-available/000-default.conf

ドキュメントルートをに変更します / var / www / magento その下に次のコードスニペットを追加します。

 AllowOverride All ServerName example.com ServerAlias www.example.com

交換してください example.com ServerNameとServerAliasでドメイン名を使用します。あなたの変化 000-default.conf ファイルは、以下に示す強調表示されたテキストのようになります。を押して変更を保存します Ctrl + O を使用してエディタを終了します Ctrl + X キー。

 ServerAdmin webmaster @ localhost DocumentRoot / var / www / magento AllowOverride All ServerName example.com ServerAlias www.example.com ErrorLog $ {APACHE_LOG_DIR} /error.log CustomLog $ {APACHE_LOG_DIR} /access.log結合 

次に、Apachemodを有効にする必要があります。 mod_rewrite Magentoで必要です。 URLを操作するための柔軟で強力な方法を提供するため、次のコマンドを実行してmodを有効にします。

sudo a2enmod rewrite

Apacheサーバーを再起動して、行った変更がサーバーに適用されるようにします。

sudo systemctl restart apache2

Magentoのインストール

Magentoが機能するために必要なものがすべて揃っているので、最終的にMagentoのインストールを進めることができます。ご希望のブラウザのURLバーにUbuntu20.04サーバーのIPアドレスを入力します。

[同意してMagentoをセットアップする]をクリックして、Magentoのインストールを続行します。 Magento Webインストーラーの最初のステップは準備チェックです。これにより、すべてのMagento要件が満たされていることが確認されます。 [準備チェックの開始]をクリックし、プロセスが完了したら、[次へ]を押します。

次のステップは、詳細を設定し、Magentoのデータベースを追加することです。 Magento用のMySQLユーザーをすでに作成しています マゼンタ と呼ばれるデータベース Magento 上記のセクションで。このセクションに適切な詳細、つまりデータベースサーバーのユーザー名、パスワード、データベース名を入力し、[次へ]を押して続行します。

Magentoセットアップの3番目のステップは、Web構成です。 「ストアアドレス」入力からドメイン名にIPアドレスがある場合は、それを置き換えます。スラッシュを付けることを忘れないでください(/)別の方法でドメイン名を入力すると、管理者アドレスのURLにアクセスできなくなります。

次に、[詳細オプション]をクリックし、Magentoサイトに安全な接続を使用する場合は、両方のHTTPSオプションにチェックマークを付けます。残りの設定はそのままにして、次へを押します。

ノート: HTTPSオプションにチェックマークを付けると、SSL証明書を取得する必要があります。このチュートリアルの次のセクションでは、SSL証明書を取得する方法を見ていきます。

[ストアのカスタマイズ]設定で、 必要に応じて、タイムゾーン、ストアで使用されるデフォルトの通貨、およびストアのデフォルトの言語を変更する必要があります。これらの設定を確認し、必要に応じて構成します。それ以外の場合は、[次へ]をクリックして続行します。

5番目のステップでは、Magento管理ダッシュボードの管理者アカウントを作成する必要があります。管理者の新しいユーザー名を入力し、ドメイン名プロバイダーから提供されたメールアドレスを入力します。管理者アカウントの強力なパスワードを作成し、完了したら次へを押します。

最後の最後のステップは、「インストール」ボタンをクリックして設定を確認し、インストールプロセスを開始することです。インストールが完了すると、Magentoのセットアップにより、Magentoサイトに関する概要といくつかの重要な詳細が表示されます。

これらの詳細は、オフラインの紙の記録や安全なデータベースなど、安全な場所に書き留めてください。 Magentoの管理者アドレスと暗号化キーを公に共有しないでください。暗号化キーは、データ漏洩が発生した場合でもユーザーデータが安全になるように、Magentoデータベースを暗号化するために使用されます。

MagentoサイトのSSL証明書を作成する

Magentoサイトがデプロイされ、インストールが完了した直後にアクセスできます。ただし、HTTPS経由でウェブトラフィックを配信する場合は、ドメインのSSL証明書を設定する必要があります。

Letsencryptは、TLS証明書を無料で提供する非営利の認証局です。というパッケージを使用します certbot これは、証明書を取得し、Apache仮想ホストを自動的に構成するのに役立ちます。ターミナルで次のコマンドを実行して、certbotをインストールします。

sudo apt install certbotpython3-certbot-apache

Letsencryptから証明書を取得し、Apache仮想ホストを構成するには、次のコマンドを実行します。

sudo certbot --apache

Certbotは、Letsencryptから証明書を取得するプロセスを開始し、プロンプトが表示されたら電子メールアドレスを入力して、Enterキーを押します。次に、 A Letsencryptの利用規約に同意する。メールアドレスをEFFと共有するかどうかを尋ねられたら、次のように入力します Y また N あなたの選択に応じて。

次に、HTTPSを有効にするドメイン名のリストが表示されます。ドメイン名に対応する適切な番号を入力し、Enterキーを押します。

ドメイン名を選択すると、HTTPトラフィックをHTTPSにリダイレクトするかどうかを尋ねられます。次のように入力します。 2 Enterキーを押します。 Certbotは、ドメインのApache仮想ホストを自動的に構成するようになります example.com.

Certbotパッケージには、有効期限が切れる前にサーバー証明書を自動的に更新するcronjobが付属しています。次のコマンドを実行して、自動更新が機能しているかどうかをテストします。

sudo certbot renew --dry-run

上記の出力は、自動更新cronジョブが正しく機能していることを意味します。 Certbotが機能したことを確認するには、ブラウザを開いてドメインにアクセスします //example.com.

同様に、次を使用して管理者ログインページにアクセスできます。 //example.com/admin_SecretString、このURLはMagentoのインストールの最後にありました。

これで、Ubuntu 20.04 LTSサーバーにMagentoが正常にインストールされ、必要に応じてストアのカスタマイズを開始できます。 Magentoの詳細とストア開発については、MagentoDocsページにアクセスしてください。