docker安装php时出现的各种问题收集

1. 使用docker pull php安装后, 安装php扩展模块

        a > 先启动docker容器后, 登入php的docker容器内

docker exec -it php56-fpm /bin/bash  

# 如果是docker-compose配置
# docker-compose exec <name> bash
# <name> docker-compose.yml 文件内配置的services下的名称

注: php56-fpm 是php的容器名称

        b> 进入php容器后, 内部提供了4个命令 :

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

2. docker安装php扩展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>

3.  手动编译php扩展包的方法:

# 手动编译安装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'.

当前错误可以忽略

猜你喜欢

转载自blog.csdn.net/u010336468/article/details/123916480