docker-composeでPHPのLAMP環境作ったけど、apt-getでmysqliがインストールされなくドハマりしたのでメモ
はじめに
dockerの勉強がてら、docker-composeでPHPのLAMP環境を作成。
ただ、mysqli
パッケージがインストールされていなかったので、コンテナに入ってapt-get
でインストールを試みました。
しかし、エラーが出てインストールができない。。
まさしく、こんな感じでした 。
https://askubuntu.com/questions/1128673/cannot-install-php7-3-mysqli
パッケージ名を調べたり、色々とコマンドを試すも、全くインストールされない。
mysqliを入れたいだけなのに。。
解決方法
と数時間どハマりして、ふと、「あ、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 |