Zu Testzwecken wollte ich gerade Shopware 6 Version installieren und das in einer SubDomain so wie ich das auch bei anderen Testinstallationen mache. Um keinen Konflit mit .htaccess Konfigurationen zu bekommen, liegt das Verzeichnis für die besagte SubDomain nicht innerhalb des DocumentRoot der Hauptdomäne, sondern parallel dazu.
/public_html/fuer_die_hauptdomain
/public_html/shopware
Die Hauptdomain und jede Subdomain haben quasi ihr eigenes DocumentRoot. Was 1000-fach mit anderen Installationen problemlos funktioniert, mag Shopware6 offenbar nicht, sodass ich nach Aufruf der Subdomain für die Shopware Installationen den schon an anderer Stelle mehrfach angezeigten Fehler bekomme, dass Shopware 6 unmittelbar in das eigentlich nicht zutreffende DocumentRoot /public_html installiert werden will. Es mag ja sein, dass Shopware 6 aus Sicherheitsgründen irgendwas außerhalb des DocumentRoot ablegen will, aber wenn man so ein Sicherheitsfeature haben will, dann muss man auch die Webserver EInstellungen richtig auslesen können. In diesen lässt sich nämlich nicht auslesen, dass mein /public_html das DocumentRoot wäre, sondern eben das jeweilige Verzeichnis für die SubDomain.
Warum ist das strange?
Bei Symfony zeigt der VHost immer auf /public, weil da die Dateien liegen, die öffentlich erreichbar sein sollen. Das hat alleine Sicherheitsgründe, damit nicht jede PHP-Datei im Netz erreichbar ist. /public im Shopware-Verzeichnis ist also erstmal die korrekte Einstellung.
Was heißt denn konkret „funzt nicht“? Bekommst du die gleiche Fehlermeldung oder eine andere?
mod_rewrite ist aktiv? Die installation würde man dann ja über /recovery/install im browser aufrufen.
Es erscheint deswegen strange, weil wenn allein durch Änderung/Ergänzung von Verzeichnissen der Installation quasi vorgaugelt werden soll, dass es im richtigen Verzeichnis wäre. Das kann ja eigentlich weniger im Sinne der Sicherheit sein, wenn man die Sicherheit als Begründung dafür angibt. Ich kritisiere aber nicht die Sicherheit, ganz im Gegenteil. Es gibt auch andere Applikationen, die das in gleicher Weise machen, also bestzimmte Dateien/Verzeichnisse außerhalb des DocumentRoot ablegen. Nur können die dann auch die Einstellungen des jeweiligen DocumentRoot richtig auslesen und darum gehts.
Funzt nicht heißt, dass ich egal wo ich die Installation ausführe und egal in welches Verzeichnis ich die Installation/SubDomain route ich immer den gleichen Fehler bekomme.
Vhost Config habe ich schon nachgesehen. Der Pfad zum DocumentRoot ist der, der er sein soll. Nirgendwo gibt es eine Konfiguration, dass auf /public_html eine Domain routen würde oder /public_html der DocumentRoot wäre. Das /public_html Verzeichnis ist deswegen über www nicht erreichbar, eben weil der DocumentRoot für die TLD Domain auf /public_html/hauptdomain routet. Das Einzige, was ich mir als Ursache vorstellen kann, ist dass der Shopware Installer nicht den Pfad vom DocumentRoot ausliest, sondern den HomeDir Pfad und dann nur 1 Verzeichnis unmittelbar unter diesem HomeDir akzeptiert, was dann das /home/public, bzw. /home/public_html wäre.
Ich hab mir meine Konfiguration aber nicht selbst zusammengebastelt, sondern nur die Vorgabe von cPanel/WHM befolgt.
Wie kommst Du darauf, dass es auf einer Apache/nginx Standard Installation laufen würde? Ich habe weder Apache noch nginx, aber die Konfiguration und alles andere wird aus der Apache Config ausgelesen.
Ich kann mir gut vorstellen, dass eine SW6 Installtion auf normalen Webspace durchaus zu Problemen führen kann, denn nicht jeder kann sein DocumentRoot verbiegen.
Problem gelöst, war mein (Lese)Fehler. Nachdem der gezippten Installationsdatei keine Installationsanleitung beigelegen hat, bin ich davon ausgegangen, dass man das gezippte File in das Verzeichnis extrahiert, wo auch das DocumentRoot definiert ist. Tatsächlich ist es aber so, dass das Routing auf das in der Verzeichnisstruktur der Installation angelegte /public Verzeichnis erfolgen muss. Somit erklärt sich einiges. Die ganze Schreiberei hätte man sich ersparen können, wenn man das Install HowTo dem gezippten File beilegen würde. Nur mal so in den Raum geworfen…
Das kommt im Wesentlichen drauf an welche Software Du zur Server Verwaltung verwendest. Bei Shared Hosting Angeboten ist das nur schwer umzusetzen.
Gibt es inzwischen eine bessere, vollständige Anleitung?
Egal welche Anleitung, ist die Vorgehensweise immer die Gleiche. Nur das wie und ob hängt davon ab welche Rechte Du als Nutzer auf dem Server hast. Bei Shared Hostings sind die Möglchkeiten sehr begrenzt bis unmöglich.
Deine Konfiguration spielt hier keine Rolle. Du musst in der Lage sein, den DOCUMENT_ROOT für die Domain zu ändern. Es würde evtl. weiterhelfen, wenn Du mir sagst, welche Software Du zur Server Veraltung verwendest. Du kannst aber auch Deinen Provider fragen, ob es möglich ist den DOCUMENT_ROOT für eine Domain zu ändern. So was geht entweder bequem über die Server Verwaltung oder händisch über die Apache Konfiguration. Letzteres ist übrigens so in der Doku beschrieben.