Docker-Installation von Symfony: One-Click-Bereitstellungsleitfaden
Einführung:
Symfony ist ein beliebtes PHP-Framework, das leistungsstarke Tools und Funktionen bereitstellt, um Entwicklern die Erstellung leistungsstarker, skalierbarer Webanwendungen zu erleichtern. Docker ist eine Open-Source-Containerisierungsplattform, die Anwendungen und ihre laufenden Umgebungen in einen unabhängigen, tragbaren Container packen kann, wodurch die Anwendungsbereitstellung und -verwaltung einfacher wird. In diesem Artikel erfahren Sie, wie Sie Symfony mit Docker schnell und einfach bereitstellen.
Teil Eins: Vorbereitung
Bevor wir mit der Bereitstellung von Symfony beginnen, müssen wir sicherstellen, dass Docker und Docker Compose in unserer Entwicklungsumgebung installiert wurden. Das entsprechende Installations-Tutorial finden Sie auf der offiziellen Docker-Website.
Teil 2: Erstellen einer Symfony-Anwendung
Zuerst müssen wir eine Symfony-Anwendung erstellen. Öffnen Sie das Terminal, geben Sie ein Verzeichnis ein, in dem die Anwendung gespeichert ist, und führen Sie den folgenden Befehl aus:
$ docker run --rm -v $(pwd):/app composer create-project symfony/website-skeleton my_app
Dieser Befehl erstellt eine Symfony-Anwendung mit dem Namen my_app im aktuellen Verzeichnis.
Teil 3: Konfigurieren Sie die Docker Compose-Datei
Erstellen Sie eine Datei mit dem Namen docker-compose.yml im Stammverzeichnis des Projekts und schreiben Sie den folgenden Inhalt:
version: '3' services: php: build: context: . dockerfile: docker/php/Dockerfile volumes: - .:/var/www/html nginx: image: nginx:latest ports: - 80:80 volumes: - .:/var/www/html - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf mysql: image: mysql:latest environment: MYSQL_ROOT_PASSWORD: root volumes: - db_data:/var/lib/mysql volumes: db_data:
Diese Konfigurationsdatei definiert drei Dienste: PHP, Nginx und MySQL. Der PHP-Dienst wird mithilfe einer Docker-Datei erstellt. Wir müssen ein Verzeichnis mit dem Namen docker/php im Projektstammverzeichnis erstellen, eine Docker-Datei in diesem Verzeichnis erstellen und den folgenden Inhalt schreiben:
FROM php:7.4-fpm-alpine RUN docker-php-ext-install pdo_mysql WORKDIR /var/www/html
Diese Docker-Datei definiert einen Docker-Container auf dem php:7.4-fpm-alpine-Image, mit installierter pdo_mysql-Erweiterung und eingestelltem Arbeitsverzeichnis auf /var/www/html.
Erstellen Sie eine Datei mit dem Namen default.conf im Verzeichnis docker/nginx und schreiben Sie den folgenden Inhalt:
server { listen 80; server_name localhost; root /var/www/html/public; location / { try_files $uri /index.php$is_args$args; } location ~ ^/index.php(/|$) { fastcgi_pass php:9000; fastcgi_split_path_info ^(.+.php)(/.*)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; } }
Diese Konfigurationsdatei definiert den virtuellen Nginx-Host und leitet Anforderungen an den PHP-Dienst weiter.
Teil 4: Starten Sie die Anwendung
Führen Sie den folgenden Befehl im Projektstammverzeichnis aus, um die Anwendung zu starten:
$ docker-compose up -d
Dieser Befehl startet drei Container: PHP, Nginx und MySQL und führt sie im Hintergrund aus.
Teil 5: Auf die Anwendung zugreifen
Greifen Sie im Browser auf http://localhost zu, um die Begrüßungsseite der Symfony-Anwendung anzuzeigen.
Fazit:
Durch die Verwendung von Docker können wir Symfony-Anwendungen schnell und einfach bereitstellen. Mit nur wenigen einfachen Schritten können Sie ganz einfach eine Symfony-Entwicklungsumgebung einrichten. Die Containerisierungstechnologie von Docker macht die Anwendungsbereitstellung und -verwaltung einfacher und zuverlässiger und verbessert die Entwicklungseffizienz und Anwendungsskalierbarkeit erheblich. Ich hoffe, dieser Artikel ist für alle hilfreich und wünsche Ihnen eine glückliche Symfony-Entwicklungsreise!
Das obige ist der detaillierte Inhalt vonDocker-Installation von Symfony: One-Click-Bereitstellungsanleitung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!