Hallo in die Runde!
ich quäle mich mit einer Installation von Contao auf einem kleinen 1HE-Server (im lokalen Netz, sozusagen unterm Schreibtisch) ohne weitere Management-Software (Debian Buster 10.9, Apache2, MariaDB 10.5, CM 1.4.2). Im Gunde habe ich jetzt nach ca. 20h Frickelei den Contao-Manager am Laufen.
Dennoch ist mir das Thema Hosting-Konfiguration völlig unklar. Eigentlich noch unklarer, als vor dem Lesen den Doku. https://docs.contao.org/manual/de/in...-kommandozeile
Ich möchte mal schildern, was mich verwundert:
In der Doku steht ja zu lesen:1.) Das scheint schonmal nicht zu funktionieren. Ich habe folgenden Apache2-NameBased-VirtualHost (ja! diese minimale .conf sie stammt aus einer funktionierenden laragon-Installation - und ja! - da steht /web/web, das ist kein Schreibfehler! siehe zum Problem /web/web weiter unten):In Contao befinden sich alle öffentlich erreichbaren Dateien im Unterordner /web der Installation. Setze das Wurzelverzeichnis (Document Root) der Installation über das Admin-Panel des Hosting-Providers auf diesen Unterordner und richte bei dieser Gelegenheit noch eine Datenbank ein.
Beispiel: example.com zeigt auf das Verzeichnis /www/example/web
2). Erstaunlich und sachlich unverständlich finde ich, dass sich Contao nicht wie unter 1.) angegeben unter der Domain testDomain1.local installieren lässt, wenn! man den Ordner /var/www/testDomain1.local/web als DocumentRoot setzt und dort hinein den Contao-Manger kopiert.define DIR "/var/www/testDomain1.local"
define ROOT "/var/www/testDomain1.local/web/web"
define SITE "testDomain1"
<VirtualHost *:80>
DocumentRoot "${ROOT}"
ServerName ${SITE}
ServerAlias *.${SITE}
<Directory "${DIR}">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:443>
DocumentRoot "${ROOT}"
ServerName ${SITE}
ServerAlias *.${SITE}
<Directory "${DIR}">
AllowOverride All
Require all granted
</Directory>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
</VirtualHost>
Der lässt sich zwar auf diese Weise via Browser starten, möchte aber nach erfolgreicher Vorbereitung die Installation unter:
/var/www/testDomain1.local/web/testDomain1.local/web
fortführen (hier ist mir schon nicht klar, wie der CM die Korrekteit der Domain bewertet - er hat ja Schreibrechte auf testDomain1/??). Erlaubt man ihm das, so schießt er sich selbst ab, da er sich offs in das Unterverzeichnis /contao-manger Kopiert und unter /web löscht. Jedenfalls geht es danach nicht weiter.
3.) nun habe ich mal den CM spaßeshalber in den von ihm selbst neu angelegten Ordner per Hand kopiert und ich kann ihn auch unter
/var/www/testDomain1.local/web/testDomain1.local/web
aufrufen. Er versucht aber bei diesem Installationsvorgang erneut eine neue Installation unter:
/var/www/testDomain1.local/web/testDomain1.local/web/testDomain1.local/web !!!
Das geht so endlos fort... das ist also kein gangbarer Weg. Ich musst das abbrechen. So kann man Contao also nicht installieren...
3.) Ich habe dann diesen Post gefunden:
https://github.com/contao/contao-manager/issues/531
Dort steht zu lesen, dass man entgegen 1.) Contao nicht über das DocumentRoot /var/www/example.com/web, sondern immer über /var/www/example.com/web/web installieren muss. (als Anmerkung: Schreibrechte sind bei mir gar nicht eingeschränkt und trotzdem installiert der CM nicht im übergeordneten Verzeichnis!)
4.) aber erstaunlicher Weise funtktioniert das mit dem /web/web, ist nur auf Servern völlig unüblich und aus meiner Sicht verwirrend. Es mindert die Übersichtlichkeit der Installation. Zudem haben Composer und CM ohnehin Schreibrechte in dem ihnen durch den Installationsprozess explizit zugewiesenen übergeordneten Ordner /var/www/example.com, daher sollte eine Installation aus dem DomainRoot /var/www/example.com/web funktionieren - tuts aber nicht! Jedenfalls nicht bei mir! Es geht nur unter /var/www/example.com/web/web.
5.) Wo liegen die Ursachen? Wieso ist der CM immer (immer -> ich habe es jetzt vielfach durch mein shell-script laufen lassen, es funktioniert nur mit /web/web) der Ansicht, dass das ihm für die Installation zugewiesene übergeordnete Verzeichnis example.com nicht verwendet werden kann - wohlgemerkt, wenn er in example.com/web gestartet wird?
6.) Mein Ziel: Ich möchte am Ende meiner Konfiguration (das macht bei mir das besagte shell-script) eine automatische Masseninstallation im jeweiligen zugeordeten Verzeichnis /var/www/${newDomain}. Ohne weitere web/web/web Unterverzeichnisse.
Das ist mir bis jetzt nicht gelungen!
Könnte mir möglw. jmd. Klarheit verschaffen? Habe ich hier was übersehen?
Viele Grüße.
Theo
Lesezeichen