以前、Laravel8で環境構築をしたため最新版としてLaravel12の環境構築に関して記載する。
今回は自分の学習も兼ねて、前のファイルの配置(Laravel8)など変更している。
本記事は過去のLaravel8の環境構築の手順を参考にしている。
https://qiita.com/pig_buhi555/items/8693a578820444f0da91
また、php.iniの内容も過去に書いた記事の内容を参考にしている。
https://qiita.com/pig_buhi555/items/48da77582b66a2e1b7c0
1. ファイルの配置
以下の配置で、ファイルを作成していきます。
/Laravel12_study
├─ /docker
| ├─ /db
| ├─ /nginx
| └─ default.conf
| └─ /php
| └─ php.ini
| └─ /Dockerfile
├─ /laravel12
└─ docker-compose.yml
2. php.ini
2025/5/26更新
php.ini
[Date]
#タイムゾーンの設定
date.timezone = "Asia/Tokyo"
[mbstring]
default_charset=EUC-JP
mbstring.language = "Japanese"
[opcache]
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
# 画面に変更が反映されるまでの時間(開発環境のため0)
; opcache.revalidate_freq=60
opcache.revalidate_freq=0
opcache.fast_shutdown=1
opcache.enable_cli=1
#パフォーマンスチューニング
zend_extension = opcache
opcache.enable_cli = 1
opcache.jit = tracing
opcache.jit_buffer_size = 128M
3. Dockerfile
FROM php:8.4-fpm
RUN apt-get update && apt-get install -y \
zlib1g-dev \
libzip-dev \
vim \
# コンテナ内でzip・pdo_mysql・opcacheの3つのPHPの拡張モジュールインストール
&& docker-php-ext-install zip pdo_mysql opcache
# カレントディレクトリ(コンテナに入るとここ)
WORKDIR /var/www/laravel12
# コンポーザーインストール
COPY --from=composer /usr/bin/composer /usr/bin/composer
# rootでインストール許可
ENV COMPOSER_ALLOW_SUPERUSER 1
ENV COMPOSER_HOME /composer
ENV PATH $PATH:/composer/vendor/bin
4. default.conf
default.conf
server {
listen 80;
# ここを変更
root /var/www/laravel12/public;
index index.php;
location / {
# ここを変更
root /var/www/laravel12/public;
index index.php;
try_files $uri $uri/ /index.php$query_string;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass app:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
5. docker-compose.yml
docker-compose.yml
version: "3"
services:
app:
container_name: app
build: ./docker
volumes:
- ./laravel12:/var/www/laravel12
- ./docker/php/php.ini:/usr/local/etc/php/php.ini
nginx:
image: nginx:1.27.5
container_name: nginx
ports:
- 8000:80
volumes:
- .:/var/www
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
working_dir: /var/www
depends_on:
- app
db:
image: mysql:8.4
container_name: db
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: database
MYSQL_USER: db-user
MYSQL_PASSWORD: db-pass
TZ: "Asia/Tokyo"
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
volumes:
- ./docker/db/data:/var/lib/mysql
ports:
- 3306:3306
# http://localhost:4040/
phpmyadmin:
image: phpmyadmin/phpmyadmin
environment:
- PMA_ARBITRARY=1
- PMA_HOST=db
- PMA_USER=root
- PMA_PASSWORD=root
# dbのサービス名
links:
- db
ports:
- 4040:80
volumes:
- ./phpmyadmin/sessions:/sessions
6. Laravel12インストール
laravel12フォルダにインストールする
composer create-project --prefer-dist laravel/laravel ./ "^12"
7. 画面
・Laravelの初期画面
http://localhost:8000/
・phpMyAdmin
http://localhost:4040/
8. コマンド
・起動
$ docker-compose up -d
・終了
$ docker-compose down
以下のコマンドでコンテナに入れます。
$ docker-compose exec app bash