美文网首页
Docker php安装扩展步骤

Docker php安装扩展步骤

作者: 骑代码奔小康 | 来源:发表于2021-02-09 15:49 被阅读0次
    进入到php-fpm的bash界面
    docker exec -it 4c4a49e231dd /bin/bash
    
    docker-php-source

    此命令,实际上就是在PHP容器中创建一个/usr/src/php的目录,里面放了一些自带的文件而已。我们就把它当作一个从互联网中下载下来的PHP扩展源码的存放目录即可。事实上,所有PHP扩展源码扩展存放的路径: /usr/src/php/ext 里面。

    docker-php-ext-enable

    这个命令,就是用来启动 PHP扩展 的。我们使用pecl安装PHP扩展的时候,默认是没有启动这个扩展的,如果想要使用这个扩展必须要在php.ini这个配置文件中去配置一下才能使用这个PHP扩展。而 docker-php-ext-enable 这个命令则是自动给我们来启动PHP扩展的,不需要你去php.ini这个配置文件中去配置。

    1. amqp扩展安装成功以后需要手动到php.ini里面去配置  "extension=amqp.so"
    2. 使用 docker-php-ext-enable 命令的的话可以直接  # docker-php-ext-enable amqp
    

    安装redis扩展的例子:

    # 查看现有可以启动的扩展
    root@4c4a49e231dd:/var/www/html#  ls /usr/local/lib/php/extensions/no-debug-non-zts-20170718/
    amqp.so  gd.so  mysqli.so  oci8.so  opcache.so  pdo_mysql.so  pdo_oci.so  redis.so  sodium.so  zip.so
    root@4c4a49e231dd:/var/www/html# 
    
    # 查看redis 扩展是否可以启动
    root@4c4a49e231dd:/var/www/html#  php -m | grep redis
    root@4c4a49e231dd:/var/www/html# 
    
    # 启动 redis 扩展
    root@4c4a49e231dd:/var/www/html#  docker-php-ext-enable redis
    # 启动 成功
    root@4c4a49e231dd:/var/www/html#  php -m | grep redis
    redis
    root@4c4a49e231dd:/var/www/html# 
    
    #说明,php容器中默认是没有php.ini配置文件的,加载原理如下所示
    
    root@4c4a49e231dd:/var/www/html#  php -i | grep -A 5 php.ini
    Configuration File (php.ini) Path => /usr/local/etc/php
    Loaded Configuration File => (none)
    # 核心是 /usr/local/etc/php/conf.d 目录下的扩展配置文件
    Scan this dir for additional .ini files => /usr/local/etc/php/conf.d
    Additional .ini files parsed => /usr/local/etc/php/conf.d/docker-php-ext-redis.ini,
    /usr/local/etc/php/conf.d/docker-php-ext-sodium.ini
    
    root@517b9c67507a:/usr/local/etc/php#
    
    docker-php-ext-install

    这个命令,是用来安装并启动PHP扩展的。
    命令格式:
    docker-php-ext-install “源码包目录名”,例如:docker-php-ext-install redis

    注意点:

    “源码包“需要放在 /usr/src/php/ext 下
    默认情况下,PHP容器没有 /usr/src/php这个目录,需要使用 docker-php-source extract来生成。
    docker-php-ext-install 安装的扩展在安装完成后,会自动调用docker-php-ext-enable来启动安装的扩展。
    卸载扩展,直接删除/usr/local/etc/php/conf.d 对应的配置文件即可。

    # 卸载redis 扩展
    root@4c4a49e231dd:/var/www/html#  rm -rf /usr/local/etc/php/conf.d/docker-php-ext-redis.ini
    root@4c4a49e231dd:/var/www/html#  php -m 
    
    
    # 安装redis 扩展
    #PHP容器默认是没有redis扩展的。所以我们通过docker-php-ext-install安装redis扩展
    
    root@4c4a49e231dd::/# curl -L -o /tmp/reids.tar.gz https://codeload.github.com/phpredis/phpredis/tar.gz/5.0.2
    
    root@4c4a49e231dd::/# cd /tmp
    root@4c4a49e231dd::/tmp# tar -xzf reids.tar.gz
    root@4c4a49e231dd::/tmp# ls
    phpredis-5.0.2  reids.tar.gz
    root@4c4a49e231dd::/tmp# docker-php-source extract
    root@4c4a49e231dd::/tmp# mv phpredis-5.0.2 /usr/src/php/ext/phpredis
    
    #检查移过去的插件源码包是否存在
    root@4c4a49e231dd::/tmp# ls -l /usr/src/php/ext | grep redis
    drwxrwxr-x 10 root root   4096 Feb  9 05:37 phpredis
    root@4c4a49e231dd::/tmp# docker-php-ext-install phpredis
    
    # 检查redis 扩展是否已经安装上
    root@4c4a49e231dd::/tmp# php -m | grep redis
    redis
    root@4c4a49e231dd::/tmp#
    

    相关文章

      网友评论

          本文标题:Docker php安装扩展步骤

          本文链接:https://www.haomeiwen.com/subject/bkccxltx.html