Ordnerstruktur bei D8/D9 mit Composer unterschiedlich zur .zip
am 18.05.2020 - 17:51 Uhr in
Habe D8 und D9 mit Composer auf Xampp installiert und die Verzeichnisstruktur in htdocs ist aufgeteilt in:
mein-ordnername
- web
- vendor
Lade ich beispielsweise D8 oder D9 als .zip runter, liegt -vendor im Hauptverzeichnis bei core, modules, etc. und -web ist gar nicht erst vorhanden.
Wenn ich jetzt die Installation mit D8 von Xampp auf den FTP übertragen will, muss ich den Ordner -vendor dann händisch ins Hauptverzeichnis schieben und den Ordner -web (also die Dateien/Ordner, die jetzt in -web liegen) ebenso?
Beide Installationen laufen auf Xampp einwandfrei, nur wie es jetzt weiter geht, wenn die Seite online gehen soll, ist mir unklar. Wäre auch klasse wenn mir jemand erklären könnte warum sich die Verzeichnisstruktur unterscheidet, je nachdem ob ich Composer einsetze oder eine .zip entpacke.
Composer will ich nur local einsetzen, nicht auf dem FTP Server...
Grüße Jenna (Beitrag ergänzt)
- Anmelden oder Registrieren um Kommentare zu schreiben
Hallo Jenna, die composer
am 19.05.2020 - 08:58 Uhr
Hallo Jenna,
die composer Installation, die im Übrigen empfohlen wird, hat mehrere Unterschiede. Zum einen der Ordner web mit der Drupal Installation. Dieser Ordner (web) wird zum DocumentRoot für die Domain. Damit hat der Apache keinen Durchgriff auf die Software im Vendor-Verzeichnis. Außerdem gibt es auf der oberen Ebene eine ,env-Datei, die die Zugangsdaten zur Datenbank aufnehmen kann. Damit wären in der settings.php nur noch Variablen ohne Aussagekraft. Das ist durchaus ein Sicherheitsfeature. Daneben werden Module, die Du über composer installierst, in web/module/contrib abgelegt. Themes entsprechend in web/themes/contrib abgelegt. EIn verändertes oder selbstgestricktes Theme käme dann nach web/themes/custom und bei Modulen ebenso. Wenn du den Update von Drupal und/oder Modulen mittels composer durchführst, werden die Inhalte in den custom-Ordnern nicht angetastet. Leider ist es bei Drupal 9 (und damit auch bei Drupal 9) so, daß sich einige Module nur noch über composer installieren lassen.
Ich selbst mache meine Installation mit composer auch nur lokal. Composer benötigt zum Aufbau seiner Abhänigkeiten-Tabelle soviel PHP-Memory, daß das bei einem Shared-Hosting nicht gegeben ist. Anschließen packe ich die Installation in einen Tar-File, den ich mit FTP zum Provider schaffe und dort auspacke. Datenbank exportieren und Importieren und die Erstinstallation ist fertig. Das veränderte DocumentRoot nicht vergessen.
Ein weiteres Feature, das ich bei composer schätze ist das einfache einspielen von Patches (core oder Module). Dazu muß man sich nur ein bißchen mit der composer.json Datei befassen.
Beim Update packe ich vendor, web/core und die im web-Verzeichnis vorhanden relevanten Dateien (autoload.php, index.php, update.php, web.config) in einen Tar-File, den ich beim Provider auf der oberen Ebene auspacke. Da ich beim Einpacken die Struktur mitnehme, liegen alle Dateien dann schon an der richtigen Stelle. mit drush updb ist Drupal dann schon upgedatet. Die Module schiebe ich dann händisch mit FTP an die richtige Stelle. Zum einen ist das Einpacken von so tiefen Strukturen mühsam, zum anderen kann ich den reinen Drupal-Update für mehrere Installationen verwenden.
Wenn Du das weiter diskutieren möchtest, kannst Du mich auch gerne anrufen.
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
@wla Herzlichen Dank für
am 19.05.2020 - 10:43 Uhr
@wla
Herzlichen Dank für deine gute Erklärung, so kommt langsam Licht ins Dunkle...
Daneben werden Module, die Du über composer installierst, in web/module/contrib abgelegt
Genau das hatte ich schon mit Composer und dem Paragraphs Modul getestet und es ist auch im richtigen /contrib installiert worden, sehr schön.
Die Info zu /custom ist sehr hilfreich
Ein weiteres Feature, das ich bei composer schätze ist das einfache einspielen von Patches (core oder Module)
Das wäre gigantisch, da lese ich mich erstmal ein
Nehme dein Angebot sehr gerne in der nächsten Woche an, will erstmal noch einige Tage tüfteln und ein paar "sinnvolle" Fragen sammeln.
Generell noch eine Frage zu Drupal 9:
Eigentlich wollte ich im Juni gleich mit der D9 starten (local entwickeln), sehe aber gerade an Modulen wie Token https://www.drupal.org/project/token
den Hinweis Requires Drupal: ^8.8 || ^9
Wird es so sein das viele Module von D9 noch den Unterbau von D8 benötigen um überhaupt lauffähig zu sein bzw. gar nicht auf D9 weiter entwickelt werden?
Also erst D8 installieren und dann per Update die D9 aufsetzen oder D8 Module direkt in D9 installieren?
Grüße Jenna
Also wichtig bei Drupal 9
am 19.05.2020 - 16:41 Uhr
Also wichtig bei Drupal 9 ist, daß Du erst mal den composer auf neusten Stand bringst. Der findet sonst bei D9 das Modul nicht, obwohl das in info.yml File mit core_version_requirement: ^8.8.0 || ^9.0 gekennzeichnet ist (wie hier bei der admin_toolbar). Hat mich jedenfalls erst mal eine Weile aufgehalten. Dann haben manche Module noch nicht den Zustand erreicht, den man braucht. Da sind die deprecated Api Funktionen noch nicht ersetzt. Ich würde also erst mal weiter mit D8 fahren, aber darauf achten, daß die Module bereits für beide Versionen geeignet sind. Wenn alle Module für D9 geeignet sind, ist dann ein Upgrade einfach über den Composer möglich.
Eine Gebrauchsanweisung zu den Patches findest Du unter Apply Drupal 8 Patch by Composer without update Drupal Core
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *