Docker の phpMyAdmin 周りを弄る

phpMyAdmin の Docker 公式イメージで、使いやすいように何ヶ所か手を入れてみました。

権限付与

phpMyAdmin 用の管理者ユーザを作成した際に GRANT 権限がなかったので付け足し。

複数のDBを用意して個別のユーザを作ったりすると GRANT がないと他ユーザに権限付与できないので。

workspace/entrypoint_db.sh

-    sudo mysql -u root -p${DB_INIT_PASSWORD} --connect-expired-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '${2}'; CREATE USER '${3}'@'%' IDENTIFIED BY '${4}'; GRANT ALL ON *.* TO 'admin'@'%'; FLUSH PRIVILEGES;"
+    sudo mysql -u root -p${DB_INIT_PASSWORD} --connect-expired-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '${2}'; CREATE USER '${3}'@'%' IDENTIFIED BY '${4}'; GRANT ALL ON *.* TO 'admin'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;"

エントリポイントでユーザ作成時に WITH GRANT OPTION を付けました。

phpmyadmin-misc.ini 追加

デフォルトではイメージの中にある phpMyAdmin 用の phpmyadmin-misc.ini をホストと共有し、設定を編集できるようにします。

docker-compose.yml

  # 略
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    labels:
      lamp.ambergrease.yacht: "Ambergrease phpMyAdmin"
    volumes:
      # sessions
      - ./phpmyadmin/sessions:/sessions
      # 次の一行を追加
      - ./phpmyadmin/conf/phpmyadmin-misc.ini:/usr/local/etc/php/conf.d/phpmyadmin-misc.ini
    # 略

phpmyadmin-misc.ini

allow_url_fopen = Off
max_execution_time = 600
memory_limit = 64M
post_max_size = 64M
upload_max_filesize = 64M

SQL文アップロード時のファイルサイズ制限の上限値とメモリ使用量の上限値の上昇が設定のメインです。

これでカスタマイズや検証環境の構築がやりやすくなりました。

参考

phpMyAdmin用ユーザにGRANT付与

WITH GRANT OPTION を付ける。

Docker の phpMyAdmin のファイルアップロード容量を増加させる

ちなみにWebサーバ側からDBサーバにアクセスする際のホスト名はdocker-compose.ymlservicesの名前で良い。

この記事を書いた人

アルム=バンド

フロントエンド・バックエンド・サーバエンジニア。LAMPやNodeからWP、Gulpを使ってejs,Scss,JSのコーディングまで一通り。たまにRasPiで遊んだり、趣味で開発したり。