すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:Linux インスタンス上に WordPress ウェブサイトを構築する

最終更新日:Jun 12, 2025

WordPress は、ブログ、ニュース ウェブサイト、e コマース ウェブサイト、ソーシャルメディア ウェブサイトなど、ウェブサイトを簡単に作成および管理できる無料のオープンソース コンテンツ管理システム (CMS) です。 WordPress には、ウェブサイトの外観と機能をカスタマイズできる豊富なテーマとプラグインのライブラリがあります。 このトピックでは、異なる Linux オペレーティングシステムを実行する Elastic Compute Service (ECS) インスタンス上に WordPress ウェブサイトを構築する方法について説明します。

準備

既存の Linux ECS インスタンス上に WordPress ウェブサイトを構築するには、インスタンスが以下の要件を満たしていることを確認してください。

  • パブリック IP アドレスが ECS インスタンスに自動的に割り当てられます。 あるいは、Elastic IP アドレス (EIP) が ECS インスタンスに関連付けられています。 パブリック帯域幅を有効にする方法については、「パブリック帯域幅を有効にする」をご参照ください。

  • ポート 22 と 80 を開くために、Linux ECS インスタンスのセキュリティグループにインバウンドルールが追加されます。 セキュリティグループルールの追加方法については、「セキュリティグループルールを追加する」をご参照ください。

    重要

    セキュリティ上の理由から、LNMP スタックと WordPress ウェブサイトをデプロイおよびテストするために必要なポートのみが開いています。 LNMP は、次のオープンソースコンポーネントの名前の頭字語です。Linux オペレーティングシステム、NGINX Web サーバー、MySQL リレーショナルデータベース管理システム、および PHP プログラミング言語。 ビジネス要件に基づいて他のポートを開くことができます。 たとえば、ECS インスタンスにデプロイされている MySQL データベースに接続する場合、インスタンスのセキュリティグループにインバウンドルールを追加して、MySQL のデフォルトポートであるポート 3306 を開く必要があります。

手順

警告

Linux ECSインスタンスにWordPress Webサイトを構築するために使用する必要があるコマンドは、インスタンスのオペレーティングシステムによって異なる場合があります。 Linux ECSインスタンスのオペレーティングシステムに適したコマンドを使用してください。 そうしないと、WordPress Webサイトを構築できない場合があります。 このトピックでは、Alibaba Cloud Linux 2、Alibaba Cloud Linux 3、CentOS 7、および CentOS 8 を実行する ECS インスタンスを使用して、WordPress 6.4 をデプロイします。

  1. LNMP スタックをデプロイします。詳細については、「LNMP スタックをデプロイする」をご参照ください。

    重要
    • LNMP スタックのデプロイ方法については、「LNMP スタックをデプロイする」をご参照ください。WordPress の各バージョンには、特定の PHP および MySQL のバージョンが必要です。PHP または MySQL のバージョンがインストールする WordPress のバージョンと互換性がない場合、WordPress のインストールに失敗する可能性があります。各 WordPress バージョンと互換性のある PHP および MySQL のバージョンの詳細については、「WordPress Compatibility」をご参照ください。

    • このトピックでは、Web サーバーである NGINX を使用します。Linux ECS インスタンスに Apache がインストールされている場合、ポート 80 が Apache によって使用されているため、WordPress にアクセスできません。

  2. ECS インスタンスに接続します。

    詳細については、「Workbench を使用して SSH 経由で Linux インスタンスに接続する」をご参照ください。

  3. WordPress 用のデータベースを構成します。

    1. MySQL にログインします。

      説明

      root ユーザーを使用して、MySQL にログインするためのユーザーのパスワードを入力します。パスワードは、LNMP スタックを構築したときに MySQL 用に構成したパスワードです。

      mysql -u root -p
    2. 構築する WordPress Web サイト用に wordpress という名前のデータベースを作成します。

      create database wordpress;
    3. user という名前のユーザーを作成して wordpress データベースを管理し、データセキュリティを高めるためにユーザーのパスワードを PASSword123. に設定します。

      create user 'user'@'localhost' identified by 'PASSword123.';
      説明
      • show variables like "%password%"; コマンドを実行して、MySQL パスワードの強度ルールをクエリできます。この例では、MySQL パスワードに次の強度ルールが適用されます。パスワードは 8 ~ 30 文字で、大文字、小文字、数字、および特殊文字を含める必要があります。サポートされている特殊文字には、( ) ` ~ ! @ # $ % ^ & * - + = | { } [ ] : ; ‘ < > , . ? / が含まれます。

      • デフォルトでは、validate_password プラグインは MySQL 5.7 以降のバージョンにインストールされており、パスワードの強度を検証します。

    4. wordpress データベースに対するすべての権限を user という名前のユーザーに付与します。

      grant all privileges on wordpress.* to 'user'@'localhost';
    5. 上記の変更内容を適用します。

      flush privileges;
    6. MySQL を終了します。

      exit;
  4. WordPress をダウンロードし、構築する Web サイトのルートディレクトリに保存します。

    1. NGINX Web サイトのルートディレクトリに移動し、WordPress パッケージをダウンロードします。

      説明

      この例では、デフォルトで WordPress の中国語版がインストールされています。WordPress の英語版をインストールするには、wget https://wordpress.org/wordpress-6.4.4.zip コマンドを実行して、WordPress の英語版のパッケージをダウンロードします。後続の手順で使用されるコマンドで、wordpress-6.4.4-zh_CN.zip を wordpress-6.4.4.zip に置き換えます。

      cd /usr/share/nginx/html
      sudo wget https://cn.wordpress.org/wordpress-6.4.4-zh_CN.zip
    2. (オプション) unzip コマンドをインストールします。

      • Alibaba Cloud Linux 2、Alibaba Cloud Linux 3、CentOS 7、または CentOS 8 で次のコマンドを実行します。

        sudo yum install unzip -y
      • Ubuntu 20.04 以降で次のコマンドを実行します。

        sudo apt install unzip -y
    3. WordPress パッケージを解凍します。

      sudo unzip wordpress-6.4.4-zh_CN.zip
    4. WordPress インストールディレクトリにある wp-config-sample.php ファイルの内容を wp-config.php ファイルにコピーし、wp-config-sample.php ファイルをバックアップとして使用します。

      cd /usr/share/nginx/html/wordpress
      sudo cp wp-config-sample.php wp-config.php
  5. WordPress の構成ファイルを編集します。

    1. wp-config.php ファイルを開きます。

      sudo vim wp-config.php
    2. I キーを押して挿入モードに入ります。

      次のコードスニペットに示すように、WordPress 用に構成されたデータベースに基づいて、MySQL 関連の設定を変更します。

      説明

      WordPress 構成ファイルで指定する WordPress 用データベースの名前、MySQL データベースユーザー名、および MySQL データベースパスワードは、「WordPress 用のデータベースを構成する」手順で構成したものと同じである必要があります。

      // ** MySQL settings - Obtain the information from your host. ** //
      /** The name of the database for WordPress */
      define('DB_NAME', 'wordpress');
      
      /** The MySQL database username */
      define('DB_USER', 'user');
      
      /** The MySQL database password */
      define('DB_PASSWORD', 'PASSword123.');
      
      /** The MySQL hostname */
      define('DB_HOST', 'localhost');
      説明

      WordPress Web サイトのデータは、wordpress データベースの user という名前のユーザーによって保存されます。

    3. Esc キーを押して挿入モードを終了します。:wq と入力し、Enter キーを押して構成ファイルを保存して閉じます。

  6. NGINX 構成ファイルを編集します。

    1. 次のコマンドを実行して NGINX 構成ファイルを開きます。

      sudo vi /etc/nginx/conf.d/default.conf
    2. I キーを押して挿入モードに入り、構成ファイルを編集します。

      Alibaba Cloud Linux 2、Alibaba Cloud Linux 3、CentOS 7、または CentOS 8

      1. server の括弧内で、root の後のコンテンツを WordPress Web サイトのルートディレクトリに置き換えます。

        この例では、WordPress Web サイトのルートディレクトリは /usr/share/nginx/html/wordpress です。

      2. location ~ .php$ の括弧内で、root の後のコンテンツを WordPress Web サイトのルートディレクトリに置き換えます。

      説明
      • コンテンツを WordPress Web サイトのルートディレクトリに置き換えるときは、ルートディレクトリにセミコロン (;) を追加します。追加しないと、NGINX を再起動できません。

      • この例では、php-fpm のリスニングアドレスは /run/php-fpm/www.sock です。実際の値に置き換えてください。

      image

      Ubuntu 20.04 以降

      1. server の括弧内で、root の後のコンテンツを WordPress Web サイトのルートディレクトリに置き換えます。

        この例では、WordPress Web サイトのルートディレクトリは /usr/share/nginx/html/wordpress です。

      2. location ~ .php$ の括弧内で、root の後のコンテンツを WordPress Web サイトのルートディレクトリに置き換えます。

      説明
      • コンテンツを WordPress Web サイトのルートディレクトリに置き換えるときは、ルートディレクトリにセミコロン (;) を追加します。追加しないと、NGINX を再起動できません。

      • この例では、php-fpm のリスニングアドレスは /run/php/php8.4-fpm/www.sock です。実際の値に置き換えてください。

      image

    3. Esc キーを押して挿入モードを終了します。:wq と入力し、Enter キーを押して構成ファイルを保存して閉じます。

    4. 次のコマンドを実行して NGINX を再起動します。

      sudo systemctl restart nginx
  7. WordPress をインストールし、WordPress Web サイトにログインします。

    1. オンプレミスのコンピューターで、Web ブラウザーを使用して http://<ECS インスタンスのパブリック IP アドレス> にアクセスし、WordPress インストールページに移動します。

    2. WordPress Web サイトの基本情報を構成し、[インストールを実行] をクリックします。

      次のパラメーターを構成します。

      • サイトのタイトル: WordPress Web サイトの名前。例: demowp。

      • ユーザー名: WordPress へのログインに使用するユーザー名。ユーザー名が安全であることを確認してください。例: testwp。

      • パスワード: WordPress へのログインに使用するパスワード。強力なパスワードを指定することをお勧めします。例: Wp.123456。

      • メールアドレス: 通知の受信に使用するメールアドレス。例: username@example.com。

    3. [WordPress をインストール] をクリックします。

    4. WordPress のインストール時に指定した testwp ユーザー名と Wp.123456 パスワードを入力し、[ログイン] をクリックします。

      WordPress Web サイトにログインしました。WordPress の使用方法の詳細については、「WordPress ドキュメント」をご参照ください。

関連操作

WordPress ウェブサイトのドメイン名を設定する

WordPress ウェブサイトが構築されている ECS インスタンスのパブリック IP アドレスを使用してユーザーが WordPress ウェブサイトにアクセスできるようにすると、インスタンスのセキュリティが損なわれます。セキュリティを向上させるには、WordPress ウェブサイトのドメイン名を設定します。ドメイン名を持っている場合、または WordPress ウェブサイトのドメイン名を登録する場合は、次の手順を実行します。

  1. ドメイン名を登録します。

    Alibaba Cloud でドメイン名を登録できます。詳細については、「Alibaba Cloud でドメイン名を登録する」をご参照ください。

  2. ドメイン名のインターネット コンテンツ プロバイダー (ICP) 登録を申請します。

    WordPress ウェブサイトが中国本土内のリージョンにある ECS インスタンスに構築されている場合は、WordPress ウェブサイトでドメイン名を使用する前に、ドメイン名の ICP 登録を申請してください。詳細については、「ICP 登録プロセス」をご参照ください。

    説明
    • ECS インスタンスでホストされている Web サイトのドメイン名の ICP 登録を申請できるのは、インスタンスが 3 か月以上のサブスクリプション期間を持つサブスクリプション インスタンスである場合のみです。WordPress ウェブサイトが構築されている ECS インスタンスが上記の要件を満たしていない場合は、次のいずれかの操作を実行します。

    • ICP 登録プロセス全体が完了するまでに 1 ~ 22 営業日かかります。必要な実際の時間は異なる場合があります。

    • ICP 登録プロセスに関するよくある質問については、「FAQ」をご参照ください。

  3. 登録済みドメイン名を ECS インスタンスのパブリック IP アドレスに解決します。詳細については、「はじめに」をご参照ください。

    説明

    DNS 解決の問題に関するよくある質問への回答については、「DNS 解決の問題に関する FAQ」をご参照ください。

  4. ECS インスタンスのパブリック IP アドレスを登録済みドメイン名に置き換えます。

    1. WordPress ウェブサイトが構築されている ECS インスタンスに接続します。

      詳細については、「ECS インスタンスに接続する方法」をご参照ください。

    2. MySQL にログインします。

      mysql -u root -p
    3. WordPress のデータベースに切り替えます。

      use wordpress;
    4. WordPress ウェブサイトの登録済みドメイン名を設定します。

      説明

      コマンドの次の変数を実際の値に置き換えます。

      • http://<ECS インスタンスのパブリック IP アドレス>: <ECS インスタンスのパブリック IP アドレス> を、WordPress ウェブサイトが構築されている ECS インスタンスの実際のパブリック IP アドレスに置き換えます。

      • http://www.example.com: このドメイン名を WordPress ウェブサイトの登録済みドメイン名に置き換えます。

      update wp_options set option_value = replace(option_value, 'http://<Public IP address of the instance>', 'http://www.example.com') where option_name = 'home' OR option_name = 'siteurl';
    5. MySQL を終了します。

      exit;

      登録済みドメイン名が WordPress ウェブサイトに設定されます。

よくある質問

Q1: WordPress ウェブサイトがホストされている ECS インスタンスのパブリック IP アドレスを使用して WordPress ウェブサイトにアクセスできないのはなぜですか?

考えられる原因と解決策:

  • ECS インスタンスのセキュリティグループでポート 80 が開いていないか、ECS インスタンスでシステムファイアウォールが有効になっているか、ポート 80 が別のサービスによって使用されています。

    上記の原因に基づいて問題のトラブルシューティングを行う方法については、「インスタンスにデプロイされたサービスにアクセスできない場合はどうすればよいですか?」をご参照ください。

  • PHP または MySQL のバージョンが WordPress のバージョンと互換性がありません。

    WordPress の各バージョンには、特定の PHP および MySQL のバージョンが必要です。 PHP または MySQL のバージョンが WordPress のバージョンと互換性がない場合、WordPress のインストールに失敗する可能性があります。 各 WordPress バージョンと互換性のある PHP および MySQL のバージョンの詳細については、「WordPress 互換性」を参照してください。

Q2: WordPress でパーマリンクを構成した後、パーマリンクにアクセスできないのはなぜですか?

検索エンジンがウェブサイトをインデックスできるように、ウェブサイトを静的にすることができます。 WordPress ウェブサイトのパーマリンクを構成する前に、NGINX サーバーで静的ルールを構成します。 次の手順を実行します。

  1. WordPress ウェブサイトがホストされている ECS インスタンスにログインします。

    詳細については、「Workbench を使用して SSH 経由で Linux インスタンスに接続する」をご参照ください。

  2. NGINX 構成ファイルを開きます。

    sudo vim /etc/nginx/conf.d/default.conf
  3. I キーを押して、挿入モードに入ります。

  4. location / コード中括弧内に、次のコード スニペットを追加します。

    try_files $uri $uri/ /index.php?$args;
  5. Esc キーを押して、挿入モードを終了します。:wq と入力し、Enter キーを押して構成ファイルを保存して閉じます。

  6. NGINX を再起動します。

    sudo systemctl restart nginx

Q3: WordPress のバージョンを更新したり、テーマまたはプラグインをアップロードしたりしようとすると、FTP ログイン資格情報の入力を求められるか、ディレクトリを作成できないのはなぜですか?

WordPress 構成ファイルでテーマまたはプラグインを構成する権限がない可能性があります。 問題を解決するには、次の手順を実行します。

  1. WordPress ウェブサイトがホストされている ECS インスタンスにログインします。

    詳細については、「Workbench を使用して SSH 経由で Linux インスタンスに接続する」をご参照ください。

  2. WordPress 構成ファイルを開きます。

    sudo vim /usr/share/nginx/html/wordpress/wp-config.php
  3. I キーを押して、挿入モードに入ります。

  4. ファイルの末尾に次のコード スニペットを追加します。

    define("FS_METHOD","direct");
    define("FS_CHMOD_DIR", 0777);
    define("FS_CHMOD_FILE", 0777);
  5. Esc キーを押して、挿入モードを終了します。 :wq と入力し、Enter キーを押して構成ファイルを保存して閉じます。

  6. WordPress ダッシュボードに戻り、ページをリフレッシュします。 FTP ログイン資格情報の問題が解決されたかどうかを確認します。

    ディレクトリを作成できない場合は、ECS インスタンスで次のコマンドを実行して、ウェブサイトのルートディレクトリに対する権限を持つユーザーを NGINX ユーザーに切り替えます。 この例では、nginx ユーザーが使用されています。

    sudo chown -R apache /usr/share/nginx/html/wordpress

Q4: WordPress イメージで MySQL 5.7 データベースのデフォルトのユーザー名とパスワードを変更するにはどうすればよいですか?

  1. WordPress イメージを使用する ECS インスタンスに接続します。

    詳細については、「Workbench を使用して SSH 経由で Linux インスタンスに接続する」をご参照ください。

  2. MySQL にログインします。

    mysql -u root -p

    プロンプトが表示されたら、MySQL の root ユーザーのデフォルトのパスワードを入力します。

    [test@izbp1cgfkqcrs8pi2li**** ~]# mysql -u root -p
    Enter password:
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 3
    Server version: 5.7.23 MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql>
  3. MySQL データベースにログインします。

    use mysql
    説明

    MySQL データベースのユーザー名を表示するには、select user from mysql.user; コマンドを実行します。

  4. ビジネス要件に基づいて、MySQL データベースのデフォルトのユーザー名とパスワードを変更します。

    • MySQL データベースのデフォルトのユーザー名を変更します。

      update user set user="<新しいユーザー名>" where user="<ユーザー名>";

      この例では、次のコマンドを実行して、デフォルトのユーザー名を root から admin に変更します。

      update mysql.user set user="admin" where user="root";
    • デフォルトのユーザー名のパスワードを変更します。

      update mysql.user set authentication_string=password("<新しいパスワード>") where user="<パスワードを変更するユーザー名>";

      この例では、次のコマンドを実行して、root ユーザー名のパスワードを newpassword に変更します。

      update mysql.user set authentication_string=password("newpassword") where user="root";
  5. 権限テーブルをリロードして、変更を適用します。

    flush privileges; 
  6. MySQL を終了します。

    quit;

参考文献