翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
チュートリアル: AL2023 で WordPress ブログをホストする
次の手順は、AL2023 インスタンスに WordPress ブログをインストール、設定、保護するのに役立ちます。このチュートリアルは、 WordPress ブログをホストするウェブサーバーを完全に制御できるという点EC2で Amazon を使用する方法を紹介する良い方法です。これは、従来のホスティングサービスでは一般的ではありません。
サーバーに対するソフトウェアパッケージの更新とセキュリティパッチの維持は、お客様の責任となります。ウェブサーバー設定と直接やり取りする必要のない、より自動化された WordPress インストールのために、この AWS CloudFormation サービスでは WordPress、すぐに開始できるテンプレートも用意されています。詳細については、 AWS CloudFormation ユーザーガイドの「開始方法」を参照してください。分離されたデータベースで高可用性ソリューションが必要な場合は、「 デベロAWS Elastic Beanstalk ッパーガイド」の「高可用性 WordPress ウェブサイトのデプロイ」を参照してください。
重要
これらの手順は AL2023 で使用することを目的としています。その他のディストリビューションの情報については、各ドキュメントを参照してください。このチュートリアルの多くの手順は、Ubuntu インスタンスには使用できません。Ubuntu インスタンス WordPress への のインストールについては、Ubuntu ドキュメントWordPress
前提条件
WordPress ブログのホストに使用しているインスタンスに Elastic IP アドレス (EIP) を関連付けることを強くお勧めします。これにより、インスタンスのパブリックDNSアドレスがインストールを変更したり破損したりすることが防止されます。ドメイン名を所有していて、ブログに使用する場合は、ドメイン名のDNSレコードを更新してEIPアドレスを参照できます (この方法については、ドメイン名レジストラにお問い合わせください)。実行中のインスタンスに 1 つのEIPアドレスを無料で関連付けることができます。詳細については、「Amazon ユーザーガイド」の「Elastic IP アドレス」を参照してください。 EC2 チュートリアル: AL2023 にLAMPサーバーをインストールする チュートリアルでは、セキュリティグループで HTTP
および HTTPS
トラフィックを許可するように設定する手順や、ウェブサーバー用にファイル許可が正しく設定されていることを確認する手順も示します。セキュリティグループにルールを追加する方法については、「セキュリティグループにルールを追加する」を参照してください。
ブログのドメイン名をまだお持ちでない場合は、Route 53 にドメイン名を登録し、インスタンスのEIPアドレスをドメイン名に関連付けることができます。詳細については、Amazon Route 53 デベロッパーガイドの Amazon Route 53 を使用したドメイン名の登録を参照してください。
のインストール WordPress
インスタンスに接続し、 WordPress インストールパッケージをダウンロードします。インスタンスへの接続の詳細については、AL2023 インスタンスへの接続を参照してください。
-
次のコマンドを使用してこれらのパッケージをダウンロードしてインストールします。
dnf install wget php-mysqlnd httpd php-fpm php-mysqli mariadb105-server php-json php php-devel -y
-
出力に同様の警告文が表示されることがあります (バージョンは表示されるタイミングによって異なる場合があります)。
WARNING: A newer release of "Amazon Linux" is available. Available Versions: dnf upgrade --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 upgrade --releasever=2023.0.20230204 ... etc
ベストプラクティスとして、OS を up-to-date 可能な限り維持することをお勧めしますが、環境内で競合が発生しないように、各バージョンを繰り返し実行することをお勧めします。ステップ 1 に記載されている前述のパッケージのインストールが失敗した場合は、リストされているいずれかの新しいリリースに更新して、再試行する必要がある場合があります。
-
wget コマンドを使用して、最新の WordPress インストールパッケージをダウンロードします。次のコマンドを実行すると、最新リリースが必ずダウンロードされます。
[ec2-user ~]$
wget https://wordpress.org/latest.tar.gz
-
インストールパッケージを解凍します。インストールフォルダは、
wordpress
という名前のフォルダに解凍されます。[ec2-user ~]$
tar -xzf latest.tar.gz
WordPress インストール用のデータベースユーザーとデータベースを作成するには
WordPress インストールでは、ブログ投稿やユーザーコメントなどの情報をデータベースに保存する必要があります。この手順を実行すると、ブログのデータベースを作成するのに役立ち、このデータベースに対して情報の読み取りや保存を許可されたユーザーにも有用です。
-
データベースおよびウェブサーバーを起動します。
[ec2-user ~]$
sudo systemctl start mariadb httpd
-
データベースサーバーに
root
ユーザーとしてログインします。メッセージが表示されたら、データベースroot
パスワードを入力します。これは通常のroot
システムパスワードと異なることもあれば、データベースサーバーのセキュリティ確保を実行していない場合は、空のときもあります。データベースサーバーのセキュリティを確保していない場合、セキュリティ確保を行うことは重要です。詳細については、ステップ 3: データベースサーバーをセキュリティで保護する「 (AL2023)」を参照してください。
[ec2-user ~]$
mysql -u root -p
-
MySQL データベースのユーザーとパスワードを作成します。 WordPress インストールでは、これらの値を使用して MySQL データベースと通信します。一意のユーザー名とパスワードを入力して、次のコマンドを入力します。
CREATE USER '
wordpress-user
'@'localhost' IDENTIFIED BY 'your_strong_password
';ユーザー用に強力なパスワードを作成してください。パスワードに一重引用符 (') を使用しないでください。この文字は前述のコマンドを中断させるためです。既存のパスワードを再利用しないでください。また、このパスワードは必ず安全な場所に保管してください。
-
データベースを作成します。
wordpress-db
など、データベースにはわかりやすい名前を使用します。注記
次のコマンドのデータベース名を囲む区切り記号は、「バックティック」と呼ばれています。バックティック (
`
) キーは通常、標準キーボードのTab
キーの上に配置されています。バックティックは必ずしも必要ではありませんが、データベース名では使用できない文字 (ハイフンなど) の代わりに使用できます。CREATE DATABASE `
wordpress-db
`; -
前に作成した WordPress ユーザーにデータベースのフル権限を付与します。
GRANT ALL PRIVILEGES ON `
wordpress-db
`.* TO "wordpress-user
"@"localhost"; -
すべての変更を有効にするため、データベース権限をフラッシュします。
FLUSH PRIVILEGES;
-
mysql
クライアントを終了します。exit
wp-config.php ファイルの作成と編集を行うには
WordPress インストールフォルダには、 というサンプル設定ファイルが含まれていますwp-config-sample.php
。この手順では、このファイルをコピーして、特定の構成に合うように編集します。
-
wp-config-sample.php
ファイルをwp-config.php
という名前でコピーします。この操作を実行すると、新しい構成ファイルが作成され、元のファイルがバックアップとしてそのまま保持されます。[ec2-user ~]$
cp wordpress/wp-config-sample.php wordpress/wp-config.php
-
お好みのテキストエディタ (
wp-config.php
、nano など) を使って vim ファイルを編集し、インストール用の値を入力します。お好みのテキストエディタがない場合、nano
が初心者に適しています。[ec2-user ~]$
nano wordpress/wp-config.php
-
DB_NAME
を定義する行を探して、database_name_here
を ステップ 4 の WordPress インストール用のデータベースユーザーとデータベースを作成するには で作成したデータベース名に変更します。define('DB_NAME', '
wordpress-db
'); -
DB_USER
を定義する行を探して、username_here
を ステップ 3 の WordPress インストール用のデータベースユーザーとデータベースを作成するには で作成したデータベースユーザーに変更します。define('DB_USER', '
wordpress-user
'); -
DB_PASSWORD
を定義する行を探して、password_here
を ステップ 3 の WordPress インストール用のデータベースユーザーとデータベースを作成するには で作成した強力なパスワードに変更します。define('DB_PASSWORD', '
your_strong_password
'); -
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
'); -
ファイルを保存し、テキストエディタを終了します。
-
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 が permalink を使用できるようにするには
WordPress permalinks は、正しく動作するために Apache .htaccess
ファイルを使用する必要がありますが、Amazon Linux ではデフォルトでは有効になっていません。Apache ドキュメントルートですべての上書きできるようにするには、次の手順を使用します。
-
お好みのテキストエディタ (
httpd.conf
や nano など) で、vim ファイルを開きます。お好みのテキストエディタがない場合、nano
が初心者に適しています。[ec2-user ~]$
sudo vim /etc/httpd/conf/httpd.conf
-
<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> -
上のセクションの
AllowOverride None
行をAllowOverride
に変更します。All
注記
このファイルには複数の
AllowOverride
行があります。必ず<Directory "/var/www/html">
セクションの行を変更してください。AllowOverride
All
-
ファイルを保存し、テキストエディタを終了します。
AL2023 にPHPグラフィック描画ライブラリをインストールするには
の GD ライブラリPHPを使用すると、イメージを変更できます。ブログのヘッダーイメージをトリミングする必要がある場合は、このライブラリをインストールします。インストール phpMyAdmin する のバージョンには、このライブラリの特定の最小バージョン (バージョン 8.1 など) が必要になる場合があります。
次のコマンドを使用して、PHPグラフィック描画ライブラリを AL2023 にインストールします。例えば、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
Amazon Linux にPHPグラフィック描画ライブラリをインストールするには AMI
の GD ライブラリPHPを使用すると、イメージを変更できます。ブログのヘッダーイメージをトリミングする必要がある場合は、このライブラリをインストールします。インストール 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ウェブサーバーチュートリアル を参照してください)。
-
/var/www
とそのコンテンツのファイル所有権をapache
ユーザーに付与します。[ec2-user ~]$
sudo chown -R apache /var/www
-
/var/www
とそのコンテンツのグループ所有権をapache
グループに付与します。[ec2-user ~]$
sudo chgrp -R apache /var/www
-
/var/www
およびそのサブディレクトリのディレクトリ許可を変更してグループの書き込み許可を設定し、将来のサブディレクトリにグループ ID を設定します。[ec2-user ~]$
sudo chmod 2775 /var/www
[ec2-user ~]$
find /var/www -type d -exec sudo chmod 2775 {} \;
-
/var/www
およびそのサブディレクトリのファイル許可を繰り返し変更します。[ec2-user ~]$
find /var/www -type f -exec sudo chmod 0644 {} \;
注記
FTP サーバー WordPress としても を使用する場合は、ここではより許容度の高いグループ設定が必要になります。これを行うには、 の推奨手順とセキュリティ設定 WordPress
を確認してください。 -
Apache ウェブサーバーを再起動して、新しいグループと許可を有効にします。
[ec2-user ~]$
sudo systemctl restart httpd
AL2023 で WordPress インストールスクリプトを実行するには
をインストールする準備ができました WordPress。使用するコマンドは、オペレーティングシステムによって異なります。この手順のコマンドは AL2023 で使用するためのものです。AL2023 でこの手順に従って実行しますAMI。
-
systemctl コマンドを使って、
httpd
サービスとデータベースサービスがシステムブート時に起動することを確認します。[ec2-user ~]$
sudo systemctl enable httpd && sudo systemctl enable mariadb
-
データベースサーバーが実行中であることを確認します。
[ec2-user ~]$
sudo systemctl status mariadb
データベースサービスが実行されていない場合は、起動します。
[ec2-user ~]$
sudo systemctl start mariadb
-
Apache ウェブサーバー (
httpd
) が実行中であることを確認します。[ec2-user ~]$
sudo systemctl status httpd
httpd
サービスが実行されていない場合は、起動します。[ec2-user ~]$
sudo systemctl start httpd
-
ウェブブラウザで、 WordPress ブログURLの を入力します (インスタンスのパブリックDNSアドレス、またはそのアドレスの後に
blog
フォルダ)。 WordPress インストールスクリプトが表示されます。 WordPress インストールに必要な情報を入力します。インストール WordPressを選択してインストールを完了します。詳細については、 WordPress ウェブサイトの「ステップ 5: インストールスクリプトを実行する」を参照してください。
AL2023 で WordPress インストールスクリプトを実行するには AMI
-
chkconfig コマンドを使って、
httpd
サービスとデータベースサービスがシステムブート時に起動することを確認します。[ec2-user ~]$
sudo chkconfig httpd on && sudo chkconfig mariadb on
-
データベースサーバーが実行中であることを確認します。
[ec2-user ~]$
sudo service mariadb status
データベースサービスが実行されていない場合は、起動します。
[ec2-user ~]$
sudo service mariadb start
-
Apache ウェブサーバー (
httpd
) が実行中であることを確認します。[ec2-user ~]$
sudo service httpd status
httpd
サービスが実行されていない場合は、起動します。[ec2-user ~]$
sudo service httpd start
-
ウェブブラウザで、 WordPress ブログURLの を入力します (インスタンスのパブリックDNSアドレス、またはそのアドレスの後に
blog
フォルダ)。 WordPress インストールスクリプトが表示されます。 WordPress インストールに必要な情報を入力します。インストール WordPress を選択してインストールを完了します。詳細については、 WordPress ウェブサイトの「ステップ 5: インストールスクリプトを実行する」を参照してください。
次のステップ
WordPress ブログをテストしたら、設定の更新を検討してください。
カスタムドメイン名を使用する
EC2 インスタンスのEIPアドレスに関連付けられたドメイン名がある場合は、EC2パブリックDNSアドレスの代わりにその名前を使用するようにブログを設定できます。詳細については、 WordPress ウェブサイトの「サイトの変更URL
ブログを設定する
読者にパーソナライズされた体験を提供するため、さまざまなテーマ
容量を増やす
WordPress ブログが人気があり、より多くのコンピューティング能力やストレージが必要な場合は、次のステップを検討してください。
-
インスタンスストレージ領域を拡張する。詳細については、「Amazon EBS Elastic Volumes」を参照してください。
-
MySQL データベースを Amazon RDS
に移動して、サービスの簡単なスケーリング機能を活用します。
インターネットトラフィックのネットワークパフォーマンスを向上させる
ブログにより世界中のユーザーからのトラフィックが増加すると予想される場合は、AWS Global Accelerator
の詳細 WordPress
次のリンクには、 に関する詳細情報が含まれています WordPress。
-
の詳細については WordPress、 WordPress 「Codex のヘルプドキュメントhttp://codex.wordpress.org/
」を参照してください。 -
インストールのトラブルシューティングの詳細については、「インストールに関する一般的な問題
」を参照してください。 -
WordPress ブログのセキュリティを強化する方法については、「 の強化 WordPress
」を参照してください。 -
WordPress ブログの の保持については up-to-date、「 の更新 WordPress
」を参照してください。
ヘルプ! パブリックDNSネームが変更され、ブログが壊れました
WordPress インストールは、EC2インスタンスのパブリックDNSアドレスを使用して自動的に設定されます。インスタンスを停止して再起動すると、パブリックDNSアドレスは変更され (Elastic IP アドレスに関連付けられている場合を除く)、ブログはもう機能しなくなります。これは、存在しない (または別のEC2インスタンスに割り当てられている) アドレスのリソースを参照するためです。問題のより詳細な説明と考えられる解決策については、https://wordpress.org/support/article/changing-the-site-url/
WordPress インストール時にこの問題が発生した場合は、 のwp-cliコマンドラインインターフェイスを使用する以下の手順でブログを復元できる場合があります WordPress。
URL を使用して WordPress サイトを変更するには wp-cli
-
を使用してEC2インスタンスに接続しますSSH。
-
インスタンスの古いサイト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> -
次のコマンドを使って wp-cli をダウンロードします。
[ec2-user ~]$
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
-
次のコマンドを使用して、 WordPress インストールURL内の古いサイトを検索して置き換えます。URLs EC2 インスタンスの古いサイトと新しいサイト、および 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 -
ウェブブラウザで、URL WordPress ブログの新しいサイトを入力して、サイトが正常に動作していることを確認します。そうでない場合は、「サイトの変更URL
」と「インストールに関する一般的な問題 」を参照してください。