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"]