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

Elastic Compute Service:Alibaba Cloud Linux 2、Alibaba Cloud Linux 3、CentOS 7、またはCentOS 8インスタンスにLNMPスタックをデプロイする

最終更新日:Oct 15, 2024

LNMPは、最も一般的なwebサーバーアーキテクチャの1つです。 これは、eコマースウェブサイト、ソーシャルネットワーキングサービス、コンテンツ管理システムなど、大規模で同時並行性の高いウェブアプリケーションを実行するために使用できます。 LNMPは、Linuxオペレーティングシステム、NGINX webサーバー、MySQLリレーショナルデータベース管理システム、およびPHPプログラミング言語のオープンソースコンポーネントの名前の頭字語です。 このトピックでは、Alibaba Cloud Linux 2、Alibaba Cloud Linux 3、CentOS 7、またはCentOS 8オペレーティングシステムを実行するElastic Compute Service (ECS) インスタンスにLNMPスタックをデプロイする方法について説明します。

前提条件

次の要件を満たすECSインスタンスが作成されます。

  • インスタンスタイプには、少なくとも4 GiBのメモリがあります。

  • ECSインスタンスには、システムによってパブリックIPアドレスが割り当てられているか、elastic IPアドレス (EIP) に関連付けられています。 詳細については、「ECSインスタンスのパブリック帯域幅の有効化」をご参照ください。

  • ECSインスタンスは、Alibaba Cloud Linux 2、Alibaba Cloud Linux 3、CentOS 7、またはCentOS 8オペレーティングシステムを実行します。 Alibaba Cloud Linux 3の使用を推奨します。

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

    重要
    • セキュリティ上の理由から、このトピックでは、トラフィックがLNMPスタックのデプロイとテストを許可される必要があるポートのみについて説明します。 ビジネス要件に基づいて追加のポートでトラフィックを許可するようにセキュリティグループルールを設定できます。 たとえば、ECSインスタンス上のMySQLデータベースに接続する場合、インスタンスのセキュリティグループにインバウンドルールを設定して、MySQLのデフォルトポートであるポート3306でトラフィックを許可できます。

    • Alibaba Cloud Linux 2、CentOS 7、およびCentOS 8オペレーティングシステムは、EOL (End Of Life) に達しました。 そのため、Alibaba Cloud Linux 3イメージを使用してECSインスタンスを作成し、LNMPスタックをデプロイすることを推奨します。

手順

Alibaba Cloud Linux 2、Alibaba Cloud Linux 3、およびCentOS 7.x

このセクションでは、次のソフトウェアバージョンが使用されます。 ソフトウェアのバージョンが次のバージョンと異なる場合は、ビジネス要件に基づいてコマンドとパラメーター設定を変更します。

  • NGINX 1.20.1

  • MySQL 8.0.39

  • PHP 8.0.30

ステップ1: ファイアウォールとSELinuxを無効にする

重要

予期しないリスクを防ぐために、管理者ではなく通常のユーザーとして操作することを推奨します。 通常ユーザーにsudo権限がない場合は、ユーザーに権限を付与します。 詳細については、このトピックのFAQセクションの「通常のユーザーにsudo権限を付与する方法」を参照してください。

  1. LNMPスタックをデプロイするECSインスタンスに接続します。

    詳細については、「接続方法の概要」をご参照ください。

  2. ファイアウォールを無効化します。

    1. 次のコマンドを実行して、ファイアウォールのステータスを表示します。

      systemctl status firewalld

      查看防火墙状态

      • inactiveが返された場合、ファイアウォールは無効になります。 この場合、ステップ3に進みます。

      • activeが返された場合、ファイアウォールは有効になります。 この場合、ステップ2.bに進みます。

    2. ファイアウォールを無効化します。

      • ファイアウォールを一時的に無効にするには、次のコマンドを実行します。

        sudo systemctl stop firewalld
        説明

        上記のコマンドを実行すると、ファイアウォールは一時的に無効になります。 インスタンスを再起動すると、ファイアウォールが自動的に有効になります。

      • ファイアウォールを完全に無効にするには、次の手順を実行します。

        1. 次のコマンドを実行して、ファイアウォールを無効にします。

          sudo systemctl stop firewalld
        2. 次のコマンドを実行して、システムの起動時にファイアウォールが自動的に有効になるのを防ぎます。

          sudo systemctl disable firewalld
        説明

        ファイアウォールを無効にした後、ファイアウォールを再度有効にすることができます。 詳細については、公式のfirewalld Webサイトをご覧ください。

  3. セキュリティ強化Linux (SELinux) を無効にします。

    1. 次のコマンドを実行して、SELinuxのステータスを表示します。

      getenforce
      • 無効が返された場合、SELinuxは無効になります。 この場合は、手順2: NGINXのインストールに進みます。

      • Enforcingが返された場合、SELinuxは有効になります。 この場合、ステップ3.bに進みます。

    2. SELinuxを無効にします。

      ビジネス要件に基づいて、SELinuxを一時的または永続的に無効にできます。 詳細については、「SELinuxの有効化または無効化」をご参照ください。

ステップ2: NGINXのインストール

説明

ここでは、特定のバージョンのNGINXをインストールする方法について説明します。 NGINXの他のバージョンをインストールする場合は、このトピックのFAQセクションの「他のNGINXバージョンをインストールする方法」を参照してください。

  1. 次のコマンドを実行してNGINXをインストールします。

    sudo yum -y install nginx
  2. 次のコマンドを実行して、NGINXのバージョンを表示します。

    nginx -v

    次のコマンド出力は、NGINXがインストールされていることを示します。

    nginx version: nginx/1.20.1

ステップ3: MySQLのインストールと設定

MySQLのインストール

  1. ECSインスタンスがAlibaba Cloud Linux 3オペレーティングシステムを実行している場合、MySQL依存関係パッケージをインストールする必要があります。

    sudo yum install compat-openssl10
  2. 次のコマンドを実行して、Yellowdog Updater Modified (YUM) リポジトリを更新します。

    sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm
  3. 次のコマンドを実行してMySQLをインストールします。

    sudo yum -y install mysql-community-server
  4. 次のコマンドを実行して、MySQLのバージョンを表示します。

    mysql -V

    次のコマンド出力は、MySQLがインストールされていることを示します。

    mysql  Ver 8.0.36 for Linux on x86_64 (MySQL Community Server - GPL)
  5. 次のコマンドを実行してMySQLを起動します。

    sudo systemctl start mysqld
  6. 次のコマンドを順番に実行して、MySQLがシステム起動時に自動的に起動するように設定します。

    sudo systemctl enable mysqld
    sudo systemctl daemon-reload

MySQLの設定

  1. 次のコマンドを実行して /var/log/mysqld.logファイルを表示し、rootユーザーの初期パスワードを取得して記録します。

    sudo grep 'temporary password' /var/log/mysqld.log

    次のコマンド出力は、ARQTRy3 + **** がrootユーザーの初期パスワードであることを示しています。 この初期パスワードは、rootユーザーのパスワードをリセットするときに使用できます。

    sudo mysql_secure_installation
  2. 次のコマンドを実行して、MySQLのセキュリティ設定を構成します。

    Securing the MySQL server deployment.
    
    Enter password for user root: # Enter the initial password that you obtained in the previous step.
    1. MySQLの初期パスワードを入力します。

      説明

      データセキュリティのため、パスワードを入力しても出力は返されません。 正しいパスワードを入力し、enterキーを押すだけです。

      Securing the MySQL server deployment.
      
      Enter password for user root: # Enter the initial password that you obtained in the previous step.
    2. MySQLの新しいパスワードを設定します。

      The existing password for the user account root has expired. Please set a new password.
      
      New password: # Enter a new password. The password must be 8 to 30 characters in length and contain uppercase letters, lowercase letters, digits, and any of the following special characters: ( ) ` ~ ! @ # $ % ^ & * - + = | { } [ ] : ; ' < > , . ? /
      
      Re-enter new password: # Re-enter the new password. 
      The 'validate_password' plugin is installed on the server.
      The subsequent steps will run with the existing configuration
      of the plugin.
      Using existing password for root.
      
      Estimated strength of the password: 100 # The strength of the new password is displayed in the command output. 
      Change the password for root ? (Press y|Y for Yes, any other key for No) :Y # Enter Y to confirm the new password. 
      
      # After the new password is configured, verify the password. 
      New password: # Enter the new password. 
      
      Re-enter new password: # Re-enter the new password. 
      
      Estimated strength of the password: 100
      Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) :Y # Enter Y to use the new password.

    3. 匿名ユーザーを削除するには、Yと入力します。

      Remove anonymous users? (Press y|Y for Yes, any other key for No) :Y
      Success.
    4. ルートユーザーによるリモートアクセスを拒否するには、Yと入力します。

      Disallow root login remotely? (Press y|Y for Yes, any other key for No) :Y
      Success.
    5. Yと入力して、テストデータベースとデータベースのアクセス許可を削除します。

      Remove test database and access to it? (Press y|Y for Yes, any other key for No) :Y
       - Dropping test database...
      Success.
      
       - Removing privileges on test database...
      Success.
    6. 権限テーブルをリロードするには、Yと入力します。

      Reload privilege tables now? (Press y|Y for Yes, any other key for No) :Y
      Success.
      
      All done!

詳細については、MySQLの公式ドキュメントをご参照ください。

ステップ4: PHPのインストールと設定

PHPのインストール

  1. PHPをインストールします。

    Alibaba Cloud Linux 3

    1. 次のコマンドを実行して、YUMリポジトリを更新します。

      sudo rpm -Uvh https://mirrors.aliyun.com/remi/enterprise/remi-release-8.rpm -- nodeps
    2. 次のコマンドを実行して、php:remi-8.0モジュールストリームを有効にします。

      sudo yum module enable -y php:remi-8.0
    3. 次のコマンドを実行してPHPをインストールします。

      sudo yum install -y php php-cli php-fpm php-common php-mysqlnd php-gd php-mbstring php-xml

    Alibaba Cloud Linux 2

    1. 次のコマンドを実行して、YUMリポジトリを更新します。

      sudo rpm -Uvh https://mirrors.aliyun.com/remi/enterprise/remi-release-7.rpm
    2. 次のコマンドを実行して、yum-plugin-releasever-adapterプラグインの設定を変更し、Alibaba Cloud Linux 2のremiリポジトリ適応をサポートします。

      sudo echo ", remi-php54.repo, remi-php71.repo, remi-php73.repo, remi-php80.repo, remi-php82.repo, remi.repo, epel.repo, remi-modular.repo, remi-php70.repo, remi-php72.repo, remi-php74.repo, remi-php81.repo, remi-php83.repo, remi-safe.repo" >> /etc/yum/pluginconf.d/releasever-adapter.conf
    3. 次のコマンドを実行して、PHP 8.0リポジトリを有効にします。

      sudo sed -i '1,10s/enabled=0/enabled=1/' /etc/yum.repos.d/remi-php80.repo
    4. 次のコマンドを実行してPHPをインストールします。

      sudo yum install -y php php-cli php-fpm php-common php-mysqlnd php-gd php-mbstring

    CentOS 7.x

    1. YUMリポジトリを更新します。

      1. 次のコマンドを実行して、Extra Packages for Enterprise Linux (EPEL) リポジトリとRemiリポジトリをインストールします。

        sudo yum install -y epel-release
        sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
      2. 次のコマンドを実行して、PHP 8.0リポジトリを有効にします。

        sudo yum install -y yum-utils
        sudo yum-config-manager --enable remi-php80
    2. 次のコマンドを実行してPHPをインストールします。

      sudo yum install -y php php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json
  2. 次のコマンドを実行して、PHPのバージョンを表示します。

    php -v

    次のコマンド出力は、PHPがインストールされていることを示します。

    PHP 8.0.30 (cli) (built: Aug  3 2023 17:13:08) ( NTS gcc x86_64 )
    Copyright (c) The PHP Group
    Zend Engine v4.0.30, Copyright (c) Zend Technologies           

NGINX設定ファイルを変更してPHPを有効にする

  1. 次のコマンドを実行して、NGINX設定ファイルをバックアップします。

    sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
  2. NGINX設定ファイルを変更してPHPのサポートを追加します。

    重要

    PHPのサポートを追加しないと、webブラウザを使用してページにアクセスすると、PHPページを表示できません。

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

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

    3. サーバーブレース内で、構成情報を変更または追加します。

      次の設定を除くすべての設定のデフォルト値を保持します。

      • location /brace内の設定情報を変更または追加します。

                location / {
                    index index.php index.html index.htm;
                }
      • 内の設定情報を変更または追加します。location ~. php $ブレース。

                # Add the following information to allow NGINX to use Fast Common Gateway Interface (FastCGI) to process your PHP requests: 
                location ~ .php$ {
                    root /usr/share/nginx/html;    # Replace /usr/share/nginx/html with your website root directory. In this example, /usr/share/nginx/html is used as the website root directory. 
                    fastcgi_pass 127.0.0.1:9000;   # NGINX forwards your PHP requests to PHP FastCGI Process Manager (PHP-FPM) by using port 9000 of the ECS instance. 
                    fastcgi_index index.php;
                    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                    include fastcgi_params;   # NGINX uses the FastCGI interface to process the PHP requests. 
                }

      次の図は、追加または変更された構成情報を示しています。nginx配置文件

    4. [Esc] キーを押して :wqと入力し、[enter] キーを押して設定ファイルを保存して閉じます。

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

    sudo systemctl start nginx
  4. 次のコマンドを実行して、NGINXがシステム起動時に自動的に起動するように設定します。

    sudo systemctl enable nginx

PHPの設定

  1. phpinfo.phpファイルを作成して変更し、PHP情報を表示します。

    1. 次のコマンドを実行して、phpinfo.phpファイルを作成します。

      sudo vim <Website root directory>/phpinfo.php

      <Webサイトのルートディレクトリ>は、ルートに囲まれた値location ~. php $で設定したブレースnginx.conf次の図に示すように、ファイルを使用します。 网站根目录この例では、Webサイトのルートディレクトリは /usr/share/nginx/htmlです。 次のコマンドを実行して、phpinfo.phpファイルを作成します。

      sudo vim /usr/share/nginx/html/phpinfo.php
    2. Iキーを押して挿入モードに入ります。

    3. 次の内容を入力します。 phpinfo() 関数は、PHPのすべての設定情報を表示するために使用されます。

      <?php echo phpinfo(); ?>
    4. Escキーを押して :wqと入力し、enterキーを押して設定ファイルを保存して閉じます。

  2. 次のコマンドを実行してPHP-FPMを開始します。

    sudo systemctl start php-fpm
  3. 次のコマンドを実行して、システムの起動時に自動的に起動するようにPHP-FPMを設定します。

    sudo systemctl enable php-fpm

ステップ5: LNMPスタックへの接続をテストする

  1. インターネットにアクセスできるオンプレミスのWindowsコンピューターまたは別のWindowsホストでwebブラウザーを開きます。

  2. アドレスバーに、http:// <ECSインスタンスのパブリックIPアドレス>/phpinfo.phpと入力します。

    次の図のページは、LNMPスタックがデプロイされていることを示しています。

    phpinfo

CentOS 8.x

このセクションでは、次のソフトウェアバージョンが使用されます。 ソフトウェアのバージョンが次のバージョンと異なる場合は、ビジネス要件に基づいてコマンドとパラメーター設定を変更します。

  • NGINX 1.20.1

  • MySQL 8.0.26

  • PHP 7.4.19

ステップ1: ファイアウォールとSELinuxを無効にする

重要

予期しないリスクを防ぐために、管理者ではなく通常のユーザーとして操作することを推奨します。 通常ユーザーにsudo権限がない場合は、ユーザーに権限を付与します。 詳細については、このトピックのFAQセクションの「通常のユーザーにsudo権限を付与する方法」を参照してください。

  1. LNMPスタックをデプロイするECSインスタンスに接続します。

    詳細については、「接続方法の概要」をご参照ください。

  2. ファイアウォールを無効化します。

    1. 次のコマンドを実行して、ファイアウォールのステータスを表示します。

      systemctl status firewalld

      查看防火墙状态

      • inactiveが返された場合、ファイアウォールは無効になります。 この場合、ステップ3に進みます。

      • activeが返された場合、ファイアウォールは有効になります。 この場合、ステップ2.bに進みます。

    2. ファイアウォールを無効化します。

      • ファイアウォールを一時的に無効にするには、次のコマンドを実行します。

        sudo systemctl stop firewalld
        説明

        上記のコマンドを実行すると、ファイアウォールは一時的に無効になります。 インスタンスを再起動すると、ファイアウォールが自動的に有効になります。

      • ファイアウォールを完全に無効にするには、次の手順を実行します。

        1. 次のコマンドを実行して、ファイアウォールを無効にします。

          sudo systemctl stop firewalld
        2. 次のコマンドを実行して、システムの起動時にファイアウォールが自動的に有効になるのを防ぎます。

          sudo systemctl disable firewalld
        説明

        ファイアウォールを無効にした後、ファイアウォールを再度有効にすることができます。 詳細については、公式のfirewalld Webサイトをご覧ください。

  3. SELinuxを無効にします。

    1. 次のコマンドを実行して、SELinuxのステータスを表示します。

      getenforce
      • 無効が返された場合、SELinuxは無効になります。 この場合は、手順2: NGINXのインストールに進みます。

      • Enforcingが返された場合、SELinuxは有効になります。 この場合、ステップ3.bに進みます。

    2. SELinuxを無効にします。

      ビジネス要件に基づいて、SELinuxを一時的または永続的に無効にできます。 詳細については、「SELinuxの有効化または無効化」をご参照ください。

ステップ2: NGINXのインストール

説明

インスタンスがインターネットにアクセスできる必要があります。

  1. CentOS 8リポジトリのアドレスを変更します。

    CentOS8はEOLに到達しました。 Linuxコミュニティルールに従って、すべてのコンテンツが次のCentOS 8リポジトリアドレスから削除され http://mirror.centos.org/centos/8/ た。 Alibaba CloudでデフォルトのCentOS 8リポジトリを引き続き使用すると、エラーが報告されます。 CentOS 8の特定のインストールパッケージを使用するには、CentOS 8リポジトリアドレスを変更します。 詳細については、「CentOS 8リポジトリアドレスの変更」をご参照ください。

  2. 次のコマンドを実行してNGINXをインストールします。

    この例では、NGINX 1.20.1が使用されます。

    説明

    NGINXの公式Webサイトにアクセスして、CentOS 8に適したNGINXパッケージのリストを表示します。

    sudo dnf -y install https://nginx.org/packages/centos/8/x86_64/RPMS/nginx-1.20.1-1.el8.ngx.x86_64.rpm
  3. 次のコマンドを実行して、NGINXのバージョンを表示します。

    nginx -v

    次のコマンド出力は、NGINXのバージョンを示しています。

    nginx version: nginx/1.20.1

ステップ3: MySQLのインストール

  1. 次のコマンドを実行してMySQLをインストールします。

    sudo dnf -y install @ mysql
  2. 次のコマンドを実行して、MySQLのバージョンを表示します。

    mysql -V

    次のコマンド出力は、MySQLのバージョンを示しています。

    mysql  Ver 8.0.26 for Linux on x86_64 (Source distribution)

ステップ4: PHPのインストールと設定

  1. 次のコマンドを実行して、EPELリポジトリを追加および更新します。

    sudo dnf -y install epel-release
    sudo dnf -y update epel-release
  2. 次のコマンドを実行して、不要になったキャッシュされたソフトウェアパッケージを削除し、ソフトウェアリポジトリを更新します。

    sudo dnf clean all
    sudo dnf makecache
  3. followコマンドを実行してPHP 7.4を有効にします。

    説明

    この例では、PHP 7.4が使用されています。 PHP 8.0またはPHP 8.2を使用する場合は、CentOS Streamオペレーティングシステムを使用する必要があります。

    sudo dnf module enable php:7.4
  4. 次のコマンドを実行してPHPモジュールをインストールします。

    sudo dnf -y install php php-curl php-dom php-exif php-fileinfo php-fpm php-gd php-hash php-json php-mbstring php-mysqli php-openssl php-pcre php-xml libsodium
  5. 次のコマンドを実行して、PHPのバージョンを表示します。

    php -v

    次のコマンド出力は、PHPのバージョンを示しています。

    PHP 7.4.19 (cli) (built: May  4 2021 11:06:37) ( NTS )
    Copyright (c) The PHP Group
    Zend Engine v3.4.0, Copyright (c) Zend Technologies
        with Zend OPcache v7.4.19, Copyright (c), by Zend Technologies

手順5: NGINXの設定

  1. 次のコマンドを実行して、NGINX設定ファイルのデフォルトパスを表示し、そのパスを記録します。

    cat /etc/nginx/nginx.conf

    http中かっこで囲まれたinclude構成項目には、構成ファイルのデフォルトパスが含まれています。conf

  2. 次のコマンドを実行して、設定ファイルのデフォルトパスにあるデフォルト設定ファイルをバックアップします。

    cd /etc/nginx/conf.d
    sudo cp default.conf default.conf.bak 
  3. デフォルト設定ファイルを変更します。

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

      sudo vim default.conf
    2. Iキーを押して挿入モードに入ります。

    3. location括弧内の次のコンテンツを変更します。

      location / {
          # Replace the path with the root directory of your website. 
          root   /usr/share/nginx/html;
          # Add the default homepage index.php. 
          index  index.html index.htm index.php;
      }
    4. location ~ \.php$ 行の先頭にあるコメント記号 (#) を削除し、中かっこに囲まれた内容を変更します。

      サンプル変更:

      location ~ \.php$ {
          # Replace the path with the root directory of your website. 
          root           /usr/share/nginx/html;
          # NGINX is associated with PHP-FPM by using UNIX sockets. This configuration must be the same as the listen configuration in the /etc/php-fpm.d/www.conf file. 
          fastcgi_pass   unix:/run/php-fpm/www.sock;
          fastcgi_index  index.php;
          # Change /scripts$fastcgi_script_name to $document_root$fastcgi_script_name. 
          fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
          # NGINX uses the FastCGI interface to process PHP requests. 
          include        fastcgi_params;
      }
      説明

      NGINXとPHP-FPM間のプロセス間通信には、次の方法を使用できます。

      • TCPソケットを使用します。 NGINXは、ネットワークを介してインスタンス間でPHP-FPMと通信できます。

      • UNIXドメインソケットを使用します。 NGINXは、同じインスタンス内でのみPHP-FPMと通信できます。 ネットワーク間の通信はサポートされていません。

      image

    5. Escキーを押して :wqと入力し、enterキーを押して設定ファイルを保存して閉じます。

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

    sudo systemctl start nginx
  5. 次のコマンドを実行して、NGINXがシステム起動時に自動的に起動するように設定します。

    sudo systemctl enable nginx

ステップ6: MySQLの設定

  1. 次のコマンドを実行してMySQLを起動し、システム起動時にMySQLが自動的に起動するように設定します。

    sudo systemctl enable -- now mysqld
  2. 次のコマンドを実行して、MySQLが起動しているかどうかを確認します。

    sudo systemctlステータスmysqld

    コマンド出力にActive: active (running) が含まれている場合、MySQLが起動されます。

  3. 次のコマンドを実行して、MySQLのセキュリティ設定を構成し、パスワードを設定します。

    sudo mysql_secure_installation

    コマンドを実行した後、コマンドプロンプトに基づいて次の操作を実行します。

    1. Yを入力し、Enterキーを押して設定プロセスを開始します。

    2. 2を入力し、パスワード強度ポリシーのプロンプトに従ってEnterキーを押します。

      0は、弱いパスワードポリシーを示し、1は、中程度のパスワードポリシーを示し、2は、強いパスワードポリシーを示す。 強力なパスワードポリシーを使用することを推奨します。

    3. MySQLの新しいパスワードを入力して確認します。

      この例では、パスワードPASSword123! タグが使用されています。

    4. Yを入力し、Enterキーを押してパスワードを確認します。

    5. Yを入力し、Enterキーを押して匿名ユーザーを削除します。

    6. MySQLへのリモートアクセスを許可するかどうかを指定します。

      • Yを入力し、Enterキーを押してリモートアクセスを拒否します。

      • NまたはY以外のキーを入力し、Enterキーを押してリモートアクセスを許可します。

    7. Yを入力し、Enterキーを押してtestデータベースとtestデータベースのアクセス許可を削除します。

    8. Yを入力し、Enterキーを押して特権テーブルをリロードします。

ステップ7: PHPの設定

  1. PHP設定ファイルを変更します。

    1. 次のコマンドを実行して、設定ファイルを開きます。

      sudo vim /etc/php-fpm.d/www.conf
    2. Iキーを押して挿入モードに入ります。

    3. user = apache行とgroup = apache行を見つけて、apachenginxに変更します。

      php-fpm conf

    4. Escキーを押して :wqと入力し、enterキーを押して設定ファイルを保存して閉じます。

  2. phpinfo.phpファイルを作成して変更し、PHP情報を表示します。

    1. 次のコマンドを実行して、phpinfo.phpファイルを作成します。

      sudo vim <Website root directory>/phpinfo.php

      <Webサイトのルートディレクトリ>は、ルートに囲まれた値location ~. php $で設定したブレースnginx.conf次の図に示すように、ファイルを使用します。 网站根目录この例では、Webサイトのルートディレクトリは /usr/share/nginx/htmlです。 次のコマンドを実行して、phpinfo.phpファイルを作成します。

      sudo vim /usr/share/nginx/html/phpinfo.php
    2. Iキーを押して挿入モードに入ります。

    3. 次の内容を入力します。 phpinfo() 関数は、PHPのすべての設定情報を表示するために使用されます。

      <?php echo phpinfo(); ?>
    4. Escキーを押して :wqと入力し、enterキーを押して設定ファイルを保存して閉じます。

  3. 次のコマンドを実行してPHP-FPMを起動します。

    sudo systemctl start php-fpm
  4. 次のコマンドを実行して、システム起動時に自動的に起動するようにPHP-FPMを設定します。

    sudo systemctl enable php-fpm

手順8: LNMPスタックへの接続のテスト

  1. オンプレミスの物理マシンでwebブラウザを開きます。

  2. アドレスバーに、http:// <ECSインスタンスのパブリックIPアドレス>/phpinfo.phpと入力します。

    次の図のページは、LNMPスタックがデプロイされていることを示しています。

    image

次のステップ

LNMPスタックがデプロイされていることを確認したら、次のコマンドを実行してphpinfo.phpファイルを削除し、データリークを防ぐことを推奨します。

sudo rm -rf <Website root directory>/phpinfo.php

<Websiteルートディレクトリ> を、nginx.confファイルで構成したWebサイトルートディレクトリに置き換えます。

この例では、Webサイトのルートディレクトリは /usr/share/nginx/htmlです。 以下のコマンドを実行します。

sudo rm -rf /usr/share/nginx/html/phpinfo.php

よくある質問

質問1: 他のNGINXバージョンをインストールするにはどうすればよいですか?

  1. webブラウザを使用してNGINXオープンソースコミュニティにアクセスし、さまざまなNGINXバージョンのダウンロードURLを取得します。

    インストールするNGINXバージョンを選択します。 この例では、NGINX 1.22.1が使用される。

  2. LNMPスタックをデプロイするECSインスタンスに接続します。

    詳細については、「VNCを使用したインスタンスへの接続」をご参照ください。

  3. 次のコマンドを実行してNGINX依存関係をインストールします。

    sudo yum install -y gcc-c++
    sudo yum install -y pcre pcre-devel
    sudo yum install -y zlib zlib-devel
    sudo yum install -y openssl openssl-devel
  4. wgetコマンドを実行してNGINX 1.22.1をダウンロードします。

    NGINXオープンソースコミュニティから、前のNGINXバージョンのNGINXインストールパッケージのURLを取得できます。 次に、wget URLコマンドを実行して、NGINXインストールパッケージをECSインスタンスにダウンロードします。 サンプルコマンド:

    sudo wget http://nginx.org/download/nginx-1.22.1.tar.gz
  5. 次のコマンドを実行してNGINX 1.22.1インストールパッケージを解凍し、NGINXがあるフォルダに移動します。

    sudo tar zxvf nginx-1.22.1.tar.gz
    cd nginx-1.22.1 
  6. 次のコマンドを順番に実行して、ソースコードをコンパイルします。

    sudo ./configure \
     --user=nobody \
     --group=nobody \
     --prefix=/usr/local/nginx \
     --with-http_stub_status_module \
     --with-http_gzip_static_module \
     --with-http_realip_module \
     --with-http_sub_module \
     --with-http_ssl_module
    sudo make && make install
  7. 次のコマンドを実行してNGINXのsbinディレクトリに移動し、NGINXを起動します。

    cd /usr/local/nginx/sbin/
    sudo ./nginx
  8. オンプレミスコンピューターのwebブラウザーを使用して、<ECSインスタンスのパブリックIPアドレス> にアクセスします。

    次の図のページは、NGINXがインストールされて起動されていることを示します。nginx

質問2: 通常のユーザーにsudo権限を付与するにはどうすればよいですか?

  1. rootユーザーとしてLinuxインスタンスに接続します。

    詳細については、「VNCを使用したインスタンスへの接続」をご参照ください。

  2. 次のコマンドを実行して、通常のユーザーを作成し、ユーザーのパスワードを指定します。 この例では、通常ユーザーの名前はtestです。

    useradd test
    passwd test
  3. 次のコマンドを実行して、/etc/sudoersファイルに対する権限を設定します。

    chmod 750 /etc/sudoers
  4. 次のコマンドを実行して、/etc/sudoersファイルを編集します。

    vim /etc/sudoers

    Iキーを押してInsertモードに入り、次の設定を追加します。

    test ALL=(ALL)  NOPASSWD: ALL

    :wqを入力し、Enterキーを押してファイルを保存して閉じます。 sada45

  5. 次のコマンドを実行して、testユーザーに切り替えます。

    su - test
  6. 次のコマンドを実行して、sudo権限を表示します。

    sudo cat /etc/redhat-release

    次のコマンド出力は、テストユーザーにsudo権限が付与されていることを示します。

    [test@iZbp1dqulfhozse3jbp**** ~]$ sudo cat /etc/redhat-release
    CentOS Linux release 7.9.2009 (Core)