0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windows環境にPHPとLaravelをセットアップし、Dockerで環境構築する手順

Last updated at Posted at 2024-09-25

Windows環境にPHPとLaravelをセットアップし、Dockerで環境構築する手順

この投稿は、WindowsにPHPをインストールし、Laravelアプリを作成、そしてDockerを使ってLaravelアプリを動かす手順の記録用です。

1. PHPのインストール手順

1-1. PHPのダウンロードと解凍

  1. PHP公式サイトから最新のPHPをダウンロードします。
  2. ダウンロードしたZIPファイルを任意のフォルダに解凍します。例えば、C:\phpフォルダを作成して、その中に解凍します。

1-2. PHPのパスを環境変数に設定

  1. スタートメニューの検索バーに「環境変数」と入力し、「システム環境変数の編集」をクリック。
  2. 「システムのプロパティ」ウィンドウが開いたら、「環境変数」ボタンをクリック。
  3. 「システム環境変数」の「Path」を選択し、「編集」をクリック。
  4. PHPの解凍先フォルダ(例: C:\php)のパスを追加。
  5. 「OK」をクリックして設定を完了します。

1-3. PHPの動作確認

PowerShellまたはコマンドプロンプトを開き、以下のコマンドを実行してPHPがインストールされたか確認します。

php -v

PHPのバージョンが表示されればインストールは成功です。


2. Composerのインストール

2-1. Composerのインストール手順

  1. Composer公式サイトからWindows用インストーラーをダウンロード。
  2. ダウンロードしたComposer-Setup.exeを実行し、インストールウィザードに従ってComposerをインストール。
  3. インストール中に「PHPのパス」を指定するように求められたら、先ほどインストールしたPHPのパス(例: C:\php\php.exe)を指定します。

2-2. Composerの動作確認

PowerShellを再起動し、以下のコマンドを実行してComposerが正しくインストールされたか確認します。

composer --version

Composerのバージョンが表示されれば成功です。


3. Laravelアプリの作成

3-1. Laravelプロジェクトを作成する

まず、PowerShellで作成したいディレクトリに移動します。例えば、C:\projectsフォルダに移動するには以下のコマンドを使います。

cd C:\projects

次に、以下のコマンドを実行してLaravelのプロジェクトを作成します。

composer create-project --prefer-dist laravel/laravel my-laravel-app

これで、my-laravel-appという名前のフォルダにLaravelのファイル一式が作成されます。


4. Docker環境の設定

LaravelアプリをDocker上で動かすため、PHP-FPM、Xdebug、MySQL、Nginxを使用します。

4-1. Dockerfileを作成

Dockerfileを作成し、以下の内容を記述します。

# ベースイメージ
FROM php:8.2-fpm

# 必要なPHP拡張機能をインストール
RUN apt-get update && apt-get install -y \
    git \
    unzip \
    libzip-dev \
    && docker-php-ext-install zip pdo pdo_mysql

# Composerをインストール
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer

# Xdebugをインストール
RUN pecl install xdebug \
    && docker-php-ext-enable xdebug

# 作業ディレクトリを設定
WORKDIR /var/www

# Laravelのコードをコピー
COPY . /var/www

# 権限設定
RUN chown -R www-data:www-data /var/www

# ポートを公開
EXPOSE 9000

4-2. Docker Composeファイルを作成

次に、docker-compose.ymlを作成し、以下の設定を書き込みます。

version: '3.8'

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: laravel_app
    volumes:
      - .:/var/www
    ports:
      - "9000:9000"
    networks:
      - laravel

  nginx:
    image: nginx:latest
    container_name: nginx
    ports:
      - "8080:80"
    volumes:
      - .:/var/www
      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - app
    networks:
      - laravel

  db:
    image: mysql:8
    container_name: mysql
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: laravel
      MYSQL_USER: user
      MYSQL_PASSWORD: password
    ports:
      - "3306:3306"
    networks:
      - laravel

networks:
  laravel:
    driver: bridge

4-3. Nginxの設定

nginx/default.confというファイルを作成し、Nginxの設定を記述します。

server {
    listen 80;
    index index.php index.html;
    server_name localhost;
    root /var/www/public;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass app:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

4-4. index.htmlの修正

表示したい文字(Hello World)を記述します。

<!DOCTYPE html>
<html>
    <head>
        <title>PHP Test</title>
    </head>
    <body>
        <?php echo '<p>Hello World</p>'; ?>
    </body>
</html>

5. DockerでLaravelアプリを立ち上げる

すべての設定が完了したら、以下のコマンドを実行してDockerを立ち上げます。

docker-compose up --build

http://localhost:8080 にアクセスするとLaravelアプリが表示されるはずです。


まとめ

  1. PHPのインストール:PHPの環境変数を設定し、動作確認。
  2. Composerのインストール:Composerをインストールし、動作確認。
  3. Laravelアプリの作成composer create-projectで新規プロジェクトを作成。
  4. Docker環境の設定Dockerfiledocker-compose.ymlを設定。
  5. アプリの起動docker-compose upでDockerを立ち上げ、Laravelを実行。

これでLaravelアプリがDocker上で動作します!

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?