LoginSignup
0
0

More than 1 year has passed since last update.

dockerでphp, mysql環境作成時のはまりポイント

Last updated at Posted at 2022-05-12

apache2 で mod_rewriteを有効に

  • .htaccessでmod_rewriteを利用しようとしたら有効になっていなかった。
# 以下コマンドで読み込まれているモジュール一覧を確認できる。
apache2ctl -M

/etc/apache2/mods-available/rewrite.load をコピーしてきて
/etc/apache2/mods-enabled/rewrite.load に置けば動く。

php用のpdo mysqlライブラリの生成

# 生成
docker-php-ext-install pdo_mysql

# 以下にpdo_mysql.soが生成されている。(php 5.6の場合)
ls /usr/local/lib/php/extensions/no-debug-non-zts-20131226/

php.ini

# error_logをdocker logコマンドで確認できるように
log_errors = On
error_log = /dev/stderr
error_reporting = E_ALL

# timezone
date.timezone = "Asia/Tokyo"

# extension
extension=pdo_mysql.so

mysql コマンドで文字コード指定

mysql --default-character-set=utf8 -uroot -proot

mysqlのクエリログを出力する

show variables like 'general_log%';

set global general_log = on;

起動方法

docker-compose.yml
version: '3'
services:

  app:
    image: php:5.6-apache
    volumes:
      - ./www:/var/www/html
      - ./files/rewrite.load:/etc/apache2/mods-enabled/rewrite.load
      - ./files/php.ini:/usr/local/etc/php/php.ini
      - ./files/000-default.conf:/etc/apache2/sites-available/000-default.conf
      - ./files/no-debug-non-zts-20131226/:/usr/local/lib/php/extensions/no-debug-non-zts-20131226/
    ports:
      - 80:80

  mysql:
    image: mysql
    command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci
    environment:
      - MYSQL_ROOT_PASSWORD=root
    ports:
      - 3306:3306
    volumes:
      - ./mysql:/var/lib/mysql

postgresql用

  • phpコンテナから以下実施
apt install postgresql-server-dev-all

docker-php-ext-install pdo_pgsql

tar czf /pdo_pgsql.tar.gz \
  /usr/src/php/ext/pdo_pgsql/ \
  /usr/local/etc/php/conf.d/docker-php-ext-pdo_pgsql.ini \
  /usr/lib/x86_64-linux-gnu/libpq.so.5 \
  /usr/lib/x86_64-linux-gnu/libpq.so.5.9 \

なお /usr/local/etc/php/conf.d/docker-php-ext-pdo_pgsql.ini には
extension=pdo_pgsql.so が記述されている。

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