Entwicklungsumgebung für Symfony auf Oracle VM mit Debian und Windows als Host, Teil 3

Nun kommen wir Symfony einen Schritt näher. Da Symfony zunächst einmal eine große Sammlung verschiedenster PHP-Dateien ist, benötigen wir die Anwendung composer. Diese hilft uns – hier und im Weiteren – verschiedene PHP-Anwendungen zu installieren. Vorher müssen noch einige zusätzliche Befehle installiert werden. Wir gehen wie folgt vor:

sudo apt update # Linux-Pakete auf den neuesten Stand bringen
sudo apt install wget php-cli php-zip unzip php-xml # was sonst noch gebraucht wird
cd ~
wget -O composer-setup.php https://getcomposer.org/installer
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
sudo composer self-update # composer selbst auf den neusten Stand bringen
composer --version # die aktuelle Versionsnummer herausgeben
rm composer-setup.php # kann gelöscht werden

PHP 8 installieren

Aktuell wird PHP 7.1 oder höher benötigt, um Symfony zu nutzen. Wir installieren also gleich PHP 8. Ich folge dieser Anleitung: https://computingforgeeks.com/how-to-install-php-on-debian-linux/

sudo apt update
sudo apt -y upgrade
sudo reboot # falls es Kernel-Upgrades gab
sudo apt install -y lsb-release ca-certificates apt-transport-https software-properties-common gnupg2
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/sury-php.list
wget -qO - https://packages.sury.org/php/apt.gpg | sudo apt-key add -
sudo apt update
sudo apt install php8.0
sudo update-alternatives --set php /usr/bin/php8.0 #  PHP 8 als Default PHP Version aktivieren
sudo apt install php8.0-{mysql,cli,common,imap,ldap,xml,fpm,curl,mbstring,zip}
sudo apt install php8.0-intl
sudo apt install php8.0-xsl
sudo apt install php8.0-amqp
sudo apt install php8.0-gd
php -v # PHP-Version ausgeben
php -m # zeigt die erfolgreich installierten Module an

So, jetzt geht es ans Eingemachte. Wir erstellen unser erstes Symfony-Projekt. Es erhält den Namen testproject. Wenn im Laufe des Procederes die Frage gestellt wird, ob man für Docker eine Konfiguration anlegen möchte, so kann man das getrost verneinen.

cd /var/www/html # hier wird installiert
composer create-project symfony/website-skeleton testproject

Wir rufen im Browser folgende Adresse auf: http://masch3/testproject/public/

Das ist doch schonmal ein schöner Erfolg. Werfen wir mal einen Blick in das von composer erzeugte Verzeichnis:

Im Browser sieht das Verzeichnis folgendermaßen aus:

Entwicklungsstudio VSCodium

Natürlich könnte man jetzt auch mit einem simplen Text-Editor arbeiten. Aber das wäre bei einem komplexen Framework wie Symfony so, als würde man versuchen, mit den Füßen einen Faden in ein Nadelöhr einzufädeln: möglich, aber sehr mühselig.

Daher installieren wir uns auf unserem Windows-Rechner den von mir favorisierten Editor VSCodium. VSCodium ist die OpenSource Alternative zu Visual Studio Code von Microsoft und ähnelt diesem komplett, bis auf die Tatsache, dass keine Nutzungsdaten an Microsoft sendet.

Für meine Windows-Version nutze ich: https://github.com/VSCodium/vscodium/releases/download/1.63.2/VSCodium-x64-1.63.2.msi

VSCodium nach dem ersten Start

Wenn wir im Editor nun auf unser Projekt-Verzeichnis S:\html\testproject zugreifen (File→Open Folder …), werden wir mit einer kleinen Sicherheitsabfrage konfrontiert, die wir getrost bejahen können, solange nur wir mit dieser Entwicklungsumgebung arbeiten.

Danach sieht es im Editor so aus:

Es gibt einige Erweiterungen (Extensions) für VSCodium, die wir uns noch installieren sollten. Das geht ganz einfacher über den eingebauten Extension Marktplatz.

Folgende Erweiterungen werden benötigt:

  • PHP Intelephense
  • Twig Language 2
  • Symfony for VSCode

Nun möchte ich noch das Paket profiler installieren, dieses bietet umfangreiche, unverzichtbare Debug-Werkzeuge, die direkt vom Browser aufgerufen werden können. Dazu wechseln wir auf die Konsole unserer Maschine und geben Folgendes ein:

cd /var/www/html/testproject # Wichtig, da profiler für jedes Symfony-Projekt extra installiert werden muss
composer require --dev symfony/profiler-pack

Pfad-Probleme mit Apache

Leider kann es passieren, dass der Apache-Webserver für die Nutzung von Symfony nicht optimal installiert ist – zumindest ist das bei Debian und Ubuntu der Fall. Dort kann es passieren, dass die Pfade in der URL nicht korrekt erkannt werden.

Um diesem Problem zu begegnen müssen wir die Apache-Konfigurationsdatei /etc/apache2/apache2.conf bearbeiten.

sudo nano /etc/apache2/apache2.conf

Wir suchen nach folgenden Zeilen:

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

und ersetzen AllowOverride None durch AllowOverride All.

So sollte der Abschnitt jetzt aussehen:

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

Jetzt müssen noch folgende Befehle ausgeführt werden:

sudo a2enmod rewrite
sudo systemctl restart apache2

Und anschließend noch für jedes Symfony-Projekt einzel:

cd /var/www/html/testproject
composer require symfony/apache-pack

Jetzt haben wir auf der Startseite unten links den Profiler aktiviert.

Nun steht den ersten aktiven Schritten in Symfony nichts mehr im Wege. Ich würde aber noch empfehlen, eine vernünftige Server-Konfigurationsumgebung, wie bspw. Webmin zu installieren. Ich beschreibe das in meinem Beitrag: Webmin für Debian installieren.

Was noch fehlt

Um vernünftig mit Symfony arbeiten zu können, braucht es das maker bundle. Mit dem maker bundle kann man in Dialogform einzelne unverzichtbare Programmteile und Klassen, wie Controller, Datenbank-Objekte oder Zugriffskomponenten installieren. Würde man das von Hand per Copy&Paste machen wollen, wäre der Sinn und Zweck eines Frameworks maßgeblich verfehlt. Installiert wird es über die CLI für Symfony.

echo 'deb [trusted=yes] https://repo.symfony.com/apt/ /' | sudo tee /etc/apt/sources.list.d/symfony-cli.list
sudo apt update
sudo apt install symfony-cli
symfony console list make # eine Testübersicht der einzelnen make-Kommandos

Nun kann man mit symfony console make:controller den ersten Controller anlegen.

Ein Gedanke zu „Entwicklungsumgebung für Symfony auf Oracle VM mit Debian und Windows als Host, Teil 3

  1. Pingback: Entwicklungsumgebung für Symfony auf Oracle VM mit Debian und Windows als Host, Teil 2 - 1manfactory.com - Blog of Jürgen Schulze

Kommentare sind geschlossen.