专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > php

Docker 装配 PHP

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
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

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: