🦙

limaを使ってmacOS上にLEMP環境を構築する

に公開

はじめに

最近Macを購入していろいろと試しているのですが、UNIXベースとはいえLinuxとは異なる部分があります。
そこで、Linux環境で実験や学習を行うために、軽量VMを導入することにしました。

軽量VMにはいくつかの選択肢がありますが、今回は Lima を選択しました。

本記事では、Limaを使ってUbuntu環境を立ち上げ、そこにLEMP環境(Linux, Nginx, MySQL, PHP)を構築し、phpinfo() が表示されるまでの手順を備忘録としてまとめます。

参考

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

作成後、以下のコマンドで起動状態を確認します。STATUSRunning になっていれば成功です。

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接続できるようにします。

  1. VS Codeの拡張機能「Remote - SSH」をインストールします。
  2. コマンドパレットを開きます(Command + Shift + P)。
  3. 「Remote-SSH: Add New SSH Host…」を選択します。
  4. 以下のコマンドを入力します。
    ssh -F ~/.lima/lemp-tutorial/ssh.config lima-lemp-tutorial
    
  5. 保存先のSSH設定ファイルを聞かれるので、「~/.ssh/config」を選択します。
  6. 再度コマンドパレットを開き、「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