Docker PDO error, na čistém PHP je ale OK
- Tomáš Mynář
- Člen | 5
Zdravím,
dokázal by mě někdo, prosím nakopnout co přehlížím, ať už v kódu či na Googlu?
Jde o to, že mi Tracy vypisuje error při pokusu o přihlášení k DB, že nemůže najít PDO knihovnu, která ale nainstalována je. Pokud zkouším připojení k DB v čistém PHP (přímo v index.php) tak se ale v pořádku připojí.
Pomocí Adminera se normálně k DB dostanu.
Zkoušel jsem i nejnovější verzi MySQL, ale četl jsem, že jsou tam nějaké problémy s Dockerem, takže jsem pro jistotu na rozjetí přešel na 5.6, pak i MariaDB a stejně pořád nic.
Moc díky všem za přínosné poznámky a hlavně za váš čas!
docker-compose.yml
version: '3.8'
services:
web:
build: docker
volumes:
- ./:/var/www/html
- ./docker/apache/sites-enabled:/etc/apache2/sites-enabled
ports:
- 8080:80
environment:
# PHP_IDE_CONFIG: serverName=localhost
DOCKER_DEV: 'true'
# links:
# - database
database:
image: mysql:5.6
# restart: always
# ports:
# - 3309:3306
environment:
MYSQL_ROOT_PASSWORD: lucka
MYSQL_USER: lucka
MYSQL_PASSWORD: lucka
MYSQL_DATABASE: lucka
# volumes:
# - ./docker/mysql:/docker-entrypoint-initdb.d:cached,ro
# - ./dump:/docker-entrypoint-initdb.d
# - persistent:/var/lib/mysql
networks:
- default
adminer:
image: adminer:latest
ports:
- 8081:8080
composer:
image: composer:latest
volumes:
- ./:/app
working_dir: /app
command: composer install --ignore-platform-reqs
docker/Dockerfile
FROM php:7.2-apache
RUN a2enmod rewrite
RUN docker-php-ext-install mysqli pdo pdo_mysql
local.neon
parameters:
database:
dsn: 'database:host=database;dbname=lucka'
user: 'lucka'
password: 'lucka'
docker/apache/sites-enabled/default.conf
<VirtualHost *:80>
DocumentRoot "/var/www/html/www"
ServerName _
</VirtualHost>
Pro Docker pak
docker-compose down
docker-compose up –build -d
- Tomáš Mynář
- Člen | 5
Připojení jen přes PHP
try {
$db = new PDO('mysql:host=database;dbname=lucka', 'lucka', 'lucka');
echo "Connected!";
} catch (\PDOException $e) {
echo $e->getMessage();
}
Tracy
Nette\Database\ConnectionException could not find driver
Viz. screen co vypsala
Tracy, doufám, že stačí takto.
- Tomáš Mynář
- Člen | 5
kalatalabnik napsal(a):
Nechybí ti v dsn zmínka o MySQL?
Tak jak to máš u připojení přes čisté PHP?
Wow, jo to je přesně ono! Takový krtek zakopaný, co jsem pořád přehlížel. Díky moc! Ja si tu trhal už vlasy pomalu.