LoginSignup
14
9

More than 3 years have passed since last update.

docker-composeでPHPのLAMP環境作ったけど、apt-getでmysqliがインストールされなくドハマりしたのでメモ

Last updated at Posted at 2019-07-13

はじめに

dockerの勉強がてら、docker-composeでPHPのLAMP環境を作成。

ただ、mysqliパッケージがインストールされていなかったので、コンテナに入ってapt-getでインストールを試みました。

しかし、エラーが出てインストールができない。。

まさしく、こんな感じでした 。
https://askubuntu.com/questions/1128673/cannot-install-php7-3-mysqli

パッケージ名を調べたり、色々とコマンドを試すも、全くインストールされない。
mysqliを入れたいだけなのに。。

解決方法

と数時間どハマりして、ふと、「あ、Dockerfileを修正したら。。」ということに気がついたので修正。

Dockerfile
FROM php:7.2-fpm

# install composer
RUN cd /usr/bin && curl -s http://getcomposer.org/installer | php && ln -s /usr/bin/composer.phar /usr/bin/composer
RUN apt-get update \
&& apt-get install -y \
git \
zip \
unzip \
vim

RUN apt-get update \
    && apt-get install -y libpq-dev \
    && docker-php-ext-install pdo_mysql pdo_pgsql mysqli

WORKDIR /var/www/html

docker-php-ext-installでPHPの拡張モジュールを指定できるよう。

mysqliを追加してみた。

Dockerfileの変更を反映

docker-compose up -d --build

Dockerfileの変更を反映させるには--buildをつける。

無事、インストール完了。

念の為、インストールされたか確認

コンテナに入って

docker exec -it app bash

確認

php -r "phpinfo();" | grep mysqli

出力結果

mysqli
mysqli.allow_local_infile => Off => Off
mysqli.allow_persistent => On => On
mysqli.default_host => no value => no value
mysqli.default_port => 3306 => 3306
mysqli.default_pw => no value => no value
mysqli.default_socket => no value => no value
mysqli.default_user => no value => no value
mysqli.max_links => Unlimited => Unlimited
mysqli.max_persistent => Unlimited => Unlimited
mysqli.reconnect => Off => Off
mysqli.rollback_on_cached_plink => Off => Off
API Extensions => mysqli,pdo_mysql

無事、インストールされたことが確認できました〜

ちなみに指定できるExtensionのリストは下記
https://gist.github.com/chronon/95911d21928cff786e306c23e7d1d3f3

| bcmath |
|:--|
| bz2 |
| calendar |
| ctype |
| curl |
| dba |
| dom |
| enchant |
| exif |
| fileinfo |
| filter |
| ftp |
| gd |
| gettext |
| gmp |
| hash |
| iconv |
| imap |
| interbase |
| intl |
| json |
| ldap |
| mbstring |
| mcrypt |
| mysqli |
| oci8 |
| odbc |
| opcache |
| pcntl |
| pdo |
| pdo_dblib |
| pdo_firebird |
| pdo_mysql |
| pdo_oci |
| pdo_odbc |
| pdo_pgsql |
| pdo_sqlite |
| pgsql |
| phar |
| posix |
| pspell |
| readline |
| recode |
| reflection |
| session |
| shmop |
| simplexml |
| snmp |
| soap |
| sockets |
| spl |
| standard |
| sysvmsg |
| sysvsem |
| sysvshm |
| tidy |
| tokenizer |
| wddx |
| xml |
| xmlreader |
| xmlrpc |
| xmlwriter |
| xsl |
| zip |
14
9
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
14
9