GNU/Linux >> Linux の 問題 >  >> Linux

AWS EC2 で負荷分散された WordPress ウェブサイトをセットアップする – パート 1

AWS EC2 で負荷分散された WordPress ウェブサイトをセットアップします。 Elastic Load Balancing を使用して、AWS で自動スケーリング機能を使用して大量のトラフィックを処理するように WordPress アプリケーションをセットアップする方法を学びます。

この完全なガイドでは、WordPress をインストールし、メディア ファイルに AWS S3 を使用するようにウェブサイトを構成し、Amazon マシン イメージを作成し、テンプレートをセットアップし、起動構成を作成し、自動スケーリング グループを構成してライブ トラフィックを管理し、データベースの RDS をセットアップします。

前提条件

  • 実行中の EC2 インスタンス。 AWS EC2 インスタンスを作成する方法を学びます。 Ubuntu 20.04 LTS または最新版を選択できます。
  • Elastic IP を EC2 インスタンスに割り当てます。
  • Amazon RDS をセットアップし、EC2 インスタンスに接続する
  • ドメイン名の AWS Route 53 をセットアップします。

上記の必要な前提条件がすべて整っている場合は、Elastic Load Balancing のセットアップに進むことができます。

EC2 から RDS への正常な接続のために、EC2 インスタンスのセキュリティ グループを RDS のセキュリティ グループに追加したことを確認してください。

サーバーの初期設定

VM インスタンスに SSH で接続し、パッケージの更新とアップグレードから始めます。

sudo apt update
sudo apt upgrade

WordPress 用の Apache2 をインストール

次のコマンドを使用して Apache2 をインストールします。

sudo apt install apache2

apache2 がインストールされます および必要なすべての依存関係。

ファイアウォールを構成する

HTTP のデフォルト Web ポートでのパブリック アクセスを許可するために、Apache で複雑でないファイアウォール (UFW) をセットアップできるようになりました。 、 HTTPSSSH

sudo ufw app list

リストされたすべてのアプリケーションが表示されます。

Output
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
  • アパッチ :このプロファイルはポート 80 を開きます (通常の暗号化されていない Web トラフィック)
  • Apache フル :このプロファイルは両方のポート 80 を開きます (通常の暗号化されていない Web トラフィック) およびポート 443 (TLS/SSL 暗号化トラフィック)
  • Apache セキュア :このプロファイルは、ポート 443 のみを開きます (TLS/SSL 暗号化トラフィック)
  • OpenSSH :このプロファイルはポート 22 を開きます SSH アクセス用

次に、Apache Full を有効にします。

sudo ufw allow OpenSSH
sudo ufw allow 'Apache Full'

次のコマンドを使用して UFW を有効にします

sudo ufw enable

PHP 8 と拡張機能をインストールする

ondrej/php を追加 これには、PHP 8 パッケージとその他の必要な PHP 拡張機能が含まれています。

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update

PPA を追加したら、PHP 8 をインストールできます。

sudo apt install php8.0 libapache2-mod-php8.0 php8.0-common php8.0-mysql php8.0-xml php8.0-xmlrpc php8.0-curl php8.0-gd php8.0-imagick php8.0-cli php8.0-dev php8.0-imap php8.0-mbstring php8.0-opcache php8.0-soap php8.0-zip php8.0-intl php8.0-bcmath unzip mariadb-client -y

PHP 8 を構成する

php.ini のいくつかの値を変更して、Web アプリケーション用の PHP を構成します。 ファイル。

Apache を使用する PHP 8 の場合、php.ini 場所は次のディレクトリになります。

sudo nano /etc/php/8.0/apache2/php.ini

F6 をヒット エディター内で検索し、パフォーマンスを向上させるために次の値を更新します。

upload_max_filesize = 32M 
post_max_size = 48M
memory_limit = 256M
max_execution_time = 600
max_input_vars = 3000
max_input_time = 1000

PHP 設定をインストールして構成したら、変更を有効にするために Apache を再起動する必要があります。

sudo service apache2 restart

ウェブサイト ディレクトリの構成

PHP 8 と Apache をインストールしたら、ディレクトリのセットアップに進むことができます。

Web サイトはホーム ディレクトリに配置され、次の構造になります。

yourdomainname を置き換えます 元のドメイン名

/var/www/html/
 -- yourdomainname
 ---- public

public directory は Web サイトのルート ディレクトリです。

これらのディレクトリを作成し、適切な権限を設定します

VM インスタンスに SSH 接続し、これらのコマンドを実行する必要があります

mkdir -p /var/www/html/yourdomainname/public
sudo chmod -R 755 /var/www/html/yourdomainname
sudo chown -R www-data:www-data /var/www/html/yourdomainname

WordPress の仮想ホストを構成する

sites-available に Web サイトの新しい構成ファイルを作成します。 ディレクトリ。

sudo nano /etc/apache2/sites-available/yourdomainname.conf

次の構成をコピーして貼り付けます。server_name、error_log、および root ディレクティブをドメイン名と一致するように変更してください。 CTRL+X をヒット 続いて Y 変更を保存します。

<VirtualHost *:80>
      ServerAdmin [email protected]
      ServerName www.yourdomainname.com
      ServerAlias yourdomainname.com

      DocumentRoot /var/www/html/yourdomainname/public

      <Directory /var/www/html/yourdomainname/public>
           Options Indexes FollowSymLinks
           AllowOverride All
           Require all granted
      </Directory>

      <Directory /usr/share/phpmyadmin>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
      </Directory>

      ErrorLog ${APACHE_LOG_DIR}/yourdomainname.com_error.log
      CustomLog ${APACHE_LOG_DIR}/yourdomainname.com_access.log combined
</VirtualHost>

この新しく作成された Web サイト構成を有効にするには、作成したばかりのファイルを sites-enabled にシンボリック リンクします。 ディレクトリ。

sudo a2ensite yourdomainname.conf

構成を確認し、Apache を再起動して変更を有効にします

sudo systemctl restart apache2

PhpMyAdmin のインストール (オプション)

これで、PhpMyAdmin をインストールして、データベースを作成し、ユーザー フレンドリーな方法でデータベースにユーザーを割り当てることができます。

PhpMyAdmin をダウンロードし、次のコマンドを使用して構成します。

sudo wget -P /usr/share https://files.phpmyadmin.net/phpMyAdmin/5.1/phpMyAdmin-5.1-all-languages.zip
sudo unzip /usr/share/phpMyAdmin-5.1-all-languages.zip -d /usr/share
sudo mv /usr/share/phpMyAdmin-5.1-all-languages /usr/share/phpmyadmin
sudo rm -f /usr/share/phpMyAdmin-5.1-all-languages.zip
sudo mkdir /usr/share/phpmyadmin/tmp
sudo chmod -R 777 /usr/share/phpmyadmin/tmp
sudo cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php

config.inc.php を編集します ファイル

sudo nano /usr/share/phpmyadmin/config.inc.php

/* Authentication type */ の下に以下を追加します .

$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
$cfg['Servers'][$i]['host'] = 'RDS_DATABASE_ENDPOINT';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
$cfg['Servers'][$i]['verbose'] = 'Amazon RDS';
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['TempDir'] = '/usr/share/phpmyadmin/tmp';

フグの秘密を入力してください。

$cfg['blowfish_secret'] = 'Some_Secret_Password_54_characters';

CTRL+X をヒット 続いて YENTER ファイルを保存して終了します。

データベースを作成

PhpMyAdmin (http://yourdomainname.com/phpmyadmin) で RDS インスタンスにログインできるようになりました。 ) インスタンスの作成時に構成したマスター ユーザー名とパスワードを使用します。

新しいデータベースとそのデータベースに関連付けられたユーザーを作成します。

WordPress をダウンロード

サーバー ソフトウェアが構成されたので、WordPress をダウンロードしてセットアップできます。

WordPress の最新バージョンを Web サイトから入手することを常にお勧めします。

cd /var/www/html/yourdomainname/public
curl -LO https://wordpress.org/latest.tar.gz

WordPress をダウンロードしたら、次のコマンドを使用して抽出する必要があります。

sudo tar xzvf latest.tar.gz

これで、ディレクトリの内容全体をドキュメント ルートにコピーできます。

sudo cp -a /var/www/html/yourdomainname/public/wordpress/. var/www/html/yourdomainname/public

次に、wordpress を削除してルート ディレクトリをクリーンアップします。 フォルダとダウンロードした tar ファイル。

sudo rm -r /var/www/html/yourdomainname/public/wordpress
sudo rm -f /var/www/html/yourdomainname/public/latest.tar.gz 

ルート フォルダに正しいアクセス許可を設定します。 yourdomainname を置き換えることを忘れないでください ドメイン名

sudo chmod -R 755 /var/www/html/yourdomainname
sudo chown -R www-data:www-data /var/www/html/yourdomainname

WordPress をインストール

ブラウザでウェブサイトにアクセスし、使用する言語を選択して [続行] をクリックします。

database を入力するよう求められます。 、 userpassword 、および hostname .

データベース名を入力してください PhpMyAdmin と user を使用して作成した パスワードとともにデータベースに割り当てられます。最後に、RDS エンドポイントを ホスト名 として入力します .

これで、インストールを実行できます。

インストールが完了したら、WordPress がファイル システムへの書き込みに使用する方法を設定する必要があります。 Web サーバーに必要な場所への書き込み許可を与えたので、ファイル システム メソッドを明示的に「直接」に設定できます。現在の設定でこれを設定しないと、WordPress の更新、プラグインの更新、ファイルのアップロードなどのアクションを実行するときに、WordPress が FTP 資格情報を求めるプロンプトが表示されます。この設定は、構成ファイルのデータベース接続設定の下に追加できます。

sudo nano /var/www/html/yourdomainname/public/wp-config.php

define('DB_PASSWORD', 'password'); を見つけます その下に次の行を貼り付けます。

define('FS_METHOD', 'direct');

Ctrl+X をヒット と Y 構成ファイルを保存します。

認定 AWS プロフェッショナルになる この簡単に学べるコースを今すぐ受講してください。

パート 1 です。これで、EC2 と RDS でインスタンスを作成し、WordPress をインストールしました。

次の部分では、AWS S3 を構成し、メディア ライブラリに S3 を使用するように WordPress を構成し、AWS マネージド SSL を要求し、ロード バランサーと Auto Scaling グループを作成し、ドメインをロード バランサーに向けることができます。

この完全なチュートリアルの次の部分は、ここで見ることができます。


Linux
  1. Terraformを使用してAWSでEC2インスタンスを作成します

  2. Ubuntu 20.04 に VSFTP をインストールする方法

  3. AWS EC2 - デバイスに空き容量がありません

  1. Terraformを使用してAWSEC2インスタンスを起動する方法

  2. AWSアプリケーションロードバランサーでホストベースのルーティングを設定する方法

  3. AmazonAWSでLinuxサーバーをセットアップする方法

  1. AWSでElasticBeanstalkアプリケーションをセットアップする方法

  2. aws-cliを使用してAWSEC2インスタンスを管理する方法

  3. AWSS3バケットで静的ウェブサイトを作成する方法