Итак, я запускаю веб-приложение в Docker-контейнере.Я создаю образы и контейнеры с помощью команды 'docker-compose up'.Всякий раз, когда я пытаюсь получить доступ к веб-странице и нажимаю «CTRL + U», я получаю следующую ошибку:
'Неустранимая ошибка: ошибка Uncaught: класс «mysqli» не найден в / var / www / html / mysql.php: 7 трассировки стека: # 0 {main} выбрасывается в /var/www/html/mysql.php в строке 7 '
, и когда я использую PDO, я получаю следующую ошибку: «Соединение не удалось: не удалосьнайти драйвер '.
У меня есть следующая структура карты
dockerized-lamp (Directory)
->docker-compose.yml (File)
->DocumentRoot (Directory)
->PHP files
->php-apache (Directory)
->DockerFile
Мой файл Yml содержит:
version: '3'
services:
php-apache:
image: php:7.2.1-apache
container_name: phpapache
ports:
- 80:80
volumes:
- ./DocumentRoot:/var/www/html:z
links:
- 'mariadb'
mariadb:
image: mariadb:10.1
container_name: mariadb
volumes:
- mariadb:/var/lib/mysql
environment:
TZ: "Europe/Brussel"
MYSQL_ALLOW_EMPTY_PASSWORD: "no"
MYSQL_ROOT_PASSWORD: "password"
MYSQL_USER: 'user'
MYSQL_PASSWORD: 'password'
MYSQL_DATABASE: 'db'
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin
environment:
- PMA_ARBITRARY=1
- PMA_HOST=mariadb
restart: always
ports:
- 8080:80
volumes:
- /sessions
links:
- mariadb
volumes:
mariadb:
И мой файл DockerFile содержит:
FROM php:7.2.1-apache
RUN docker-php-ext-install mysqli pdo pdo_mysql mysql
И мой файл PHP, чтобы попытаться подключиться к базе данных:
<?php
$servername = "server";
$username = "root";
$password = "password";
// Create connection
$conn = new mysqli($servername, $username, $password);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>
И мой файл PHP PDO:
<?php
$servername = "localhost";
$username = "root";
$password = "password";
try {
$conn = new PDO("mysql:host=$servername;dbname=myDB", $username,
$password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
?>
Я пытаюсь запустить их на сервере Ubuntu 18.0.x и Debian Stretch.