SW5 auf Synology NAS

Super, herzlichen Dank! Ich werde dann wohl mal in den nächsten Tagen alles installieren und testen. :slight_smile:

Irgendwie schein aktuell überhaupt nichs zu funktionieren. Habe gestern bis spät in die Nacht und heute praktisch den ganzen Tag versucht die Shopware Installation mittels VirtualBox hinzubekommen. Die VirtualBox läuft nun zwar und ich habe auch php8.1 installiert. Doch ich komme einfach nicht ins lokale Netzwerk. Ich erhalte stehts die Meldung „Die Website ist nicht erreichbar“. :frowning: Ich weiss einfach nicht mehr weiter.

Vermutlich Firewall aktiv :slight_smile:

https://www.cyberciti.biz/faq/ubuntu-22-04-lts-set-up-ufw-firewall-in-5-minutes/#:~:text=A%20Ubuntu%2022.04%20LTS%20comes,command%20by%20developers%20and%20sysadmins.

Hi SCOOPEX
Herzlichen Dank für den Tipp. Es lag aber offenbar an etwas anderem. Nach langem testen, fand ich schliesslich die Lösung. Da ich ein Windows 10 System nutze, musste ich den Netzwerkadapter in den „Brückenmodus“ stellen. Nun erreiche ich den Webserver unter 192.168.1.34
Netzwerkbrücke

Soweit so gut. Dann bin ich an die Installation von SW6 gegangen - und verzweifle erneut. Vielleicht hast Du mir da noch einen Tipp? Ich bin dabei strikt nach folgender Anleitung vorgegangen:

https://docs.shopware.com/de/shopware-6-de/tutorials-and-faq/virtual-box-setup

composer installiert / shopware 6 über:

cd /var/www/html
git clone https://github.com/shopware/development.git sw6

heruntergeladen und über:

cd sw6
php bin/setup

Installation gestartet.

Zuerst werde ich nach der zu installierenden Version gefragt:

Application enviroment (dev):
(0) prod
(1) dev

Ich habe dev gewählt.

Dann werde ich nach dem public folder gefragt.

Ich denke das ist in meinem Fall 192.168.1.34:8080 (keine Ahnung ob der Port so stimmt?)

gemäss Anleitung sollte dann eigntlich die Abfrage der Datenbank folgen. Bei mir startet dann aber ein endloser y Bildschirm. Zuerst habe ich gedacht er installiert da etwas. Doch das endet irgendwie nie. Das Ganze sieht dann in etwa so aus:

Was läuft da falsch? Hast Du mir einen Tipp?

LG

Übrigens: Wenn ich jetzt die 192.168.1.34 aufrufe erhalte ich folgende Fehlermeldung:

Error'; echo 'Your server is running PHP version ' . \PHP_VERSION . ' but Shopware 6 requires at least PHP 7.4.0'; exit(1); } $classLoader = require __DIR__ . '/../vendor/autoload.php'; // The check is to ensure we don't use .env if APP_ENV is defined if (!isset($_SERVER['APP_ENV']) && !isset($_ENV['APP_ENV'])) { if (!class_exists(Dotenv::class)) { throw new \RuntimeException('APP_ENV environment variable is not defined. You need to define environment variables for configuration or add "symfony/dotenv" as a Composer dependency to load variables from a .env file.'); } (new Dotenv())->usePutenv()->load(__DIR__ . '/../.env'); } $appEnv = $_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? 'dev'; $debug = (bool) ($_SERVER['APP_DEBUG'] ?? $_ENV['APP_DEBUG'] ?? ($appEnv !== 'prod')); if ($debug) { umask(0000); Debug::enable(); } $trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? $_ENV['TRUSTED_PROXIES'] ?? false; if ($trustedProxies) { Request::setTrustedProxies(explode(',', $trustedProxies), Request::HEADER_X_FORWARDED_FOR | Request::HEADER_X_FORWARDED_PORT | Request::HEADER_X_FORWARDED_PROTO); } $trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? $_ENV['TRUSTED_HOSTS'] ?? false; if ($trustedHosts) { Request::setTrustedHosts(explode(',', $trustedHosts)); } $request = Request::createFromGlobals(); $kernel = new HttpKernel($appEnv, $debug, $classLoader); if ($_SERVER['COMPOSER_PLUGIN_LOADER'] ?? $_SERVER['DISABLE_EXTENSIONS'] ?? false) { $kernel->setPluginLoader(new \Shopware\Core\Framework\Plugin\KernelPluginLoader\ComposerPluginLoader($classLoader)); } $result = $kernel->handle($request); $result->getResponse()->send(); $kernel->terminate($result->getRequest(), $result->getResponse()); 

Ich nehme an, das kommt daher, dass er keinen Zugriff auf die mySql Datenbank hat.

ich habe mal php -v eingegeben

Da sollte php 8.1 laufen.

php-Version

Was mir aber auffällt, da steht 192.168.1.36 obwohl der Webserver unter 192.168.1.34 aufrufbar ist. Muss ich die Installation möglicherweise unter 192.168.1.36 ausführen?

Hi,

evtl. solltest Du Dir irgendwo ein einfaches Hosting-Paket buchen, welches für Shopware bereits vorbereitet ist.

Zu den verschiedenen Punkten:

Die PHP Version auf CLI Ebene ist nicht zwingend die gleiche wie beim Webserver-Dienst.
Mit dem Befehl sudo a2enmod php8.1 und nachfolgendem sudo service apache2 restart kannst Du PHP 8.1 für den Webserver aktivieren - siehe auch:

Für die Shopware Installation lädst Du Dir besser das fertige Paket runter, falls Du mit git/composer und Co. noch nicht so vertraut bist:

Port sollte im Standard 80 sein, nicht 8080 wie beim Synology. Welche IP auf Port 80 reagiert, musst Du halt schauen.

Es werden vermutlich jedoch weitere Probleme auftauchen, weshalb Du meinen ersten Hinweis beherzigen solltest.

Good luck!

Das mit dem hosting-Paket habe ich ja alles. Dort läuft sowohl SW6 wie auch SW5. Allerdings hätte ich gerne zum Testen und um eigene Designs zu entwickeln, sowie als Backup alles auf meiner eigenen Maschine gespiegelt. Danebst finde ich das Betreiben eines eigenen Servers einfach auch spannend. Klar die Virtualbox ist absolutes Neuland für mich. Auch was die CLI anbelangt, bin ich noch recht grün hinter den Ohren. Einen Xampp Server auf einem Windows Rechner zu betreiben, ist natürlich einiges einfacher und banaler. Allerdings hat man dann auch mit diversen Fehlern zu kämpfen, die wohl aufgrund der banaleren Umgebung daherkommen. Das mit der Virtualbox hat mich nun gepackt und ich benötige halt einfach etwas mehr Geduld, weil ich vieles zuerst noch lernen muss. Ich bin jetzt immerhin wieder ein Stück weiter gekommen.

Scheint als könne er den Cache Ordner nicht anlegen. Warum weiss ich noch nicht, aber das werde ich sicher auch noch herausfinden . (morgen, übermorgen oder nächste Woche) :wink:

Was mich noch interessieren würde ist Dein Hinweis, doch besser das fertige Paket herunter zu laden. Wie meinst Du das genau? Kann ich das Paket mit meinem Windows PC downloaden und dann in einen Ordner verschieben, wo ich dann den Installer ausführen kann? Ich habe zwar einen gemeinsamen Ordner eingerichtet, kann diesen aber in der Shell nicht finden. Somit weiss ich also auch nicht, wie ich Dateien hin und her schiebe. Oder hast Du das anders gemeint?

LG

Mit fertiges Paket meinte ich herunterladen, entpacken und dann z.B. per FTP/SFTP in das Webspace Verzeichnis übertragen.

Zum anderen Fehler - fehlende/falsche Berechtigungen - passiert z.B. wenn Du mit root arbeitest anstelle des Eigentümers des Webspace.

Kannst Du wie folgt korrigieren (als Benutzer root)

cd /var/www/html/
chown -R www-data:www-data *

Kleines Feedback nach unzähligen Versuche ins leere:
Shopware 6 läuft endlich Fehlerfrei in meiner VirtualBox :slight_smile:
Nun habe ich aber noch eine Frage. Ich möchte ja paralell dazu Shopware 5 installieren. Den Installationsordner habe ich bereits ins Route Verzeichnis (/var/www/html/sw5) gepackt. Das Problem: Wenn ich nun im Browser „http://meineIP/sw5/recovery/install/index.php“ ansteuere, werde ich immer nach SW6 geroutet. Damit die Migration von SW5 nach SW6 möglich wird, muss ich jedoch beide Shopware-Versionen paralell installieren. Gibts da ein Trick wie ich das Problem in den Griff bekomme?
LG

Einfach virtuelle Hosts anlegen und bei diesen einen fiktiven Domain-Namen hinterlegen (z.B. sw5.synology.local und sw6.synology.local) - für diese beiden Hostnamen hinterlegst Du entsprechend in der HOSTS Datei Deines PC die Synology IP (also z.B. 192.168.0.10 sw6.synology.local) und rufst anschließend entsprechend den jeweiligen Shop mit dem Domain-Namen auf und nicht mehr mit der IP

Viele Grüße

Danke für den Tipp. Irgendwie komme ich aber trotzdem nicht weiter.

Ich hab ja folgende config angelegt (gem. shopware Anleitung):

Damit bediente ich meine SW6 Installation, welche wie gesagt super läuft. Also habe ich mir gedacht, ich lege einfach noch eine sw5.conf an und lege diese ebenfalls unter „/etc/apache2/sites-enabled/“ abe

Ich habe mir nun gedacht ich lege einfach eine zweite Datei unter „/etc/apache2/sites-enabled/sw5.conf“ an. Doch irgendwie verträgt sich das dann überhaupt nicht mit der alten Installation. Will heissen: Ich erhalte nur noch eine Fehlermeldung. Scheint doch etwas kompizierter zu sein.

Dir fehlt der Eintrag Servername in den beiden Config Dateien.
https://httpd.apache.org/docs/2.4/vhosts/name-based.html

Herzlichen Dank für Deine erneute Hilfe! :slight_smile:
Puuuuuh. Irgendwie will alles nicht wie ich will. Ich möchte ja einzig, dass die jeweiligen Installationen z.B. in meinem localhost unter http://shopware6 und http://shopware5 erreichbar sind. Wenn ich da die Config entsprechend mit:

ServerName shopware6

ergänze, passiert da überhaupt nichts. Sorry, akuell verstehe ich nur noch Bahnhof. :frowning:

shopware5 bzw. shopware6 ist kein FQDN (full-qualified-domain-name) und somit ungültig. Verwende die Hostnamen die ich genannt habe, die dann entsprechend mit der IP in Deine HOSTS Datei müssen. Wenn Du Änderungen an der Apache Config vornimmst danach den Dienst 1x durchstarten.

Aha, ok :slight_smile:

Der Servername „sw6“ funktioniert zwar mit dem Eintrag „ServerName sw6.local“ allerdings werde ich dann nicht mehr in den /public Ordner weitergeleitet. Und wenn ich /public manuell hinter sw6.local eintrage, erhalte ich einen Error 500. Ich habe die Zeile schon an verschiedenen Orten in der Config (mal oben, in der Mitte, unten) eingetragen, jedoch immer mit dem identischen Fehler.

<VirtualHost *:80>
        <Directory "/var/www/html/sw6/public">
            Options FollowSymLinks
            AllowOverride All

            Order allow,deny
            Allow from all
        </Directory>
        ServerName sw6.local
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/sw6/public

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Die Domain musst Du entsprechend auch im Verkaufskanal hinterlegen.

Hi SOOPEX
Stecke leider noch immer bei diesem Problem fest. Hatte vor 1 Woche Corona und das warf mich mich etwas zurück. :crazy_face:

Was ich nicht verstehe: Ich habe ja eine Datei (sw6.conf) unter „sites-enabled“ abgelegt . Dort steht auch die Zeile „ServerName sw6.local“ (siehe Datei oben).

Tippe ich jedoch http://sw6.local in den Browser ein, erhalte ich folgende Ansicht:

Dies obwohl ich die Domain auch im Verkaufskanal eingetragen habe.
Das einzige was funktioniert, ist die direkte URL http://192.168.1.34

Damit ich aber eine Paralellinstallation von SW5 einrichten kann, gehts wohl nur über den NameServer. Die Frage ist nur, was mache ich falsch?

Dein Documentroot zeigt bei der SW6 Installation nicht auf das public Verzeichnis, daher diese Meldung.

DocumentRoot /var/www/html/sw6/public

fehlt offenbar in Deiner sw6.conf

Nein, die Zeile ist drin (siehe Post oben) - 4 letzte Zeile