Ich benutze Docker, um meine dev-Umgebung, eine sehr einfache env, wo alles, was ich habe, ist nginx und php-fpm.Docker php eingerichtet Installation von PDO-Erweiterung
folgende So Docker Docks ich eine Docker-compose.yml erstellt haben:
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./code:/code
- ./site.conf:/etc/nginx/conf.d/site.conf
links:
- php
php: Bild: php: 7-fpm Bände: - ./code:/code
Also was passiert hier, ich nginx Bild und pgp-fpm Bild und verlinke sie.
ich habe auch eine site.conf Datei:
server {
index index.php;
server_name php-docker.local;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /code;
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
So, hier ist die ganze Server Zeug.
mit dieser Einrichtung habe ich phpinfo()
erfolgreich ausgeführt. Wenn ich jedoch meinen App-Code eingegeben habe, bekomme ich einen Fehler, der sich über Erweiterungen von pdo pdo_mysql beklagt. Also habe ich mehr recherchiert und herausgefunden, dass ich eine Dockerfile brauche.
Ich habe eine Docker-Datei und und im Inneren dieser Befehle hinzugefügt:
FROM php:7
RUN docker-php-ext-install pdo pdo_mysql
Natürlich funktioniert das nicht, ich meine, wenn dies die Erweiterungen nicht installieren und wie funktioniert mein php-fpm supoose diese zu sehen Erweiterungen ...?
Haben Sie in der Dokumentation auf der PHP-Repository in Dockerhub sehen: https: // Hub .docker.com/_/php /? Ich habe das mit der Apache-Version gemacht, nicht fpm. Mit der Apache-Version erstellen Sie eine Docker-Datei und installieren alle Vorab-Requests und 'RUN docker-php-ext-install pdo_mysql'. Ich nehme an, es gibt eine ähnliche Methode für FPM, siehe readme und das entsprechende Github Repo. – ldg
Haben Sie 'docker-compose build' ausgeführt, bevor Sie' docker-compose-up'd' ausführen? –