limaを使ってmacOS上にLEMP環境を構築する
はじめに
最近Macを購入していろいろと試しているのですが、UNIXベースとはいえLinuxとは異なる部分があります。
そこで、Linux環境で実験や学習を行うために、軽量VMを導入することにしました。
軽量VMにはいくつかの選択肢がありますが、今回は Lima を選択しました。
本記事では、Limaを使ってUbuntu環境を立ち上げ、そこにLEMP環境(Linux, Nginx, MySQL, PHP)を構築し、phpinfo() が表示されるまでの手順を備忘録としてまとめます。
参考
- GitHub - lima-vm/lima: Linux virtual machines, with a focus on running containers
- Lima: Linux Machines | Lima
- Lima を使って Apple Silicon 版の Mac で x86-64 (Intel on ARM) な仮想マシンを扱う - CUBE SUGAR CONTAINER
- Lima: Parallels と VMWare なしで macOS で Linux 仮想機を使うツールの紹介 | DevelopersIO
- apt update と apt upgradeの違いと指定したパッケージだけを個別にアップグレードする方法 #Linux - Qiita
- nginx と PHP-FPM の仕組みをちゃんと理解しながら PHP の実行環境を構築する #Apache - Qiita
- Linux、Nginx、MySQL、PHP(LEMP)スタックをUbuntu 20.04にインストールする方法 | DigitalOcean
Limaのインストール
LimaはHomebrewを使って簡単にインストールできます。
brew install lima
VMの立ち上げ & LEMP用インスタンスの作成
以下のコマンドを実行して、新しいインスタンスを作成・起動します。
limactl start --name=lemp-tutorial
コマンドを実行すると、設定画面が開きます。今回はデフォルト設定で進めるため、Proceed with the current configuration を選択します。
? Creating an instance "lemp-tutorial" [Use arrows to move, type to filter]
> Proceed with the current configuration
Open an editor to review or modify the current configuration
Choose another template (docker, podman, archlinux, fedora, ...)
Exit
作成後、以下のコマンドで起動状態を確認します。STATUS が Running になっていれば成功です。
limactl list
出力例:
NAME STATUS SSH CPUS MEMORY DISK DIR
lemp-tutorial Running 127.0.0.1:50278 4 4GiB 100GiB ~/.lima/lemp-tutorial
VMへのアクセス
作成したVMにシェルでアクセスします。
limactl shell lemp-tutorial
プロンプトが変わり、VM内に入ることができます。
lima-lemp-tutorial:/Users/khitoshi$
念のため、システム情報を確認しておきます。
uname -a
出力例:
Linux lima-lemp-tutorial 6.17.0-5-generic #5-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 22 09:50:31 UTC 2025 aarch64 GNU/Linux
LEMP環境の構築
ここからはVM内での作業になります。
LEMPスタック(Linux, Nginx, MySQL, PHP)を順にインストールしていきます。
1. システムの最新化
まずはパッケージリストの更新と、インストール済みパッケージのアップグレードを行います。
-
apt update: パッケージリストをリポジトリから取得・更新します(Gitでいうfetch)。 -
apt upgrade -y: インストールされているパッケージを最新バージョンに更新します(Gitでいうpullに近いイメージ)。
sudo apt update
sudo apt upgrade -y
2. Nginxのインストール
WebサーバーであるNginxをインストールし、起動設定を行います。
sudo apt install nginx
インストール後、自動起動の設定とステータスの確認を行います。
sudo systemctl enable nginx
sudo systemctl status nginx
ステータス確認の出力例(一部抜粋):
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: enabled)
Active: active (running) since Mon 2025-11-24 02:36:18 JST; 1min 19s ago
...
ホスト側のブラウザから http://localhost/ にアクセスし、"Welcome to nginx!" が表示されればインストール成功です。
※ Limaはデフォルトでポートフォワーディングを行ってくれるため、VM内のポート80にホスト側からアクセスできます。
3. MySQLのインストール
データベースサーバーとしてMySQLをインストールします。
-
mysql-server: データベースサーバー本体。 -
mysql-client: データベースに接続するためのクライアントツール。
sudo apt install mysql-server mysql-client
インストール後、セキュリティ設定を行います。
sudo mysql_secure_installation
※ パスワードの強度設定や、匿名ユーザーの削除などを対話形式で設定します。開発環境であれば、適宜設定してください。
正常にインストールされたか確認するために、MySQLにログインしてみます。
sudo mysql
ログインできれば成功です。終了するには exit を入力します。
mysql> exit
4. PHPのインストール
- PHP本体と、Nginxと連携するための
php-fpm - MySQLと連携するための
php-mysql
をインストールします。
sudo apt install php-fpm php-mysql
インストールされたPHPのバージョンを確認します。
php -v
出力例:
PHP 8.4.11 (cli) (built: Aug 13 2025 01:43:48) (NTS)
Copyright (c) The PHP Group
Built by Ubuntu
...
※ インストールされるバージョンは時期によって異なります(例: 8.1, 8.2, 8.3など)。後の設定ファイル記述時にバージョン番号が必要になるため、ここで確認したバージョン(例: 8.4)を覚えておいてください。
VS CodeでSSH接続する
開発を効率化するために、VS CodeからVMにSSH接続できるようにします。
- VS Codeの拡張機能「Remote - SSH」をインストールします。
- コマンドパレットを開きます(
Command+Shift+P)。 - 「Remote-SSH: Add New SSH Host…」を選択します。
- 以下のコマンドを入力します。
ssh -F ~/.lima/lemp-tutorial/ssh.config lima-lemp-tutorial - 保存先のSSH設定ファイルを聞かれるので、「
~/.ssh/config」を選択します。 - 再度コマンドパレットを開き、「Remote-SSH: Connect to Host…」から
lima-lemp-tutorialを選択して接続します。
LEMPの設定変更
1. ドキュメントルートの作成
Webサイトのファイルを配置するディレクトリを作成し、権限を設定します。
sudo mkdir -p /var/www/lemp-tutorial
sudo chown -R $USER:$USER /var/www/lemp-tutorial
作成できたか確認します。
ls -l /var/www/
2. Nginxの設定ファイル作成
Nginxの設定ファイルを作成します。
sudo touch /etc/nginx/sites-available/lemp-tutorial
作成したファイルを編集し、以下の内容を記述します。
※ fastcgi_pass のパスに含まれるPHPのバージョン(ここでは php8.4-fpm.sock)は、インストールされたバージョンに合わせて変更してください。
server {
listen 80;
server_name _;
root /var/www/lemp-tutorial;
index index.html index.php;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# 注意: インストールされているPHPのバージョンに合わせて変更してください
fastcgi_pass unix:/var/run/php/php8.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
3. 設定の有効化
作成した設定ファイルを sites-enabled にシンボリックリンクを貼ることで有効化します。また、デフォルトの設定を無効化します。
# デフォルト設定の削除
sudo rm /etc/nginx/sites-enabled/default
# 新しい設定の有効化
sudo ln -s /etc/nginx/sites-available/lemp-tutorial /etc/nginx/sites-enabled/
4. 設定の反映
Nginxの設定構文に誤りがないかチェックします。
sudo nginx -t
エラーが表示されなければ、Nginxをリロードして設定を反映させます。
sudo systemctl reload nginx
動作確認
HTMLファイルの確認
/var/www/lemp-tutorial/index.html を作成し、以下の内容を記述します。
<html>
<head>
<title>lemp-tutorial website</title>
</head>
<body>
<h1>Hello World!</h1>
<p>This is the landing page of <strong>lemp-tutorial</strong>.</p>
</body>
</html>
ブラウザで http://localhost/ にアクセスし、"Hello World!" が表示されればNginxの設定は正常です。
PHPファイルの確認
PHPが正しく動作しているか確認するために、/var/www/lemp-tutorial/info.php を作成します。
<?php
phpinfo();
ブラウザで http://localhost/info.php にアクセスします。
PHPの設定情報(PHP Version ... という紫色の表)が表示されれば、LEMP環境の構築は完了です!
以上で、Limaを使ったLEMP環境の構築は完了です。
Discussion