Hướng dẫn call to undefined function mysqli_connect docker - gọi đến hàm không xác định mysqli_connect docker

Trong mã này phải là một lỗi do các đối số trống trong hàm mysqli_connect. Nhưng trình duyệt hiển thị lỗi khác nhau. Như tôi biết hàm mysqli_connect được cài đặt theo mặc định. Vấn đề hoặc sai lầm của tôi ở đâu? Làm thế nào tôi có thể sửa nó?

Dockerfile

FROM php:fpm

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

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

index.php


Lỗi trong trình duyệt:

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

hỏi ngày 26 tháng 2 năm 2020 lúc 14:06Feb 26, 2020 at 14:06

LexxyitlexxyitLeXxyIT

Huy hiệu Huy hiệu Bạc 19411 silver badge15 bronze badges

2

Trong Dockerfile của bạn cho PHP-FPM [tôi khuyên dùng phiên bản alpine] bạn phải cài đặt tiện ích mở rộng MySQLI riêng biệt

FROM php:7-fpm-alpine

# Update system core
RUN apt update -y && apt upgrade -y
RUN docker-php-ext-install mysqli && docker-php-ext-enable mysqli

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

Đã trả lời ngày 26 tháng 2 năm 2020 lúc 14:11Feb 26, 2020 at 14:11

Jay Blanchardjay BlanchardJay Blanchard

33,8K16 Huy hiệu vàng74 Huy hiệu bạc114 Huy hiệu đồng16 gold badges74 silver badges114 bronze badges

3

Trong Dockerfile, bạn cần thêm tiện ích mở rộng 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"]

Đã trả lời ngày 26 tháng 2 năm 2020 lúc 14:23Feb 26, 2020 at 14:23

DMITRYDMITRYDmitry

3.6873 huy hiệu vàng22 Huy hiệu bạc38 Huy hiệu đồng3 gold badges22 silver badges38 bronze badges

2

  • Tôi đã thiết lập WordPress bằng cách sử dụng docker-compose. Nó ban đầu có 2 dịch vụ, - Mariadb và - WordPress.
    – mariadb and – wordpress.

    Sau đó, tôi đã thêm dịch vụ thứ 3, chứng chỉ SSL. Bây giờ tập tin YML trông giống như sau.

    services:
        #Database
        mariadb:
            image: mariadb:10.4
            volumes:
                - ./database:/var/lib/mysql
            restart: always
            environment:
                MYSQL_ROOT_PASSWORD: password
                MYSQL_DATABASE: shoppee
                MYSQL_USER: user
                MYSQL_PASSWORD: user_password
        #ssl
        ssl:
          build:
            context: ./apache2/
            dockerfile: Dockerfile
          ports:
             - '80:80'
             - '443:443'
          volumes:
            - ./:/var/www/html
            - /home/ubuntu/certs:/var/certs
            - /home/ubuntu/configs/000-default.conf:/etc/apache2/sites-enabled/000-default.conf
            - /home/ubuntu/configs/apache2.conf:/etc/apache2/apache2.conf
        #PHP
        php:
          build:
            context: .
            dockerfile: php.dockerfile
          volumes:
            - ./:/var/www/html
    volumes:
        mariadb:

    Khi tôi bắt đầu các dịch vụ, tôi đã bị lỗi,

    Fatal error: Uncaught Error: Call to undefined function mysql_connect[] in /var/www/html/wp-includes/wp-db.php:1688 Stack trace: #0 /var/www/html/wp-includes/wp-db.php[632]: wpdb->db_connect[] #1 /var/www/html/wp-includes/load.php[545]: wpdb->__construct['username_here', 'password_here', 'database_name_h...', 'mysql'] #2 /var/www/html/wp-settings.php[124]: require_wp_db[] #3 /var/www/html/wp-config.php[120]: require_once['/var/www/html/w...'] #4 /var/www/html/wp-load.php[37]: require_once['/var/www/html/w...'] #5 /var/www/html/wp-blog-header.php[13]: require_once['/var/www/html/w...'] #6 /var/www/html/index.php[17]: require['/var/www/html/w...'] #7 {main} thrown in /var/www/html/wp-includes/wp-db.php on line 1688

    Có thể làm hài lòng bất cứ ai tư vấn về điều này? Tôi đã tuyệt vọng bị mắc kẹt trên cái này.

  • 1 Câu trả lời cho câu hỏi này.

    Hi@akhtar,

    Lỗi này có thể & nbsp; xảy ra vì plugin plugin php mysqli và nbsp; bị thiếu bên trong container docker php. Để cài đặt nó, hãy sử dụng lệnh đã cho & nbsp; bên trong thùng chứa của PHP.PHP mysqli plugin” is missing inside PHP’s Docker container. To install it, use the below given command inside PHP's container.

    $ docker-php-ext-install mysqli  
    $ docker-php-ext-enable mysqli

    Hy vọng điều này sẽ giúp.

    Đã trả lời ngày 14 tháng 4 năm 2020by MD • & NBSP; 95.380 điểm Apr 14, 2020 by MD
    • 95,380 points

    Các câu hỏi liên quan trong Docker

    • Tất cả danh mục
    • Apache Kafka [84][84]
    • Apache Spark [596][596]
    • Azure [131][131]
    • Dữ liệu lớn Hadoop [1.907][1,907]
    • Blockchain [1.673][1,673]
    • C# [133][133]
    • C ++ [268][268]
    • Tư vấn nghề nghiệp [1.060][1,060]
    • Điện toán đám mây [3,391][3,391]
    • An ninh mạng & hack đạo đức [147][147]
    • Phân tích dữ liệu [1.266][1,266]
    • Cơ sở dữ liệu [853][853]
    • Khoa học dữ liệu [75][75]
    • DevOps & Agile [3.500][3,500]
    • Tiếp thị kỹ thuật số [111][111]
    • Các chủ đề về sự kiện & xu hướng [28][28]
    • IoT [Internet of Things] [387][387]
    • Java [1.208][1,208]
    • Kotlin [3][3]
    • Quản trị Linux [384][384]
    • Học máy [337][337]
    • MicroStrargety [6][6]
    • PMP [423][423]
    • Power BI [516][516]
    • Python [3.154][3,154]
    • RPA [650][650]
    • Salesforce [92][92]
    • Selenium [1.569][1,569]
    • Kiểm tra phần mềm [56][56]
    • Tableau [608][608]
    • Talend [73][73]
    • Các loại [124][124]
    • Phát triển web [2.999][2,999]
    • Hỏi chúng tôi bất cứ điều gì![66][66]
    • Những người khác [1.415][1,415]
    • Phát triển di động [146][146]

    Đăng ký nhận bản tin của chúng tôi và nhận được các khuyến nghị cá nhân hóa.

    Bạn co săn san để tạo một tai khoản?Đăng nhập.

    Bài Viết Liên Quan

    Chủ Đề