よくあるPHPのLAMP環境をDockerで再現しようとした時
- Dockerfile
FROM php:7.2-apache
WORKDIR /var/www/html/
RUN echo "<?php" > index.php && echo "phpinfo();" >> index.php
でDocker起動
docker build -t phptest .
docker run -it -d --name phptest2021 -p 80:80 phptest:latest
ああ、sqliteしかないのか・・
MySQLやMariaDBを使用したいので、
https://www.php.net/manual/ja/ref.pdo-mysql.php
これが使いたいんですよね・・
そんな時は
docker-php-ext-install
を使う。
- Dockerfile 書き直す。
FROM php:7.2-apache
RUN docker-php-ext-install pdo_mysql && docker-php-ext-enable pdo_mysql
WORKDIR /var/www/html/
RUN echo "<?php" > index.php && echo "phpinfo();" >> index.php
でもう一度Docker起動
docker build -t phptest .
docker run -it -d --name phptest2021 -p 80:80 phptest:latest
PDOが使用で切ることを確認。
- おまけ
docker-php-ext-install
このコマンドを知らなかったときは
https://pentan.info/php/pdo_mysql_install.html
直接上記をやろうとして時間を浪費しました。
他にも
docker-php-ext-install mysqli mbstring gd iconv
色々インストールできます。