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のインストール
LAMPスタックを構築するECSインスタンスに接続します。
詳細については、「パスワードまたはキーを使用したLinuxインスタンスへの接続」をご参照ください。
次のコマンドを実行して、Apacheとその拡張パッケージをインストールします。
sudo yum -y install httpd httpd-manual mod_ssl mod_perl
次のコマンドを実行して、Apacheのバージョンを表示します。
httpd -v
次のコマンド出力は、Apacheがインストールされていることを示します。
次のコマンドを順番に実行してApacheを起動し、システム起動時にApacheを起動するように設定します。
sudo systemctl start httpd sudo systemctl enable httpd
次のコマンドを実行して、Apacheのステータスを確認します。
sudo systemctl status httpd
次のコマンド出力は、Apacheが開始されたことを示します。
ステップ2: MySQLのインストールと設定
MySQLのインストール
ECSインスタンスがAlibaba Cloud Linux 3オペレーティングシステムを実行している場合、MySQL依存関係パッケージをインストールする必要があります。
sudo yum install compat-openssl10
次のコマンドを実行して、Yellowdog Updater Modified (YUM) リポジトリを更新します。
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm
次のコマンドを実行してMySQLをインストールします。
sudo yum -y install mysql-community-server
次のコマンドを実行して、MySQLのバージョンを表示します。
mysql -V
次のコマンド出力は、MySQLがインストールされていることを示します。
mysql Ver 8.0.36 for Linux on x86_64 (MySQL Community Server - GPL)
次のコマンドを実行してMySQLを起動します。
sudo systemctl start mysqld
次のコマンドを順番に実行して、MySQLがシステム起動時に自動的に起動するように設定します。
sudo systemctl enable mysqld sudo systemctl daemon-reload
MySQLの設定
次のコマンドを実行して
/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+****
次のコマンドを実行して、MySQLのセキュリティ設定を構成します。
sudo mysql_secure_installation
MySQLの初期パスワードを入力します。
説明データセキュリティのため、パスワードを入力しても出力は返されません。 正しいパスワードを入力し、enterキーを押すだけです。
Securing the MySQL server deployment. Enter password for user root: # Enter the initial password that you obtained in the previous step.
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.
匿名ユーザーを削除するには、Yと入力します。
Remove anonymous users? (Press y|Y for Yes, any other key for No) :Y Success.
ルートユーザーによるリモートアクセスを拒否するには、Yと入力します。
Disallow root login remotely? (Press y|Y for Yes, any other key for No) :Y Success.
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.
権限テーブルをリロードするには、Yと入力します。
Reload privilege tables now? (Press y|Y for Yes, any other key for No) :Y Success. All done!
詳細については、MySQLの公式ドキュメントをご参照ください。
ステップ3: PHPのインストールと設定
PHPのインストール
PHPをインストールします。
Alibaba Cloud Linux 3
次のコマンドを実行して、YUMリポジトリを更新します。
sudo rpm -Uvh https://mirrors.aliyun.com/remi/enterprise/remi-release-8.rpm --nodeps
次のコマンドを実行して、
php:remi-8.0
モジュールストリームを有効にします。sudo yum module enable -y php:remi-8.0
次のコマンドを実行してPHPをインストールします。
sudo yum install -y php php-cli php-fpm php-common php-mysqlnd php-gd php-mbstring php-xml
Alibaba Cloud Linux 2
次のコマンドを実行して、YUMリポジトリを更新します。
sudo rpm -Uvh https://mirrors.aliyun.com/remi/enterprise/remi-release-7.rpm
次のコマンドを実行して、
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
次のコマンドを実行して、PHP 8.0リポジトリを有効にします。
sudo sed -i '1,10s/enabled=0/enabled=1/' /etc/yum.repos.d/remi-php80.repo
次のコマンドを実行してPHPをインストールします。
sudo yum install -y php php-cli php-fpm php-common php-mysqlnd php-gd php-mbstring
CentOS 7.x
YUMリポジトリを更新します。
次のコマンドを実行して、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
次のコマンドを実行して、PHP 8.0リポジトリを有効にします。
sudo yum install -y yum-utils sudo yum-config-manager --enable remi-php80
次のコマンドを実行して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
次のコマンドを実行して、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のサポートを追加
次のコマンドを実行して、Apache設定ファイルをバックアップします。
sudo cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak
Apache設定ファイルを変更して、PHPのサポートを追加します。
重要PHPのサポートを追加しないと、webブラウザを使用してページにアクセスすると、PHPページを表示できません。
次のコマンドを実行して、Apache設定ファイルを開きます。
sudo vim /etc/httpd/conf/httpd.conf
I
キーを押して挿入モードに入ります。次の設定情報を追加します。
<FilesMatch \.php$> SetHandler "proxy:fcgi://127.0.0.1:9000" </FilesMatch>
[Esc]
キーを押して:wq
と入力し、[enter]
キーを押して設定ファイルを保存して閉じます。次のコマンドを実行して、PHP FastCGIプロセスマネージャ (PHP-FPM) を再起動します。
sudo systemctl restart php-fpm
次のコマンドを実行して、Apache Webサイトのルートディレクトリにテストファイルを作成します。
sudo sh -c 'echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php'
次のコマンドを実行してApacheを再起動します。
sudo systemctl restart httpd
コンピューターのwebブラウザーのアドレスバーに
http:// <ECSインスタンスのパブリックIPアドレス>/phpinfo.php
と入力し、Enterキーを押します。次の図に示すページは、PHPがインストールされていることを示します。
LAMPスタックが構築されたことを確認したら、次のコマンドを実行してphpinfo.phpファイルを削除し、データリークを防ぐことを推奨します。
sudo rm -rf <Website root directory>/phpinfo.php
この例では、Webサイトのルートディレクトリ
/var/www/html
が使用されています。 次のコマンドを実行して、テストファイルを削除します。sudo rm -rf /var/www/html/phpinfo.php