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権限を付与する方法」を参照してください。
LNMPスタックをデプロイするECSインスタンスに接続します。
詳細については、「接続方法の概要」をご参照ください。
ファイアウォールを無効化します。
次のコマンドを実行して、ファイアウォールのステータスを表示します。
systemctl status firewalld
ファイアウォールを無効化します。
ファイアウォールを一時的に無効にするには、次のコマンドを実行します。
sudo systemctl stop firewalld
説明上記のコマンドを実行すると、ファイアウォールは一時的に無効になります。 インスタンスを再起動すると、ファイアウォールが自動的に有効になります。
ファイアウォールを完全に無効にするには、次の手順を実行します。
次のコマンドを実行して、ファイアウォールを無効にします。
sudo systemctl stop firewalld
次のコマンドを実行して、システムの起動時にファイアウォールが自動的に有効になるのを防ぎます。
sudo systemctl disable firewalld
説明ファイアウォールを無効にした後、ファイアウォールを再度有効にすることができます。 詳細については、公式のfirewalld Webサイトをご覧ください。
セキュリティ強化Linux (SELinux) を無効にします。
次のコマンドを実行して、SELinuxのステータスを表示します。
getenforce
無効
が返された場合、SELinuxは無効になります。 この場合は、手順2: NGINXのインストールに進みます。Enforcing
が返された場合、SELinuxは有効になります。 この場合、ステップ3.bに進みます。
SELinuxを無効にします。
ビジネス要件に基づいて、SELinuxを一時的または永続的に無効にできます。 詳細については、「SELinuxの有効化または無効化」をご参照ください。
ステップ2: NGINXのインストール
ここでは、特定のバージョンのNGINXをインストールする方法について説明します。 NGINXの他のバージョンをインストールする場合は、このトピックのFAQセクションの「他のNGINXバージョンをインストールする方法」を参照してください。
次のコマンドを実行してNGINXをインストールします。
sudo yum -y install nginx
次のコマンドを実行して、NGINXのバージョンを表示します。
nginx -v
次のコマンド出力は、NGINXがインストールされていることを示します。
nginx version: nginx/1.20.1
ステップ3: 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ユーザーのパスワードをリセットするときに使用できます。sudo mysql_secure_installation
次のコマンドを実行して、MySQLのセキュリティ設定を構成します。
Securing the MySQL server deployment. Enter password for user root: # Enter the initial password that you obtained in the previous step.
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の公式ドキュメントをご参照ください。
ステップ4: 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
NGINX設定ファイルを変更してPHPを有効にする
次のコマンドを実行して、NGINX設定ファイルをバックアップします。
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
NGINX設定ファイルを変更してPHPのサポートを追加します。
重要PHPのサポートを追加しないと、webブラウザを使用してページにアクセスすると、PHPページを表示できません。
次のコマンドを実行して、NGINX設定ファイルを開きます。
sudo vim /etc/nginx/nginx.conf
I
キーを押して挿入モードに入ります。サーバー
ブレース内で、構成情報を変更または追加します。次の設定を除くすべての設定のデフォルト値を保持します。
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. }
次の図は、追加または変更された構成情報を示しています。
[Esc]
キーを押して:wq
と入力し、[enter]
キーを押して設定ファイルを保存して閉じます。
次のコマンドを実行してNGINXを起動します。
sudo systemctl start nginx
次のコマンドを実行して、NGINXがシステム起動時に自動的に起動するように設定します。
sudo systemctl enable nginx
PHPの設定
phpinfo.php
ファイルを作成して変更し、PHP情報を表示します。次のコマンドを実行して、
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
I
キーを押して挿入モードに入ります。次の内容を入力します。
phpinfo()
関数は、PHPのすべての設定情報を表示するために使用されます。<?php echo phpinfo(); ?>
Esc
キーを押して:wq
と入力し、enterキーを押して設定ファイルを保存して閉じます。
次のコマンドを実行してPHP-FPMを開始します。
sudo systemctl start php-fpm
次のコマンドを実行して、システムの起動時に自動的に起動するようにPHP-FPMを設定します。
sudo systemctl enable php-fpm
ステップ5: LNMPスタックへの接続をテストする
インターネットにアクセスできるオンプレミスのWindowsコンピューターまたは別のWindowsホストでwebブラウザーを開きます。
アドレスバーに、
http:// <ECSインスタンスのパブリックIPアドレス>/phpinfo.php
と入力します。次の図のページは、LNMPスタックがデプロイされていることを示しています。
CentOS 8.x
このセクションでは、次のソフトウェアバージョンが使用されます。 ソフトウェアのバージョンが次のバージョンと異なる場合は、ビジネス要件に基づいてコマンドとパラメーター設定を変更します。
NGINX 1.20.1
MySQL 8.0.26
PHP 7.4.19
ステップ1: ファイアウォールとSELinuxを無効にする
予期しないリスクを防ぐために、管理者ではなく通常のユーザーとして操作することを推奨します。 通常ユーザーにsudo権限がない場合は、ユーザーに権限を付与します。 詳細については、このトピックのFAQセクションの「通常のユーザーにsudo権限を付与する方法」を参照してください。
LNMPスタックをデプロイするECSインスタンスに接続します。
詳細については、「接続方法の概要」をご参照ください。
ファイアウォールを無効化します。
次のコマンドを実行して、ファイアウォールのステータスを表示します。
systemctl status firewalld
ファイアウォールを無効化します。
ファイアウォールを一時的に無効にするには、次のコマンドを実行します。
sudo systemctl stop firewalld
説明上記のコマンドを実行すると、ファイアウォールは一時的に無効になります。 インスタンスを再起動すると、ファイアウォールが自動的に有効になります。
ファイアウォールを完全に無効にするには、次の手順を実行します。
次のコマンドを実行して、ファイアウォールを無効にします。
sudo systemctl stop firewalld
次のコマンドを実行して、システムの起動時にファイアウォールが自動的に有効になるのを防ぎます。
sudo systemctl disable firewalld
説明ファイアウォールを無効にした後、ファイアウォールを再度有効にすることができます。 詳細については、公式のfirewalld Webサイトをご覧ください。
SELinuxを無効にします。
次のコマンドを実行して、SELinuxのステータスを表示します。
getenforce
無効
が返された場合、SELinuxは無効になります。 この場合は、手順2: NGINXのインストールに進みます。Enforcing
が返された場合、SELinuxは有効になります。 この場合、ステップ3.bに進みます。
SELinuxを無効にします。
ビジネス要件に基づいて、SELinuxを一時的または永続的に無効にできます。 詳細については、「SELinuxの有効化または無効化」をご参照ください。
ステップ2: NGINXのインストール
インスタンスがインターネットにアクセスできる必要があります。
CentOS 8リポジトリのアドレスを変更します。
CentOS8はEOLに到達しました。 Linuxコミュニティルールに従って、すべてのコンテンツが次のCentOS 8リポジトリアドレスから削除され http://mirror.centos.org/centos/8/ た。 Alibaba CloudでデフォルトのCentOS 8リポジトリを引き続き使用すると、エラーが報告されます。 CentOS 8の特定のインストールパッケージを使用するには、CentOS 8リポジトリアドレスを変更します。 詳細については、「CentOS 8リポジトリアドレスの変更」をご参照ください。
次のコマンドを実行して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
次のコマンドを実行して、NGINXのバージョンを表示します。
nginx -v
次のコマンド出力は、NGINXのバージョンを示しています。
nginx version: nginx/1.20.1
ステップ3: MySQLのインストール
次のコマンドを実行してMySQLをインストールします。
sudo dnf -y install @ mysql
次のコマンドを実行して、MySQLのバージョンを表示します。
mysql -V
次のコマンド出力は、MySQLのバージョンを示しています。
mysql Ver 8.0.26 for Linux on x86_64 (Source distribution)
ステップ4: PHPのインストールと設定
次のコマンドを実行して、EPELリポジトリを追加および更新します。
sudo dnf -y install epel-release sudo dnf -y update epel-release
次のコマンドを実行して、不要になったキャッシュされたソフトウェアパッケージを削除し、ソフトウェアリポジトリを更新します。
sudo dnf clean all sudo dnf makecache
followコマンドを実行して
PHP 7.4
を有効にします。説明この例では、
PHP 7.4
が使用されています。PHP 8.0
またはPHP 8.2
を使用する場合は、CentOS Streamオペレーティングシステムを使用する必要があります。sudo dnf module enable php:7.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
次のコマンドを実行して、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の設定
次のコマンドを実行して、NGINX設定ファイルのデフォルトパスを表示し、そのパスを記録します。
cat /etc/nginx/nginx.conf
http
中かっこで囲まれたinclude
構成項目には、構成ファイルのデフォルトパスが含まれています。次のコマンドを実行して、設定ファイルのデフォルトパスにあるデフォルト設定ファイルをバックアップします。
cd /etc/nginx/conf.d sudo cp default.conf default.conf.bak
デフォルト設定ファイルを変更します。
次のコマンドを実行して、デフォルトの構成ファイルを開きます。
sudo vim default.conf
I
キーを押して挿入モードに入ります。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; }
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と通信できます。 ネットワーク間の通信はサポートされていません。
Esc
キーを押して:wq
と入力し、enterキーを押して設定ファイルを保存して閉じます。
次のコマンドを実行してNGINXを起動します。
sudo systemctl start nginx
次のコマンドを実行して、NGINXがシステム起動時に自動的に起動するように設定します。
sudo systemctl enable nginx
ステップ6: MySQLの設定
次のコマンドを実行してMySQLを起動し、システム起動時にMySQLが自動的に起動するように設定します。
sudo systemctl enable -- now mysqld
次のコマンドを実行して、MySQLが起動しているかどうかを確認します。
sudo systemctlステータスmysqld
コマンド出力に
Active: active (running)
が含まれている場合、MySQLが起動されます。次のコマンドを実行して、MySQLのセキュリティ設定を構成し、パスワードを設定します。
sudo mysql_secure_installation
コマンドを実行した後、コマンドプロンプトに基づいて次の操作を実行します。
Yを入力し、Enterキーを押して設定プロセスを開始します。
2を入力し、パスワード強度ポリシーのプロンプトに従ってEnterキーを押します。
0は、弱いパスワードポリシーを示し、1は、中程度のパスワードポリシーを示し、2は、強いパスワードポリシーを示す。 強力なパスワードポリシーを使用することを推奨します。
MySQLの新しいパスワードを入力して確認します。
この例では、パスワード
PASSword123!
タグが使用されています。Yを入力し、Enterキーを押してパスワードを確認します。
Yを入力し、Enterキーを押して匿名ユーザーを削除します。
MySQLへのリモートアクセスを許可するかどうかを指定します。
Yを入力し、Enterキーを押してリモートアクセスを拒否します。
NまたはY以外のキーを入力し、Enterキーを押してリモートアクセスを許可します。
Yを入力し、Enterキーを押して
test
データベースとtest
データベースのアクセス許可を削除します。Yを入力し、Enterキーを押して特権テーブルをリロードします。
ステップ7: PHPの設定
PHP設定ファイルを変更します。
次のコマンドを実行して、設定ファイルを開きます。
sudo vim /etc/php-fpm.d/www.conf
I
キーを押して挿入モードに入ります。user = apache
行とgroup = apache
行を見つけて、apache
をnginx
に変更します。Esc
キーを押して:wq
と入力し、enterキーを押して設定ファイルを保存して閉じます。
phpinfo.php
ファイルを作成して変更し、PHP情報を表示します。次のコマンドを実行して、
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
I
キーを押して挿入モードに入ります。次の内容を入力します。
phpinfo()
関数は、PHPのすべての設定情報を表示するために使用されます。<?php echo phpinfo(); ?>
Esc
キーを押して:wq
と入力し、enterキーを押して設定ファイルを保存して閉じます。
次のコマンドを実行して
PHP-FPM
を起動します。sudo systemctl start php-fpm
次のコマンドを実行して、システム起動時に自動的に起動するように
PHP-FPM
を設定します。sudo systemctl enable php-fpm
手順8: LNMPスタックへの接続のテスト
オンプレミスの物理マシンでwebブラウザを開きます。
アドレスバーに、
http:// <ECSインスタンスのパブリックIPアドレス>/phpinfo.php
と入力します。次の図のページは、LNMPスタックがデプロイされていることを示しています。
次のステップ
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バージョンをインストールするにはどうすればよいですか?
webブラウザを使用してNGINXオープンソースコミュニティにアクセスし、さまざまなNGINXバージョンのダウンロードURLを取得します。
インストールするNGINXバージョンを選択します。 この例では、NGINX 1.22.1が使用される。
LNMPスタックをデプロイするECSインスタンスに接続します。
詳細については、「VNCを使用したインスタンスへの接続」をご参照ください。
次のコマンドを実行して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
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
次のコマンドを実行してNGINX 1.22.1インストールパッケージを解凍し、NGINXがあるフォルダに移動します。
sudo tar zxvf nginx-1.22.1.tar.gz cd nginx-1.22.1
次のコマンドを順番に実行して、ソースコードをコンパイルします。
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
次のコマンドを実行してNGINXの
sbin
ディレクトリに移動し、NGINXを起動します。cd /usr/local/nginx/sbin/ sudo ./nginx
オンプレミスコンピューターのwebブラウザーを使用して、
<ECSインスタンスのパブリックIPアドレス>
にアクセスします。次の図のページは、NGINXがインストールされて起動されていることを示します。
質問2: 通常のユーザーにsudo権限を付与するにはどうすればよいですか?
root
ユーザーとしてLinuxインスタンスに接続します。詳細については、「VNCを使用したインスタンスへの接続」をご参照ください。
次のコマンドを実行して、通常のユーザーを作成し、ユーザーのパスワードを指定します。 この例では、通常ユーザーの名前は
test
です。useradd test passwd test
次のコマンドを実行して、
/etc/sudoers
ファイルに対する権限を設定します。chmod 750 /etc/sudoers
次のコマンドを実行して、
/etc/sudoers
ファイルを編集します。vim /etc/sudoers
I
キーを押してInsertモードに入り、次の設定を追加します。test ALL=(ALL) NOPASSWD: ALL
:wqを入力し、Enterキーを押してファイルを保存して閉じます。
次のコマンドを実行して、
test
ユーザーに切り替えます。su - test
次のコマンドを実行して、
sudo
権限を表示します。sudo cat /etc/redhat-release
次のコマンド出力は、テストユーザーに
sudo
権限が付与されていることを示します。[test@iZbp1dqulfhozse3jbp**** ~]$ sudo cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core)