Site icon bintorosoft.com

Composer auf Linux: Setup für PHP-Projekte

Dissident social justice crusaders doing online activism, wearing anonymous masks and filming video in underground bunker, blackmailing government after stealing secret military documents

Composer ist der Standard-Paketmanager für PHP-Projekte und erleichtert die Verwaltung von Abhängigkeiten, Bibliotheken und Frameworks. Auf Linux-Systemen ermöglicht Composer eine zentrale Installation, projektbasierte Konfigurationen und einfache Updates von PHP-Paketen. In diesem Leitfaden lernen Einsteiger, IT-Studierende und Junior Network Engineers, wie Composer installiert, eingerichtet und effizient für PHP-Projekte genutzt wird.

Voraussetzungen

Composer global installieren

Die globale Installation ermöglicht die Nutzung von Composer systemweit.

# Update der Paketquellen
sudo apt update       # Debian/Ubuntu
sudo yum update       # CentOS/RHEL

# PHP CLI prüfen
php -v

# Composer herunterladen und prüfen
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '$(curl -sS https://composer.github.io/installer.sig)') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

# Composer installieren
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

# Version prüfen
composer --version

Projektbasiertes Setup

Composer kann pro Projekt installiert werden, um unterschiedliche Abhängigkeiten isoliert zu halten.

cd /var/www/meinprojekt
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
mv composer.phar composer
./composer --version

Composer-Projekt initialisieren

Mit composer init wird eine composer.json Datei erzeugt, die die Abhängigkeiten definiert.

cd /var/www/meinprojekt
composer init
# Name, Version, Abhängigkeiten, Lizenz etc. werden abgefragt

Abhängigkeiten installieren

Neue Pakete können über composer require hinzugefügt werden.

composer require monolog/monolog
# Installiert Monolog und aktualisiert composer.json und composer.lock

Composer Update und Autoload

Abhängigkeiten regelmäßig aktualisieren und Autoload-Dateien generieren.

composer update
composer dump-autoload -o

Composer und PHP-FPM Integration

Bei Webservern mit PHP-FPM sollten Projektrechte korrekt gesetzt werden.

sudo chown -R www-data:www-data /var/www/meinprojekt
sudo find /var/www/meinprojekt -type d -exec chmod 755 {} ;
sudo find /var/www/meinprojekt -type f -exec chmod 644 {} ;

Composer Scripts und Workflows

Composer erlaubt das Definieren von Skripten für automatisierte Aufgaben wie Tests oder Deployment.

{ 
    "scripts": {
        "post-install-cmd": [
            "php artisan migrate",
            "php artisan cache:clear"
        ]
    }
}

Security-Einstellungen

Composer sollte unter sicheren User-Rechten laufen, keine globalen Root-Pakete installieren und SSL für Downloads erzwingen.

composer config --global secure-http true
composer global config --auth github-oauth.github.com 

Netzwerk und Subnetze

In Multi-Server-Setups sollten IP-Restriktionen und Subnetze sauber definiert werden, um Composer-Downloads und Webzugriffe abzusichern.

IPv4 Subnetz Beispiel

<math>
Server-IP = 192.168.200.10/24
Subnetzadresse = 192.168.200.10 & 255.255.255.0 = 192.168.200.0
Broadcastadresse = 192.168.200.0 | ~255.255.255.0 = 192.168.200.255
</math>

IPv6 Subnetz Beispiel

<math>
Server-IP = 2001:db8:abcd:200::10/64
Subnetzadresse = 2001:db8:abcd:200:: & ffff:ffff:ffff:ffff:: = 2001:db8:abcd:200::0
Broadcastadresse = 2001:db8:abcd:200:ffff:ffff:ffff:ffff
</math>

Best Practices

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Exit mobile version