不明なエラー:未定義の関数mysqli_connect()への呼び出し| ドッキングウィンドウ、コン

LexXy:

私はドッカーで新しいです。そして、この素晴らしい技術を学びたいと思っています。今日、私はいくつかの基本的なドッカー設定ファイルを書きました。

このコードでの引数を空に起因するエラーでなければならないmysqli_connect機能。しかし、ブラウザが別のエラーを表示します。私が知っているようにmysqli_connect機能がデフォルトでインストールされています。問題や私のミスはどこですか?どのように私はそれを修正することができますか?

ここでは詳細です...

プロジェクト構造:

- nginx
    - conf.d
        app.conf
    - log
        access.log
        error.log
- php-fpm
    Dockerfile
- www
    index.php
docker-compose.yml

ファイル:

ドッカー-compose.yml

version: '3'

services:

    nginx:
        image: nginx:latest
        container_name: nginx
        ports:
            - 80:80
        volumes:
            - ./www:/var/www
            - ./nginx/conf.d/:/etc/nginx/conf.d/
            - ./nginx/log/access.log:/var/log/nginx/access.log
            - ./nginx/log/error.log:/var/log/nginx/error.log
        links:
            - php-fpm

    php-fpm:
        depends_on:
            - mariadb
        build:
            context: .
            dockerfile: ./php-fpm/Dockerfile
        container_name: php-fpm
        environment:
            SERVICE_NAME: php-fpm
            SERVICE_TAGS: dev
        working_dir: /var/www
        volumes:
            - ./www:/var/www
        links:
            - mariadb

    mariadb:
        image: mariadb:latest
        container_name: mariadb
        ports:
            - 3306:3306
        environment:
            MYSQL_DATABASE: 90uHnIvB7C7vz6K0ALRcl
            MYSQL_ROOT_PASSWORD: 4Xf1XwuE9cubF2dbCEpGD6KfziEirewe
            SERVICE_TAGS: dev
            SERVICE_NAME: mysql
        volumes:
            - ./mariadb:/var/lib/mysql

Dockerfile

FROM php:fpm

# Update system core
RUN apt update -y && apt upgrade -y

# Start PHP-FPM
CMD ["php-fpm"]

app.conf

server {

    listen 80;
    server_name 127.0.0.1;
    root /var/www;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php-fpm:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }

    error_log /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;

}

index.phpを

<?php mysqli_connect('', '', '', '', '', ''); ?>

ブラウザでエラーが発生しました:

Fatal error: Uncaught Error: Call to undefined function mysqli_connect() in /var/www/index.php:3 Stack trace: #0 {main} thrown in /var/www/index.php on line 3

私を助けてください。

ドミトリー:

Dockerfileでは、mysqli拡張モジュールを追加する必要が:

FROM php:7.3-fpm

# Update system core

RUN apt update && apt install -y \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libpng-dev libxml2-dev libcurl4-gnutls-dev


RUN docker-php-ext-install -j$(nproc) mysqli \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) gd

# Start PHP-FPM
CMD ["php-fpm"]

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=8089&siteId=1