使用docker部署php环境,部署好以后,php需要新增一些扩展模块的支持怎么办呢,以前在本地编译php的时候我们是用phpize来进行追加编译,然后将新编译的.so文件加到php.ini文件内的extension这里
docker部署的php环境比较特殊,需要用到docker-php-ext-install这个程序,整个用起来比较简单
首先我们登陆容器内部
docker exex -it lnmp-php bash cd /usr/local/bin
那么我们添加pdo_mysql模块命令就是
./docker-php-ext-install pdo_mysql
这样就安装好了,不需要你去php.ini这个配置文件中去配置
同时有些模块我们还需要配置依赖项,命令是docker-php-ext-configure,般都是需要跟 docker-php-ext-install搭配使用的
docker-php-ext-install -j$(nproc) iconv mcrypt
如果安装的扩展需要自定义配置时
docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ docker-php-ext-install -j$(nproc) gd
除了上述docker-php-ext-install命令还有一个pecl命令
通过pecl安装的扩展是需要docker-php-ext-enable来启用这个扩展,同样也不需要你去php.ini这个配置文件中去配置
docker-php-ext-install可以安装有限的扩展,可以通过docker-php-ext-install --help查看available的扩展。目前可供docker-php-ext-install安装的扩展有
bcmath bz2 calendar ctype curl dba dom enchant exif fileinfo filter ftp gd gettext gmp hash iconv imap interbase intl json ldap mbstring 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 sodium spl standard sysvmsg sysvsem sysvshm tidy tokenizer wddx xml xmlreader xmlrpc xmlwriter xsl zend_test zip