チュートリアル: Azure Linux VM に LAMP スタックをインストールする
適用対象: ✔️ Linux VM
この記事では、Apache Web サーバー、MySQL、PHP (LAMP スタック) を Azure 上の Ubuntu VM にデプロイする方法について説明します。 LAMP サーバーの動作を確認するために、WordPress サイトをインストールし、構成することもできます。 このチュートリアルで学習する内容は次のとおりです。
- Ubuntu VM を作成する
- Web トラフィック用にポート 80 を開く
- Apache、MySQL、および PHP をインストールする
- インストールと構成を確認する
- WordPress のインストール
このセットアップは、簡単なテストまたは概念実証のためのものです。 運用環境の推奨事項を含め、LAMP スタックの詳細については、Ubuntu ドキュメントを参照してください。
このチュートリアルでは、Azure Cloud Shell で CLI を使用します。このバージョンは常に更新され最新になっています。 Cloud Shell を開くには、コード ブロックの上部にある [使ってみる] を選択します。
CLI をローカルにインストールして使用する場合、このチュートリアルでは、Azure CLI バージョン 2.0.30 以降を実行している必要があります。 バージョンを確認するには、az --version
を実行します。 インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。
リソース グループを作成する
az group create コマンドを使用して、リソース グループを作成します。 Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。
次の例では、myResourceGroup という名前のリソース グループを eastus に作成します。
az group create --name myResourceGroup --location eastus
仮想マシンの作成
az vm create コマンドで VM を作成します。
次の例では、myVM という名前の VM を作成し、既定のキーの場所にまだ SSH キーが存在しない場合は SSH キーを作成します。 特定のキーのセットを使用するには、--ssh-key-value
オプションを使用します。 このコマンドは、管理者ユーザー名として azureuser も設定します。 後でこの名前を使って VM に接続します。
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys
VM が作成されると、Azure CLI によって次の例のような情報が表示されます。 publicIpAddress
を書き留めておきます。 このアドレスは、後の手順で VM にアクセスするために使われます。
{
"fqdns": "",
"id": "/subscriptions/<subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM",
"location": "eastus",
"macAddress": "00-0D-3A-23-9A-49",
"powerState": "VM running",
"privateIpAddress": "10.0.0.4",
"publicIpAddress": "40.68.254.142",
"resourceGroup": "myResourceGroup"
}
Web トラフィック用にポート 80 を開く
Azure にデプロイされている Linux VM に対しては、既定で SSH 接続のみが許可されます。 この VM は Web サーバーとして使用することになるため、インターネットからのポート 80 を開放する必要があります。 az vm open-port コマンドを使用して、目的のポートを開きます。
az vm open-port --port 80 --resource-group myResourceGroup --name myVM
VM へのポートを開く方法の詳細については、ポートの開放に関するページを参照してください。
VM への SSH 接続
VM のパブリック IP アドレスが未確認である場合は、az network public-ip list コマンドを実行します。 後の複数の手順で、この IP アドレスが必要になります。
az network public-ip list --resource-group myResourceGroup --query [].ipAddress
次のコマンドを使用して、仮想マシンとの SSH セッションを作成します。 ご使用の仮想マシンの正しいパブリック IP アドレスに置き換えてください。 この例の IP アドレスは 40.68.254.142 です。 azureuser は、VM を作成するときに設定された管理者ユーザー名です。
ssh azureuser@40.68.254.142
Apache、MySQL、および PHP をインストールする
次のコマンドを実行して、Ubuntu パッケージ ソースを更新し Apache、MySQL、および PHP をインストールします。 コマンドの最後にあるキャレット (^) に注意してください。これは、lamp-server^
パッケージ名の一部です。
sudo apt update && sudo apt install lamp-server^
パッケージやその他の依存関係をインストールすることが求められます。 このプロセスにより、MySQL で PHP を使用するための必要最小限の PHP 拡張機能がインストールされます。
Apache を確認する
次のコマンドで Apache のバージョンを確認します。
apache2 -v
Apache がインストールされ、VM に対しポート 80 が開かれると、Web サーバーにインターネットからアクセスできるようになります。 Apache2 Ubuntu の既定ページを表示するには、Web ブラウザーを開いて、VM のパブリック IP アドレスを入力します。 VM に対する SSH で使用したパブリック IP アドレスを使用します。
MySQL を確認してセキュリティで保護する
次のコマンドを使用して MySQL のバージョンを確認します (大文字の V
パラメーターに注意)。
mysql -V
MySQL のインストールのセキュリティ保護を強化 (ルートのパスワードを設定するなど) するには、mysql_secure_installation
スクリプトを実行します。
sudo mysql_secure_installation
必要に応じてValidate Password プラグインを設定することもできます (推奨)。 次に、MySQL のルート ユーザーに使用するパスワードを設定し、その他、環境のセキュリティ設定を構成します。 質問にはすべて "Y" (はい) で答えることをお勧めします。
MySQL の機能 (MySQL データベースの作成、ユーザーの追加、構成設定の変更) を試したい場合は、MySQL にログインします。 このチュートリアルを完了するにあたって、この手順は必須ではありません。
sudo mysql -u root -p
完了したら「\q
」と入力して、mysql プロンプトを終了します。
PHP を確認する
次のコマンドで PHP のバージョンを確認します。
php -v
さらに詳しくテストする場合は、簡単な PHP 情報ページを作成して、ブラウザーで表示します。 次のコマンドは、PHP 情報ページを作成します。
sudo sh -c 'echo "<?php phpinfo(); ?>" > /var/www/html/info.php'
ここで作成した PHP 情報ページを確認できます。 ブラウザーを開き、http://yourPublicIPAddress/info.php
に移動します。 IP アドレスは、実際の VM のパブリック IP アドレスに置き換えてください。 以下の画像のようなページが表示されます。
WordPress のインストール
実際のスタックを試す場合は、サンプル アプリをインストールします。 以下の手順では、具体的な例として、オープン ソースの WordPress プラットフォームをインストールして、Web サイトとブログを作成しています。 その他、Drupal や Moodle などのワークロードで試してもかまいません。
ここで行う WordPress のセットアップは、概念実証だけを目的としています。 推奨されるセキュリティ設定で運用環境に最新の WordPress をインストールする場合は、WordPress のドキュメントをご覧ください。
WordPress パッケージのインストール
次のコマンドを実行します。
sudo apt install wordpress
WordPress の構成
MySQL と PHP を使うように WordPress を構成します。
作業ディレクトリに wordpress.sql
というテキスト ファイルを作成し、WordPress 用の MySQL データベースを構成します。
sudo sensible-editor wordpress.sql
次のコマンドを追加します。yourPassword は、ご自分で選ばれたデータベース パスワードに置き換えます (他の値はそのままでかまいません)。 前にパスワードの強度を検証するために MySQL セキュリティ ポリシーをセットアップした場合は、パスワードが強度の要件を満たすことを確認します。 ファイルを保存します。
CREATE DATABASE wordpress;
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER
ON wordpress.*
TO wordpress@localhost
IDENTIFIED BY 'yourPassword';
次のコマンドを実行してデータベースを作成します。
cat wordpress.sql | sudo mysql --defaults-extra-file=/etc/mysql/debian.cnf
wordpress.sql
ファイルにはデータベースの資格情報が含まれているので、使った後で削除します。
sudo rm wordpress.sql
PHP を構成するには、次のコマンドを実行して任意のテキスト エディターを開き、/etc/wordpress/config-localhost.php
というファイルを作成します。
sudo sensible-editor /etc/wordpress/config-localhost.php
このファイルに次の行をコピーします。yourPassword は、実際の WordPress データベースのパスワードに置き換えてください (他の値はそのままでかまいません)。 そのうえでファイルを保存します。
<?php
define('DB_NAME', 'wordpress');
define('DB_USER', 'wordpress');
define('DB_PASSWORD', 'yourPassword');
define('DB_HOST', 'localhost');
define('WP_CONTENT_DIR', '/usr/share/wordpress/wp-content');
?>
WordPress のインストールを Web サーバーのドキュメント ルートに移動します。
sudo ln -s /usr/share/wordpress /var/www/html/wordpress
sudo mv /etc/wordpress/config-localhost.php /etc/wordpress/config-default.php
これで WordPress のセットアップを完了し、プラットフォーム上で公開することができます。 ブラウザーを開き、http://yourPublicIPAddress/wordpress
に移動します。 IP アドレスは、実際の VM のパブリック IP アドレスに置き換えてください。 以下の画像のようなページが表示されます。
次の手順
このチュートリアルでは、Azure に LAMP サーバーを展開しました。 以下の方法について学習しました。
- Ubuntu VM を作成する
- Web トラフィック用にポート 80 を開く
- Apache、MySQL、および PHP をインストールする
- インストールと構成を確認する
- LAMP サーバーに WordPress をインストールする
TLS/SSL 証明書を使用して Web サーバーをセキュリティ保護する方法については、次のチュートリアルに進んでください。