我如何使用 mysqli_conect 和 docker-compose in php
How can I use mysqli_conect with docker-compose in php
我有以下 docker-compose 脚本:
version: '3'
services:
nginx:
restart: unless-stopped
image: staticfloat/nginx-certbot
ports:
- 80:80/tcp
- 443:443/tcp
environment:
CERTBOT_EMAIL: owner@company.com
links:
- php
volumes:
- ./conf.d:/etc/nginx/user.conf.d:ro
- letsencrypt:/etc/letsencrypt
- ./workspace:/var/www/html
php:
image: php:7.4-fpm
links:
- docker-mysql
volumes:
- ./workspace:/var/www/html/
- ./php:/usr/local/etc/php/php.ini
docker-mysql:
image: mysql:5.7
container_name: docker-mysql
restart: always
environment:
- MYSQL_DATABASE=bla
- MYSQL_ROOT_PASSWORD=bla
- MYSQL_USER=bla
- MYSQL_PASSWORD=bla
ports:
- "3306:3306"
volumes:
- ./dbdata:/var/lib/mysql
我面临的问题如下:
Fatal error: Uncaught Error: Call to undefined function mysqli_connect() in ...
我该怎么做才能让 mysqli 正常工作?我已经尝试查看 Dockerhub 上的文档,但没有找到任何我理解的内容。
我也已经尝试 运行 docker-php-ext-install mysqli
在 php 容器内,但没有成功。它说模块已安装,但是当 运行ning phpinfo.
时我看不到它被激活
您可以在 PHP 的 Dockerfile 中添加 mysqli 扩展。
您需要创建 Dockerfile 并在其中使用此命令:
RUN docker-php-ext-install mysqli && docker-php-ext-enable mysqli
在您的 docker-compose.yml 中指定 PHP 的 Dockerfile(而不是“image”)
php:
build:
dockerfile: Dockerfile
当然不是完整的Dockerfile,google《Dockerfile PHP7.4 fpm示例》
我有以下 docker-compose 脚本:
version: '3'
services:
nginx:
restart: unless-stopped
image: staticfloat/nginx-certbot
ports:
- 80:80/tcp
- 443:443/tcp
environment:
CERTBOT_EMAIL: owner@company.com
links:
- php
volumes:
- ./conf.d:/etc/nginx/user.conf.d:ro
- letsencrypt:/etc/letsencrypt
- ./workspace:/var/www/html
php:
image: php:7.4-fpm
links:
- docker-mysql
volumes:
- ./workspace:/var/www/html/
- ./php:/usr/local/etc/php/php.ini
docker-mysql:
image: mysql:5.7
container_name: docker-mysql
restart: always
environment:
- MYSQL_DATABASE=bla
- MYSQL_ROOT_PASSWORD=bla
- MYSQL_USER=bla
- MYSQL_PASSWORD=bla
ports:
- "3306:3306"
volumes:
- ./dbdata:/var/lib/mysql
我面临的问题如下:
Fatal error: Uncaught Error: Call to undefined function mysqli_connect() in ...
我该怎么做才能让 mysqli 正常工作?我已经尝试查看 Dockerhub 上的文档,但没有找到任何我理解的内容。
我也已经尝试 运行 docker-php-ext-install mysqli
在 php 容器内,但没有成功。它说模块已安装,但是当 运行ning phpinfo.
您可以在 PHP 的 Dockerfile 中添加 mysqli 扩展。 您需要创建 Dockerfile 并在其中使用此命令:
RUN docker-php-ext-install mysqli && docker-php-ext-enable mysqli
在您的 docker-compose.yml 中指定 PHP 的 Dockerfile(而不是“image”)
php:
build:
dockerfile: Dockerfile
当然不是完整的Dockerfile,google《Dockerfile PHP7.4 fpm示例》