docker 中使用 php--apache并加入 mysql 插件
官方镜像说明页:
可根据自己需要,选择对应版本的 php 进行下载。
这里使用 php 7.4 + apache 服务的镜像为例:
docker pull php:7.4.33-apache
运行容器:
docker run --name jiuta-php-apache-7.4 -d -p 9000:80 \
-v /mnt/datadisks/docker-root/jiuta/www:/var/www/html \
--log-opt max-size=10m --log-opt max-file=3 php:7.4.33-apache
默认情况下,apache 的根目录在 /var/www/html 下,可以向上面直接映射进去
/mnt/docker-root/jiuta/www 宿主机php源代码地址 映射到容器里面的目录 /var/www/html
--name jiuta-php-apache-7.4 容器名称 jiuta-php-apache-7.4
默认情况下,镜像内部是没有安装 pdo_mysql、mysqli 扩展的
会遇到错误:Undefined class constant 'MYSQL_ATTR_INIT_COMMAND'
Uncaught Error: Call to undefined function mysql_connect() in /var/www/html
需要手动执行安装
# 进入容器
docker exec -it jiuta-php-apache-7.4 /bin/bash
# 安装 mysql 扩展
docker-php-ext-install pdo pdo_mysql
重启容器后自动生效