Eine effiziente Entwicklungsumgebung ist für die PHP-Entwicklung unerlässlich. In diesem Abschnitt stellen wir die gängigsten Stack-Lösungen vor, die alle Komponenten für die PHP-Entwicklung integrieren: Webserver, Datenbank, PHP und weitere nützliche Tools.
LAMP steht für Linux, Apache, MySQL/MariaDB und PHP. Dieser Stack ist der traditionelle Unterbau für PHP-Anwendungen und wird seit Jahrzehnten erfolgreich eingesetzt.
# Aktualisieren der Paketquellen
sudo apt update
# Installation der Komponenten
sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql
# Apache und MySQL starten
sudo systemctl start apache2
sudo systemctl start mysql
# Dienste für den Autostart konfigurieren
sudo systemctl enable apache2
sudo systemctl enable mysql
# MySQL sichern
sudo mysql_secure_installation# Installation der Komponenten
sudo dnf install httpd mariadb-server php php-mysqlnd
# Apache und MariaDB starten
sudo systemctl start httpd
sudo systemctl start mariadb
# Dienste für den Autostart konfigurieren
sudo systemctl enable httpd
sudo systemctl enable mariadb
# MariaDB sichern
sudo mysql_secure_installationWAMP steht für Windows, Apache, MySQL/MariaDB und PHP und bietet die LAMP-Funktionalität für Windows-Nutzer.
WampServer: https://www.wampserver.com/ Eine umfassende Lösung mit grafischem Interface.
XAMPP: https://www.apachefriends.org/ Funktioniert auf Windows, Linux und macOS.
Laragon: https://laragon.org/ Moderne Alternative mit zusätzlichen Features für Laravel und andere Frameworks.
Wenn Sie mehr Kontrolle benötigen, können Sie einen eigenen WAMP-Stack erstellen:
# Mit Chocolatey (Windows-Paketmanager)
choco install apache-httpd
choco install php
choco install mysql
# Apache-Konfiguration für PHP (httpd.conf)
LoadModule php_module "C:/php/php8apache2_4.dll"
AddHandler application/x-httpd-php .php
PHPIniDir "C:/php"MAMP steht für MacOS, Apache, MySQL/MariaDB und PHP und ist die bevorzugte Lösung für Apple-Nutzer.
MAMP: https://www.mamp.info/ Einfache kostenlose Version mit allen Grundfunktionen.
MAMP PRO: Kostenpflichtige Version mit zusätzlichen Features.
Docker revolutioniert die Entwicklungsumgebungen durch Container-Technologie, die eine konsistente Umgebung über alle Plattformen hinweg ermöglicht.
Hier ist ein einfaches Beispiel für eine
docker-compose.yml Datei, die einen PHP-Stack
definiert:
version: '3'
services:
# PHP-Service mit Apache
web:
image: php:8.2-apache
ports:
- "80:80"
volumes:
- ./www:/var/www/html
depends_on:
- db
networks:
- php-network
# MySQL-Datenbank
db:
image: mysql:8.0
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: myapp
MYSQL_USER: user
MYSQL_PASSWORD: password
volumes:
- mysql-data:/var/lib/mysql
networks:
- php-network
# phpMyAdmin für Datenbankverwaltung
phpmyadmin:
image: phpmyadmin/phpmyadmin
ports:
- "8080:80"
environment:
PMA_HOST: db
depends_on:
- db
networks:
- php-network
networks:
php-network:
volumes:
mysql-data:Diese Konfiguration erstellt drei Container: 1. Einen Webserver mit PHP 8.2 und Apache 2. Einen MySQL 8.0 Datenbankserver 3. Eine phpMyAdmin-Instanz zur Datenbankverwaltung
Für umfangreichere Projekte können Sie ein eigenes Dockerfile erstellen, um ein angepasstes PHP-Image zu bauen:
FROM php:8.2-apache
# Apache-Konfiguration für Rewrite-Modul
RUN a2enmod rewrite
# Installation von PHP-Erweiterungen
RUN apt-get update && apt-get install -y \
libzip-dev \
libpng-dev \
libjpeg-dev \
libfreetype6-dev \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install -j$(nproc) \
mysqli \
pdo_mysql \
zip \
gd
# Composer installieren
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
# Arbeitverzeichnis setzen
WORKDIR /var/www/html
# Apache-Server starten
CMD ["apache2-foreground"]# Im Verzeichnis mit der docker-compose.yml
docker-compose up -d
# Überprüfen der laufenden Container
docker-compose ps
# Container-Logs anzeigen
docker-compose logs -f
# Container stoppen
docker-compose down# Shell im Web-Container öffnen
docker-compose exec web bash
# PHP-Version prüfen
php -v
# Composer im Container verwenden
composer --versionFür Laravel-Projekte gibt es spezialisierte Docker-Lösungen:
Laravel Sail ist eine leichtgewichtige Docker-Umgebung speziell für Laravel:
# Neues Laravel-Projekt mit Sail erstellen
curl -s "https://laravel.build/example-app" | bash
# Ins Projektverzeichnis wechseln
cd example-app
# Docker-Container starten
./vendor/bin/sail upLaradock ist eine umfassendere Docker-Umgebung, die für verschiedene PHP-Projekte genutzt werden kann:
# Laradock klonen
git clone https://github.com/laradock/laradock.git
# Ins Verzeichnis wechseln
cd laradock
# .env erstellen
cp .env.example .env
# Container starten
docker-compose up -d nginx mysql phpmyadmin| Feature | LAMP | WAMP | MAMP | Docker |
|---|---|---|---|---|
| Betriebssystem | Linux | Windows | macOS | Alle |
| Isolation | Gering | Gering | Gering | Hoch |
| Konfigurationsaufwand | Hoch | Mittel | Niedrig | Mittel-Hoch |
| Portabilität | Niedrig | Niedrig | Niedrig | Hoch |
| Ressourcenverbrauch | Niedrig | Mittel | Mittel | Mittel-Hoch |
| Mehrere Projekte parallel | Schwierig | Schwierig | Schwierig | Einfach |
| Team-Kompatibilität | Schwierig | Schwierig | Schwierig | Einfach |