LoginSignup
3
0

【Docker】PHP(Apache上で動かす)環境を作ってみる

Posted at

Dockerの勉強始めた経緯

で、色んなプロジェクトをやってると、
同じ言語やツールでもバージョンが違うとかで、
環境変数を変えたりツールを複数インストールしたりなどで、
PC内がゴチャゴチャしちゃうときってあるよね。
※片付けられない大人なので

とりあえずPHP環境をDocker化してみる

これまでXAMPP入れてとりあえずで作業してたけど、プロジェクト毎にPHPのバージョンが違ったり、confの設定が違ったり、そもそも本番環境はLinuxなことが多かったりで、Windowsで開発してたりするとなんか違う部分が多いので、当初Hyper-Vで仮想環境作ってとかやってたんだけどISOファイル落として設定してとかっていうのがめんどくさくなったので、Docker流行ってるみたいだし使ってみるかってなったのが経緯。

とりあえずcompose.yamlを作ってみる

フォルダ構成

root/
 ├compose.yaml
 ├docker/(他にもNodeとかDBとか入れることを考慮して分けるため)
 │ ├server/
 │ │ ├Dockerfile
 │ │ ├conf/(php.iniやhttpd.confとか入れる用)
 │ │ ├src/
 │ │ │ ├html/(ここに画面系src)
 │ │ │ ├logic/(ここにロジック系src)
 │ │ │ │ ├composer.json

設定ファイル

compose.yaml
services:
  apache-php:
    build:
      context: ./docker/server
    ports:
      - "80:80"
    volumes:
      - ./docker/server/src/html:/var/www/html
      - ./docker/server/src/logic:/var/www/logic
      - app_vendor:/var/www/logic/vendor(composerのフォルダはvolumeに保持)
    networks:
      - default
volumes:
  app_vendor:
Dockerfile
FROM php:8.1.14-apache
WORKDIR /var/www/html

RUN echo "ServerName localhost" | tee /etc/apache2/conf-available/fqdn.conf
RUN a2enconf fqdn

# apt-get
RUN apt-get update
RUN apt-get install -y unzip # 入れたいものがあったらここに書く

# ミドルウェアのインストール
ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/
RUN chmod +x /usr/local/bin/install-php-extensions
RUN install-php-extensions zip # 入れたいものがあったらここに書く

# composerのインストール(multi-stage builds)
COPY --from=composer:2.7.1 /usr/bin/composer /usr/bin/composer

# コンポーザーでライブラリを導入
# Rootでcomposer installできるように、ここでこの設定を入れておく
ENV COMPOSER_ALLOW_SUPERUSER 1
ENV COMPOSER_NO_INTERACTION 1
RUN cd /var/www/logic && \
    composer install

まとめ

phpに関してはバブちゃんで構成とかわからんので、
とりあえず業務ロジック系をapacheの公開ディレクトリ以外に配置してみた。
ホントは画面をNode(ReactやVueとか)で作って、PHPはAPI用途で使おうかと考えてたけど、1回で全部書くとネタが尽きそうなので、一旦コレでおしまい。

定期更新を頑張る!

アカウント作った当初(2021年1月1日)「一年の計は元旦にあり」と毎日更新しようとした矢先に、安定の正月の暴飲暴食で更新が滞り、そこからやる気スイッチが入ることなく今日(2024年3月1日)まで放置しすぎてた。。。

そんな中、会社の方から「定期的に記事書いてみない?(ニッコリ」って御達しがきたので、頑張ってちょくちょく更新していこうかと言う意思表明

3
0
2

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
3
0