docker exec -it php56-fpm /bin/bash # 如果是docker-compose配置 # docker-compose exec <name> bash # <name> docker-compose.yml 文件内配置的services下的名称
注: php56-fpm 是php的容器名称
docker-php-source extract|delete
# 目录/usr/local/src下有php的源码包文件php.tar.xz
# extract 解压php.tar.xz文件到php目录(/usr/local/src/php)
# delete 删除php目录(/usr/local/src/php)
docker-php-ext-install <ext>
# 安装php的扩展模块,安装成功后会启用当前安装的模块
# 默认会先调用docker-php-source extract, 安装成功后会调用 docker-php-ext-enable
# eg: 安装gd模块 docker-php-ext-install gd
# 当前安装的模块目录会从/usr/local/src/php/ext内查找,如果出现找不到模块,则目录下没有扩展源文件
docker-php-ext-enable <ext>
# 启用已安装过的php的扩展模块
docker-php-ext-configure <option>
# 在手动安装编译软件时,使用./configure的<option>配置, 和docker-php-ext-install 一起使用
# eg: 手动安装php源码, ./configure --with-config-path=xxx --with-lib && make && make install
# 上面属于手动安装操作,切换成docker时:
# docker-php-ext-configure --with-config-path=xxx --with-lib && docker-php-ext-install gd
# 安装gd模块
docker-php-ext-install gd
错误:
Cannot find config.m4.
Make sure that you run '/usr/local/bin/phpize' in the top level source directory of the module解决方案: 检查模块目录(/usr/src/php/ext/gd)下没有config.m4文件
# 查看目录内如果存在 config0.m4文件, 可以拷贝一份 cp config0.m4 config.m4
错误:
configure: error: png.h not found.
configure: error: jpeglib.h not found.
解决方案: 安装gd模块时,需要先安装其他依赖
apt-get update apt-get upgrade apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libmcrypt-dev libpng-dev
错误:
configure: error: Cannot find php-config. Please use --with-php-config=PATH
解决方案:未找到安装的php-config目录,可以使用命令查找目录
find /usr -name php-config # find <path> <option|-name按文件名称搜索> <value>
# 手动编译安装gd模块
apt-get update # 更新源
apt-get upgrade # 升级源
# 安装gd模块,需要先安装依赖
apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libmcrypt-dev libpng-dev
cd /usr/src/php/ext/gd # 切换到扩展模块目录下
phpize # 检查编译环境config.m4文件, 并生成configure文件
# 或 /use/local/bin/phpize
./configure --with-php-config=/usr/local/bin/php-config --with-png-dir --with-freetype-dir --with-jpeg-dir --with-gd
make && make install
# 编译成功后会生成gd.so 在Installing shared extensions目录下
# Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-20131226/
# Installing header files: /usr/local/include/php/
# 需要修改php.ini文件
# 设置模块加载的目录
# extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20131226"
# 启用加载模块
# extension=gd.so
错误:
Build complete.
Don't forget to run 'make test'.当前错误可以忽略