24小时在线 - 古典小说 - 文学小说 - 关于我们
您的当前位置:首页 > web开发 > PHP >

Docker 装配 PHP

来源:比特技术 编辑:比特技术网 时间:2018-04-03点击:
导读:Docker 安装 PHP 查找指定版本PHP镜像 $ docker search php:7.2.
Docker 安装 PHP

查找指定版本PHP镜像

$ docker search php:7.2.0-fpm

拉取镜像

$ docker pull php:7.2.0-fpm

运行容器

$ docker run --name docker-php-fpm -p 9000:9000 -d php:7.2.0-fpm

把配置文件复制到本地

$ cd /Users/ct/etc/docker/php7.2/php-fpm.d/

$ docker cp docker-php-fpm:/usr/local/etc/php-fpm.d/www.conf www.conf

$ cd /Users/ct/etc/docker/php7.2/

$ docker cp docker-php-fpm:/usr/src/php/php.ini-production php.ini

注意:docker-php-fpm:/usr/src/php/php.ini-production,在实例出的容器中,不一定是路径src/php,拉取的php版本镜像不同,php.ini路径有可能不同。

 

可以这样查看php.ini路径

# 先进入容器

$ docker exec -it docker-php-fpm /bin/bash

$ cd /usr/src/ && ls

# 有以下两个文件

php.tar.xz   php.tar.xz.asc

# 这里我们需要解压php.tar.xz文件,因为php.ini-production就在其中

# 先解压xz

$ xz -d php.tar.xz  

# 再解压tar

$ tar -xvf  php.tar

解压完毕后, php.ini-production便出现了,我当时的路径是/usr/src/php-7.1.9/php.ini-production。

在本地服务器修改 php.ini 的内容,设置cgi.fix_pathinfo=1

 

注意:前面关于php-fpm的一系列操作主要是为了获得配置文件,并没有挂载本地目录到容器中,所以接下来需要删除容器,重新实例一个容器出来

$ docker stop docker-php-fpm

$ docker rm docker-php-fpm

$ docker run --name docker-php-fpm -p 9000:9000 -v /Users/ct/project:/var/www/html -v /Users/ct/etc/docker/php7.2/php-fpm.d/www.conf:/usr/local/etc/php-fpm.d/www.conf -v /Users/ct/etc/docker/php7.2/php.ini:/usr/local/etc/php/php.ini -d php:7.2.0-fpm

 

常见异常:

使用docker中部署的PHP连接MySQL的时候,如果报以下异常:

"could not find driver (SQL: xxxx)"

原因:docker中部署的PHP缺少pdo_mysql扩展。

安装pdo_mysql扩展:

# 先进入容器

$ docker exec -it docker-php-fpm /bin/bash

在该镜像的/usr/local/bin目录下有一个docker-php-ext-install程序专门用来安装php扩展

运行docker-php-ext-install即可显示出能够安装的扩展,配合docker-php-ext-enable程序可以控制扩展的启动/禁用

$ cd /usr/local/bin

$ ./docker-php-ext-install pdo_mysql

来源:比特技术在线(www.byte.online),欢迎分享本文,转载请保留出处!
http://www.byte.online/a/webkaifa/PHP/2018/289836.html
责任编辑:比特技术网

    打赏

    取消

    感谢您的支持,我会继续努力的!

    扫码支持
    扫码打赏,你说多少就多少

    打开支付宝扫一扫,即可进行扫码打赏哦

    网友评论:

    Copyright © www.byte.online 比特技术在线 版权所有 粤ICP备15038486号-3
    本站所有资料来源于网络,由个人收集整理,仅限于个人学习和研究,如果侵犯您的权益请联系我们删除!
    Top