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

Elastic Compute Service:Alibaba Cloud LinuxまたはCentOS 7.xインスタンスでLAMPスタックを構築する

最終更新日:Oct 16, 2024

LAMPは、Linuxオペレーティングシステム、Apache HTTP Server、MySQLリレーショナルデータベース管理システム、PHPプログラミング言語の4つの元のコンポーネントの名前の頭字語です。 ほとんどの場合、LAMPスタックはWebサイトの構築に使用されます。 LAMPは、広範なコミュニティサポートと豊富なリソースを備えており、さまざまなサイズのwebアプリケーションの開発、展開、および保守に適しています。 LAMPスタックは柔軟性が高く、サーバーを変更およびカスタマイズできます。 ビジネス要件に基づいてLAMPスタックコンポーネントを構成し、パフォーマンスとセキュリティを最大化できます。 このトピックでは、Alibaba Cloud Linux 2、Alibaba Cloud Linux 3、またはCentOS 7.xを実行するElastic Compute Service (ECS) インスタンスでLAMPスタックを構築する方法について説明します。

前提条件

LAMPスタックの構築に使用されるECSインスタンスが作成されます。 詳細については、「カスタム起動タブでインスタンスを作成する」をご参照ください。

ECSインスタンスは次の要件を満たしています。

  • ECSインスタンスは、自動割り当てパブリックIPアドレスまたはelastic IPアドレス (EIP) に関連付けられています。 EIPをインスタンスに関連付ける方法については、「EIPの関連付けまたは関連付けの解除」をご参照ください。

  • ECSインスタンスは、Alibaba Cloud Linux 2、Alibaba Cloud Linux 3、またはCentOS 7.xを実行します。

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

ステップ1: Apacheのインストール

  1. LAMPスタックを構築するECSインスタンスに接続します。

    詳細については、「パスワードまたはキーを使用したLinuxインスタンスへの接続」をご参照ください。

  2. 次のコマンドを実行して、Apacheとその拡張パッケージをインストールします。

    sudo yum -y install httpd httpd-manual mod_ssl mod_perl
  3. 次のコマンドを実行して、Apacheのバージョンを表示します。

    httpd -v

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

    httpd -v

  4. 次のコマンドを順番に実行してApacheを起動し、システム起動時にApacheを起動するように設定します。

    sudo systemctl start httpd
    sudo systemctl enable httpd
  5. 次のコマンドを実行して、Apacheのステータスを確認します。

    sudo systemctl status httpd

    次のコマンド出力は、Apacheが開始されたことを示します。

    image.png

ステップ2: 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ユーザーのパスワードをリセットするときに使用できます。

    2021-11-10T07:01:26.595215Z 1 [Note] A temporary password is generated for root@localhost: ARQTRy3+****
  2. 次のコマンドを実行して、MySQLのセキュリティ設定を構成します。

    sudo mysql_secure_installation
    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の公式ドキュメントをご参照ください。

ステップ3: 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           

Apache設定ファイルを変更してPHPのサポートを追加

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

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

    重要

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

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

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

    3. 次の設定情報を追加します。

      <FilesMatch \.php$>
          SetHandler "proxy:fcgi://127.0.0.1:9000"
      </FilesMatch>
    4. [Esc] キーを押して :wqと入力し、[enter] キーを押して設定ファイルを保存して閉じます。

    5. 次のコマンドを実行して、PHP FastCGIプロセスマネージャ (PHP-FPM) を再起動します。

      sudo systemctl restart php-fpm
  3. 次のコマンドを実行して、Apache Webサイトのルートディレクトリにテストファイルを作成します。

    sudo sh -c 'echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php'
  4. 次のコマンドを実行してApacheを再起動します。

    sudo systemctl restart httpd
  5. コンピューターのwebブラウザーのアドレスバーにhttp:// <ECSインスタンスのパブリックIPアドレス>/phpinfo.phpと入力し、Enterキーを押します。

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

    image

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

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

    この例では、Webサイトのルートディレクトリ /var/www/htmlが使用されています。 次のコマンドを実行して、テストファイルを削除します。

    sudo rm -rf /var/www/html/phpinfo.php