在 docker 中,使用 php 官方镜像(带 apache)并加入 mysql 插件

官方镜像说明页:

可根据自己需要,选择对应版本的 php 进行下载。

这里使用 php 7.2 + apache 服务的镜像为例:

docker pull php:7.2-apache

运行容器:

docker run -d -p 9000:80 \
-v /home/website-php-root/:/var/www/html \
--name test-php php:7.2-apache

默认情况下,apache 的根目录在 /var/www/html 下,可以向上面直接映射进去,或使用 dockerfile 制作镜像直接编译进去:

FROM php:7.2-apache
COPY src/ /var/www/html/

默认情况下,镜像内部是没有安装 pdo_mysql、mysqli 扩展的

会遇到错误:Uncaught Error: Call to undefined function mysql_connect() in /var/www/html

需要手动执行安装

# 进入容器
docker exec -it test-php /bin/bash

# 安装 mysql 扩展
cd /usr/local/bin
./docker-php-ext-install pdo_mysql
./docker-php-ext-install mysqli

重启容器后自动生效,参考自:https://blog.csdn.net/ltgsoldier1/article/details/105515347

可以搭建 PHP 测试页查看环境配置信息

<?php

    phpinfo();

    echo('hello world');

?>

将以上保存为 test.php 放在根目录下直接访问即可,可以看到 PDO 的驱动情况:

image


输了你,赢了世界又如何...
原文地址:https://www.cnblogs.com/xwgli/p/15528729.html