我正在學習Docker,我對它仍然很陌生。我試圖讓PHP 7 FPM,Nginx的和MariaDB的共同努力(我使用PHP 7 FPM的this版本 ,因爲它配備了庫MySQLi已安裝的),但我收到以下錯誤:「錯誤:mysqli_connect()沒有這樣的文件或目錄」。 PHP 7 FPM,MariaDB,Nginx,Docker
Warning: mysqli_connect(): (HY000/2002): No such file or directory in /usr/share/nginx/html/index.php on line 4
Error: Unable to connect to MySQL. Debugging errno: 2002 Debugging error: No such file or directory
我的index.php看起來是這樣的:
<?php
header('Content-Type: application/json');
$link = mysqli_connect("localhost", "admin", "admin", "admin");
if (!$link) {
echo "Error: Unable to connect to MySQL." . PHP_EOL;
echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
exit;
}
echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL;
echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL;
mysqli_close($link);
和我Dockerfile看起來是這樣的:
version: '2'
services:
nginx:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./nginx/site.conf:/etc/nginx/conf.d/default.conf
- ./logs/nginx-error.log:/var/log/nginx/error.log
- ./logs/nginx-access.log:/var/log/nginx/access.log
- ./public:/usr/share/nginx/html
links:
- php:php
php:
image: danieldent/php-7-fpm
volumes:
- ./public:/usr/share/nginx/html
- ./logs/log.conf:/usr/local/etc/php-fpm.d/zz-log.conf
- ./PHP/php.ini:/etc/php/7.0/fpm/php.ini
- ./PHP/php.ini:/usr/local/etc/php/conf.d/php.ini
links:
- mariadb:mysqlip
mariadb:
image: mariadb:latest
environment:
MYSQL_ROOT_PASSWORD: pw
stdin_open: true
tty: true
ports:
- 3306:3306/tcp
labels:
io.rancher.container.pull_image: always
volumes:
- ./database:/var/lib/mysql
phpmyadmin:
image: phpmyadmin/phpmyadmin
links:
- mariadb:db
的php_mysqli.dll擴展名也enabeled在我的PHP .ini文件。
我再次對碼頭工人仍然很陌生,但真的想得到這個工作,謝謝你的任何建議。
這並不是說'mysqli_'函數缺失。它說它無法連接到數據庫服務器'無法連接到MySQL' – Machavity
你有沒有想過我有同樣的問題? – mtpultz