チュートリアル: AL2023 で WordPress ブログをホストする - Amazon Linux 2023

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

チュートリアル: AL2023 で WordPress ブログをホストする

次の手順は、AL2023 インスタンスに WordPress ブログをインストール、設定、保護するのに役立ちます。このチュートリアルは、 WordPress ブログをホストするウェブサーバーを完全に制御できるという点で Amazon EC2 を使用する方法を紹介していますが、従来のホスティングサービスでは一般的ではありません。

サーバーに対するソフトウェアパッケージの更新とセキュリティパッチの維持は、お客様の責任となります。ウェブサーバー設定と直接やり取りする必要のない、より自動化された WordPress インストールの場合、AWS CloudFormationサービスには WordPress テンプレートが用意されており、すぐに使用を開始することもできます。詳細については、 AWS CloudFormation ユーザーガイドの「開始方法」を参照してください。Windows インスタンスで WordPress ブログをホストする場合は、「Windows インスタンス用 Amazon EC2 ユーザーガイド」の「Amazon EC2 Windows インスタンスに WordPress ブログをデプロイする」を参照してください。 Amazon EC2 データベースを分離した高可用性ソリューションが必要な場合は、「 AWS Elastic Beanstalkデベロッパーガイド」の「高可用性 WordPress ウェブサイトのデプロイ」を参照してください。

重要

これらの手順は AL2023 で使用するためのものです。その他のディストリビューションの情報については、各ドキュメントを参照してください。このチュートリアルの多くの手順は、Ubuntu インスタンスには使用できません。Ubuntu インスタンス WordPress への のインストールについては、Ubuntu ドキュメントWordPressの「」を参照してください。を使用してCodeDeploy、Amazon Linux、macOS、または Unix システムでこのタスクを実行することもできます。

前提条件

WordPress ブログのホストに使用しているインスタンスに Elastic IP アドレス (EIP) を関連付けることを強くお勧めします。これにより、インスタンスのパブリック DNS アドレスが変更されて、インストールが破損することを防止できます。ドメイン名を所有していてそのドメインをブログに使用する場合、EIP アドレスをポイントするようにドメイン名の DNS レコードを更新できます (これを行うには、ドメイン名レジストラに問い合わせてください)。実行中のインスタンスに関連付けられた EIP アドレスを無料で 1 つ取得できます。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドelastic IP アドレスを参照してください。チュートリアル: AL2023 に LAMP サーバーをインストールする チュートリアルでは、セキュリティグループで HTTP および HTTPS トラフィックを許可するように設定する手順や、ウェブサーバー用にファイル許可が正しく設定されていることを確認する手順も示します。セキュリティグループにルールを追加する方法については、「セキュリティグループにルールを追加する」を参照してください。

ブログのドメイン名がまだない場合は、Route 53 にドメイン名を登録し、そのドメイン名にインスタンスの EIP アドレスを関連付けることができます。詳細については、Amazon Route 53 デベロッパーガイド の「Amazon Route 53 を使用したドメイン名の登録」を参照してください。

のインストール WordPress

インスタンスに接続し、 WordPress インストールパッケージをダウンロードします。インスタンスへの接続の詳細については、インスタンスへの接続を参照してください。

  1. 次のコマンドを使用してこれらのパッケージをダウンロードしてインストールします。

    dnf install wget php-mysqlnd httpd php-fpm php-mysqli mariadb105-server php-json php php-devel -y
  2. 出力に同様の警告文が表示されることがあります (バージョンは表示されるタイミングによって異なる場合があります)。

    WARNING: A newer release of "Amazon Linux" is available. Available Versions: dnf update --releasever=2023.0.20230202 Release notes: https://aws.amazon.com Version 2023.0.20230204: Run the following command to update to 2023.0.20230204: dnf update --releasever=2023.0.20230204 ... etc

    ベストプラクティスとして、OS を up-to-date 可能な限り保持することをお勧めしますが、環境内で競合が発生しないように、各バージョンを反復処理することもできます。ステップ 1 に記載されている前述のパッケージのインストールが失敗した場合は、リストされているいずれかの新しいリリースに更新して、再試行する必要がある場合があります

  3. wget コマンドを使用して、最新の WordPress インストールパッケージをダウンロードします。次のコマンドを実行すると、最新リリースが必ずダウンロードされます。

    [ec2-user ~]$ wget https://wordpress.org/latest.tar.gz
  4. インストールパッケージを解凍します。インストールフォルダは、wordpress という名前のフォルダに解凍されます。

    [ec2-user ~]$ tar -xzf latest.tar.gz
WordPress インストール用のデータベースユーザーとデータベースを作成するには

WordPress インストールでは、ブログ投稿やユーザーコメントなどの情報をデータベースに保存する必要があります。この手順を実行すると、ブログのデータベースを作成するのに役立ち、このデータベースに対して情報の読み取りや保存を許可されたユーザーにも有用です。

  1. データベースおよびウェブサーバーを起動します。

    [ec2-user ~]$ sudo systemctl start mariadb httpd
  2. データベースサーバーに root ユーザーとしてログインします。メッセージが表示されたら、データベース root パスワードを入力します。これは通常の root システムパスワードと異なることもあれば、データベースサーバーのセキュリティ確保を実行していない場合は、空のときもあります。

    データベースサーバーのセキュリティを確保していない場合、セキュリティ確保を行うことは重要です。詳細については、ステップ 3: データベースサーバーをセキュリティで保護する「 (AL2023)」を参照してください。

    [ec2-user ~]$ mysql -u root -p
  3. MySQL データベースのユーザーとパスワードを作成します。インストールでは WordPress、これらの値を使用して MySQL データベースと通信します。一意のユーザー名とパスワードを入力して、次のコマンドを入力します。

    CREATE USER 'wordpress-user'@'localhost' IDENTIFIED BY 'your_strong_password';

    ユーザー用に強力なパスワードを作成してください。パスワードに一重引用符 (') を使用しないでください。この文字は前述のコマンドを中断させるためです。既存のパスワードを再利用しないでください。また、このパスワードは必ず安全な場所に保管してください。

  4. データベースを作成します。wordpress-db など、データベースにはわかりやすい名前を使用します。

    注記

    次のコマンドのデータベース名を囲む区切り記号は、「バックティック」と呼ばれています。バックティック (`) キーは通常、標準キーボードの Tab キーの上に配置されています。バックティックは必ずしも必要ではありませんが、データベース名では使用できない文字 (ハイフンなど) の代わりに使用できます。

    CREATE DATABASE `wordpress-db`;
  5. 前に作成した WordPress ユーザーに、データベースに対する完全な権限を付与します。

    GRANT ALL PRIVILEGES ON `wordpress-db`.* TO "wordpress-user"@"localhost";
  6. すべての変更を有効にするため、データベース権限をフラッシュします。

    FLUSH PRIVILEGES;
  7. mysql クライアントを終了します。

    exit
wp-config.php ファイルの作成と編集を行うには

WordPress インストールフォルダには、 というサンプル設定ファイルが含まれていますwp-config-sample.php。この手順では、このファイルをコピーして、特定の構成に合うように編集します。

  1. wp-config-sample.php ファイルを wp-config.php という名前でコピーします。この操作を実行すると、新しい構成ファイルが作成され、元のファイルがバックアップとしてそのまま保持されます。

    [ec2-user ~]$ cp wordpress/wp-config-sample.php wordpress/wp-config.php
  2. お好みのテキストエディタ (wp-config.phpnano など) を使って vim ファイルを編集し、インストール用の値を入力します。お好みのテキストエディタがない場合、nano が初心者に適しています。

    [ec2-user ~]$ nano wordpress/wp-config.php
    1. DB_NAME を定義する行を探して、database_name_hereステップ 4 WordPress インストール用のデータベースユーザーとデータベースを作成するには で作成したデータベース名に変更します。

      define('DB_NAME', 'wordpress-db');
    2. DB_USER を定義する行を探して、username_hereステップ 3 WordPress インストール用のデータベースユーザーとデータベースを作成するには で作成したデータベースユーザーに変更します。

      define('DB_USER', 'wordpress-user');
    3. DB_PASSWORD を定義する行を探して、password_hereステップ 3 WordPress インストール用のデータベースユーザーとデータベースを作成するには で作成した強力なパスワードに変更します。

      define('DB_PASSWORD', 'your_strong_password');
    4. Authentication Unique Keys and Salts というセクションを見つけます。これらの KEYと のSALT値は、 WordPress ユーザーがローカルマシンに保存するブラウザ Cookie に暗号化レイヤーを提供します。基本的に、ここで長くてランダムな値を指定すると、サイトのセキュリティが向上します。https://api.wordpress.org/secret-key/1.1/salt/ にアクセスして、ランダムに生成されるキーセット値を取得し、wp-config.php ファイルにコピーして貼り付けることができます。PuTTY 端末にテキストを貼り付けるには、テキストを貼り付ける場所にカーソルを置き、PuTTY 端末内でマウスを右クリックします。

      セキュリティキーの詳細については、https://wordpress.org/support/article/editing-wp-config-php/#security-keys を参照してください。

      注記

      次の値はサンプル専用です。これらの値を実際のインストールには使わないでください。

      define('AUTH_KEY', ' #U$$+[RXN8:b^-L 0(WU_+ c+WFkI~c]o]-bHw+)/Aj[wTwSiZ<Qb[mghEXcRh-'); define('SECURE_AUTH_KEY', 'Zsz._P=l/|y.Lq)XjlkwS1y5NJ76E6EJ.AV0pCKZZB,*~*r ?6OP$eJT@;+(ndLg'); define('LOGGED_IN_KEY', 'ju}qwre3V*+8f_zOWf?{LlGsQ]Ye@2Jh^,8x>)Y |;(^[Iw]Pi+LG#A4R?7N`YB3'); define('NONCE_KEY', 'P(g62HeZxEes|LnI^i=H,[XwK9I&[2s|:?0N}VJM%?;v2v]v+;+^9eXUahg@::Cj'); define('AUTH_SALT', 'C$DpB4Hj[JK:?{ql`sRVa:{:7yShy(9A@5wg+`JJVb1fk%_-Bx*M4(qc[Qg%JT!h'); define('SECURE_AUTH_SALT', 'd!uRu#}+q#{f$Z?Z9uFPG.${+S{n~1M&%@~gL>U>NV<zpD-@2-Es7Q1O-bp28EKv'); define('LOGGED_IN_SALT', ';j{00P*owZf)kVD+FVLn-~ >.|Y%Ug4#I^*LVd9QeZ^&XmK|e(76miC+&W&+^0P/'); define('NONCE_SALT', '-97r*V/cgxLmp?Zy4zUU4r99QQ_rGs2LTd%P;|_e1tS)8_B/,.6[=UK<J_y9?JWG');
    5. ファイルを保存し、テキストエディタを終了します。

Apache ドキュメントのルートに WordPress ファイルをインストールするには
  • これで、インストールフォルダを解凍し、MySQL データベースとユーザーを作成し、 WordPress 設定ファイルをカスタマイズしたので、インストールファイルをウェブサーバードキュメントのルートにコピーして、インストールを完了するインストールスクリプトを実行できるようになります。これらのファイルの場所は、 WordPress ブログをウェブサーバーの実際のルート ( などmy.public.dns.amazonaws.com) で使用するか、ルートの下のサブディレクトリまたはフォルダ ( など) で使用するかによって異なりますmy.public.dns.amazonaws.com/blog

    • ドキュメントルートで WordPress を実行する場合は、次のように wordpress インストールディレクトリの内容をコピーします (ディレクトリ自体はコピーしません)。

      [ec2-user ~]$ cp -r wordpress/* /var/www/html/
    • ドキュメントルートの下の別のディレクトリで WordPress を実行する場合は、まずそのディレクトリを作成し、そのディレクトリにファイルをコピーします。この例では、 WordPress はディレクトリ から実行されますblog

      [ec2-user ~]$ mkdir /var/www/html/blog [ec2-user ~]$ cp -r wordpress/* /var/www/html/blog/
重要

セキュリティ上の理由から、次の手順にすぐに進まない場合は、Apache ウェブサーバー (httpd) を直ちに停止してください。インストールを Apache ドキュメントルートの下に移動すると、 WordPress インストールスクリプトは保護されず、Apache ウェブサーバーが実行されていた場合、攻撃者がブログにアクセスできる可能性があります。Apache ウェブサーバーを停止するには、sudo service httpd stop コマンドを入力します。次の手順に移動する場合、Apache ウェブサーバーを停止する必要はありません。

WordPress がパーマリンクを使用できるようにするには

WordPress パーマリンクは正しく動作するために Apache .htaccess ファイルを使用する必要がありますが、これは Amazon Linux ではデフォルトで有効になっていません。Apache ドキュメントルートですべての上書きできるようにするには、次の手順を使用します。

  1. お好みのテキストエディタ (httpd.confnano など) で、vim ファイルを開きます。お好みのテキストエディタがない場合、nano が初心者に適しています。

    [ec2-user ~]$ sudo vim /etc/httpd/conf/httpd.conf
  2. <Directory "/var/www/html"> で始まるセクションを見つけます。

    <Directory "/var/www/html"> # # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.4/mod/core.html#options # for more information. # Options Indexes FollowSymLinks # # 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 # AllowOverride None # # Controls who can get stuff from this server. # Require all granted </Directory>
  3. 上のセクションの AllowOverride None 行を AllowOverride All に変更します。

    注記

    このファイルには複数の AllowOverride 行があります。必ず <Directory "/var/www/html"> セクションの行を変更してください。

    AllowOverride All
  4. ファイルを保存し、テキストエディタを終了します。

PHP グラフィック描画ライブラリを AL2023 にインストールするには

PHP 用の GD ライブラリを使用すると、イメージを変更することができます。ブログのヘッダーイメージをトリミングする必要がある場合は、このライブラリをインストールします。インストール phpMyAdmin する のバージョンには、このライブラリの特定の最小バージョン (バージョン 8.1 など) が必要になる場合があります。

次のコマンドを使用して、AL2023 に PHP グラフィック描画ライブラリをインストールします。例えば、LAMP スタックをインストールする一環としてソースから php8.1 をインストールした場合、このコマンドは PHP グラフィック描画ライブラリのバージョン 8.1 をインストールします。

[ec2-user ~]$ sudo dnf install php-gd

インストールしたバージョンを検証するには、次のコマンドを使用します。

[ec2-user ~]$ sudo dnf list installed | grep php-gd

出力例を次に示します。

php-gd.x86_64 8.1.30-1.amzn2 @amazonlinux
PHP グラフィック描画ライブラリを Amazon Linux AMI にインストールするには

PHP 用の GD ライブラリを使用すると、イメージを変更することができます。ブログのヘッダーイメージをトリミングする必要がある場合は、このライブラリをインストールします。インストール phpMyAdmin する のバージョンには、このライブラリの特定の最小バージョン (バージョン 8.1 など) が必要になる場合があります。

使用可能なバージョンを確認するには、次のコマンドを使用します。

[ec2-user ~]$ dnf list | grep php

PHP グラフィック描画ライブラリ (バージョン 8.1) の出力例を次に示します。

php8.1.aarch64 8.1.7-1.amzn2023.0.1 @amazonlinux php8.1-cli.aarch64 8.1.7-1.amzn2023.0.1 @amazonlinux php8.1-common.aarch64 8.1.7-1.amzn2023.0.1 @amazonlinux php8.1-devel.aarch64 8.1.7-1.amzn2023.0.1 @amazonlinux php8.1-fpm.aarch64 8.1.7-1.amzn2023.0.1 @amazonlinux php8.1-gd.aarch64 8.1.7-1.amzn2023.0.1 @amazonlinux

PHP グラフィック描画ライブラリの特定のバージョン (バージョン php8.1 など) を Amazon Linux AMI にインストールするには、次のコマンドを使用します。

[ec2-user ~]$ sudo dnf install -y php8.1-gd
Apache ウェブサーバーのファイル許可を修正するには

で利用できる機能の中には、Apache ドキュメントルートへの書き込みアクセス (管理画面を介したメディアのアップロードなど) WordPress が必要なものがあります。まだ設定していない場合は、次のグループのメンバーシップおよびアクセス許可を適用します (プロセスの詳細は「LAMP ウェブサーバーチュートリアル」を参照)。

  1. /var/www とそのコンテンツのファイル所有権を apache ユーザーに付与します。

    [ec2-user ~]$ sudo chown -R apache /var/www
  2. /var/www とそのコンテンツのグループ所有権を apache グループに付与します。

    [ec2-user ~]$ sudo chgrp -R apache /var/www
  3. /var/www およびそのサブディレクトリのディレクトリ許可を変更してグループの書き込み許可を設定し、将来のサブディレクトリにグループ ID を設定します。

    [ec2-user ~]$ sudo chmod 2775 /var/www [ec2-user ~]$ find /var/www -type d -exec sudo chmod 2775 {} \;
  4. /var/www およびそのサブディレクトリのファイル許可を繰り返し変更します。

    [ec2-user ~]$ find /var/www -type f -exec sudo chmod 0644 {} \;
    注記

    を FTP サーバー WordPress としても使用する場合は、ここではより許容度の高いグループ設定が必要になります。これを行うには、 の推奨ステップとセキュリティ設定 WordPressを確認してください。

  5. Apache ウェブサーバーを再起動して、新しいグループと許可を有効にします。

    [ec2-user ~]$ sudo systemctl restart httpd
AL2023 で WordPress インストールスクリプトを実行するには

をインストールする準備ができました WordPress。使用するコマンドは、オペレーティングシステムによって異なります。この手順のコマンドは、AL2023 で使用するためのものです。AL2023 AMI では、この後の手順を使用します。

  1. systemctl コマンドを使って、httpd サービスとデータベースサービスがシステムブート時に起動することを確認します。

    [ec2-user ~]$ sudo systemctl enable httpd && sudo systemctl enable mariadb
  2. データベースサーバーが実行中であることを確認します。

    [ec2-user ~]$ sudo systemctl status mariadb

    データベースサービスが実行されていない場合は、起動します。

    [ec2-user ~]$ sudo systemctl start mariadb
  3. Apache ウェブサーバー (httpd) が実行中であることを確認します。

    [ec2-user ~]$ sudo systemctl status httpd

    httpd サービスが実行されていない場合は、起動します。

    [ec2-user ~]$ sudo systemctl start httpd
  4. ウェブブラウザで、 WordPress ブログの URL (インスタンスのパブリック DNS アドレス、または blogフォルダの後に続くアドレス) を入力します。 WordPress インストールスクリプトが表示されます。 WordPress インストールに必要な情報を入力します。インストール WordPressを選択してインストールを完了します。詳細については、 WordPress ウェブサイトの「ステップ 5: インストールスクリプトを実行する」を参照してください。

AL2023 AMI で WordPress インストールスクリプトを実行するには
  1. chkconfig コマンドを使って、httpd サービスとデータベースサービスがシステムブート時に起動することを確認します。

    [ec2-user ~]$ sudo chkconfig httpd on && sudo chkconfig mariadb on
  2. データベースサーバーが実行中であることを確認します。

    [ec2-user ~]$ sudo service mariadb status

    データベースサービスが実行されていない場合は、起動します。

    [ec2-user ~]$ sudo service mariadb start
  3. Apache ウェブサーバー (httpd) が実行中であることを確認します。

    [ec2-user ~]$ sudo service httpd status

    httpd サービスが実行されていない場合は、起動します。

    [ec2-user ~]$ sudo service httpd start
  4. ウェブブラウザで、 WordPress ブログの URL (インスタンスのパブリック DNS アドレス、または blogフォルダの後に続くアドレス) を入力します。 WordPress インストールスクリプトが表示されます。 WordPress インストールに必要な情報を入力します。インストール WordPressを選択してインストールを完了します。詳細については、 WordPress ウェブサイトの「ステップ 5: インストールスクリプトを実行する」を参照してください。

次のステップ

WordPress ブログをテストしたら、設定の更新を検討してください。

カスタムドメイン名を使用する

EC2 インスタンスの EIP アドレスに関連付けられたドメイン名がある場合、EC2 パブリック DNS アドレスの代わりにその名前を使用するようにブログを設定できます。詳細については、 WordPress ウェブサイトの「サイトの URL の変更」を参照してください。

ブログを設定する

読者にパーソナライズされた体験を提供するため、さまざまなテーマプラグインを使用するようにブログを設定できます。ただし、インストールプロセスで問題が発生してブログ全体が失われることがあります。インストール中に問題が発生した場合もブログを復元できるように、テーマやプラグインを員ストーする前にインスタンスのバックアップ Amazon マシンイメージ (AMI) を作成しておくことを強くお勧めします。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「独自の AMI を作成する」を参照してください。 Amazon EC2

容量を増やす

WordPress ブログが人気になり、コンピューティング能力やストレージを増やす必要がある場合は、次のステップを検討してください。

  • インスタンスストレージ領域を拡張する。詳細については、「Amazon EBS Elastic Volumes」を参照してください。

  • MySQL データベースを Amazon RDS に移動して、サービスが持つ容易にスケールする機能を活用する。

インターネットトラフィックのネットワークパフォーマンスを向上させる

ブログにより世界中のユーザーからのトラフィックが増加すると予想される場合は、AWS Global Accelerator をご検討ください。Global Accelerator は、ユーザーのクライアントデバイスと で実行されている WordPress アプリケーション間のインターネットトラフィックのパフォーマンスを向上させることで、レイテンシーを短縮するのに役立ちますAWS。Global Accelerator では、AWS グローバルネットワークを使用して、トラフィックをクライアントから最も近い AWS リージョンにある正常なアプリケーションエンドポイントに送信します。

の詳細はこちら WordPress

次のリンクには、 に関する詳細情報が含まれています WordPress。

ヘルプ! パブリック DNS 名が変更されたため、ブログが壊れました

WordPress インストールは、EC2 インスタンスのパブリック DNS アドレスを使用して自動的に設定されます。インスタンスを停止および再開した場合、パブリック DNS アドレスが変更され (Elastic IP アドレスに関連付けられている場合を除く)、ブログが存在しなくなった (または別の EC2 インスタンスに割り当てられた) アドレスにあるリソースを参照することになるため、ブログは機能しなくなります。問題の詳細な説明と考えられる解決策については、https://wordpress.org/support/article/changing-the-site-url/ で説明されています。

WordPress インストール時にこの問題が発生した場合は、 のwp-cliコマンドラインインターフェイスを使用する以下の手順でブログを復元できる場合があります WordPress。

を使用して WordPress サイトの URL を変更するには wp-cli
  1. SSH を使って EC2 インスタンスに接続します。

  2. インスタンスの古いサイト URL と新しいサイト URL を書き留めます。古いサイト URL は、 をインストールしたときの EC2 インスタンスのパブリック DNS 名である可能性があります WordPress。新しいサイト URL は、EC2 インスタンスの現在のパブリック DNS 名です。古いサイト URL が不明な場合、次のコマンドで curl を使用して調べることができます。

    [ec2-user ~]$ curl localhost | grep wp-content

    古いパブリック DNS 名への参照が出力に表示されます。次に例を示します (古いサイト URL は赤色になっています)。

    <script type='text/javascript' src='http://ec2-52-8-139-223.us-west-1.compute.amazonaws.com/wp-content/themes/twentyfifteen/js/functions.js?ver=20150330'></script>
  3. 次のコマンドを使って wp-cli をダウンロードします。

    [ec2-user ~]$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
  4. WordPress インストール内の古いサイト URL を検索し、次のコマンドに置き換えます。EC2 インスタンスの古いサイト URL と新しいサイト URLsおよび WordPress インストールへのパス (通常は /var/www/htmlまたは /var/www/html/blog) を置き換えます。

    [ec2-user ~]$ php wp-cli.phar search-replace 'old_site_url' 'new_site_url' --path=/path/to/wordpress/installation --skip-columns=guid
  5. ウェブブラウザで、 WordPress ブログの新しいサイト URL を入力して、サイトが正常に動作していることを確認します。そうでない場合は、「サイト URL の変更」および「一般的なインストールの問題」を参照してください。