FAQ zu Mage-OS Hosting bei maxcluster
In diesem FAQ-Beitrag geben wir einen Überblick über Mage-OS, die technischen Anforderungen und die Installation bei maxcluster.
Was ist Mage-OS?
Mage-OS ist ein Fork von Magento 2. Um unabhängiger von Adobe zu werden, wurde https://mage-os.org aus der Community heraus entwickelt.
Hierbei wurde eine Magento-Distribution erschaffen, die es erlaubt, Magento ohne einen Adobe-Account zu installieren. Zusätzlich ist von der Initiative geplant, kurzfristig einen eigenen Fork anzubieten, der aber weitgehend mit Magento 2 kompatibel bleiben soll.
Ausführliche Informationen finden Sie hier: https://mage-os.org/organization/about.
Kann ich meinen maxcluster-Cluster mit Mage-OS nutzen?
Wir haben einen sogenannten Mirror erstellt, womit wir Mage-OS für jede Version ab Magento 2.3.7-p3 unterstützen. Sie müssen hier also keine Besonderheiten beachten.
Im Managed Center bieten wir jedoch an einigen Stellen, wie beispielsweise beim NGINX-Template separate Auswahlmöglichkeiten für Mage-OS an, um ggf. auf zukünftige Abweichungen zu Magento besser reagieren zu können.
Auch unsere Kommandozeilentools wie mc-software sind bereits für Mage-OS kompatibel; gleiches gilt auch für ShopPerformance und ShopSecurity.
Für Fragen zu unseren Servern stehen wir natürlich gerne wie gewohnt unter support@maxcluster.de zur Verfügung.
Wie installiere ich Mage-OS?
Im Folgenden erklären wir, wie die Magento-Distribution Mage-OS bei maxcluster installiert wird.
Zum aktuellen Stand ist es möglich, mit dieser Anleitung die “Mirror”-Distribution zu installieren.
Zusätzlich plant Mage-OS plant dieses Jahr auch einen Fork mit eigenen Anpassungen anzubieten. Natürlich werden wir dann diese Anleitung entsprechen erweitern.
Vorbereitungen
Legen Sie als Erstes im maxcluster-Interface einen neuen vHost an. Dies kann im Menüpunkt “Apache” oder “NGINX” erfolgen.
Apache: Für die aktuelle Version Mage-OS 2.4.5 stellen Sie bitte hier PHP 8.1 ein.
NGINX: Für NGINX wählen Sie bitte zusätzlich noch das Anwendungstemplate Magento 2 aus.
Nach der Veröffentlichung eines Mage-OS Forks, werden wir für diesen ein separates Template bereitstellen.
Zusätzlich wird eine Datenbank benötigt, die bei maxcluster unter Datenbank und Suche → MySQL erstellt werden kann.
Darüber hinaus wird auch eine OpenSearch- oder eine Elasticsearch-Instanz benötigt. Für MageOS 2.4.5 empfehlen wir OpenSearch in der Version 1.2 zu verwenden.
Die Installation der Instanzen kann bei maxcluster bequem über den Menüpunkt “OpenSearch” erfolgen.
Bitte beachten Sie: Nach der Installation müssen Sie noch eine neue Instanz anlegen.
Download
Die eigentliche Installation erfolgt im nächsten Schritt per SSH. Die notwendigen Zugangsdaten hierfür sind im Managed Center unter “SSH” verfügbar.
Hinweis: Falls eine CI/CD-Pipeline bzw. ein Deploymenttool eingesetzt werden soll, kann die Installation auch außerhalb des Clusters erfolgen. In dieser Anleitung gehen wir jedoch davon aus, dass die Installation auf dem Cluster selbst durchgeführt wird.
Wechseln Sie bitte zuerst in den Ordner, in dem Magento abgelegt werden soll. Bitte beachten Sie: Bei Apache sollte dies nicht der Dokument-Ordner “root (htdocs)” sein.
cd /var/www/share/mage-os.c-421.maxcluster.net
Anschließend installieren Sie bitte per composer Mage-OS mit dem folgenden Befehl:
composer2 create-project --repository-url=https://mage-os.maxcluster.net/mirror/ magento/project-community-edition magento
Der letzte Befehl legt dabei den Ordner fest, in dem Magento installiert werden soll.
Im dargestellten Fall wird der von maxcluster zur Verfügung gestellte Mage-OS-Mirror bereitgestellt. Alternativ kann natürlich auch ein anderer Mirror verwendet werden. Eine Übersicht der möglichen Mirrors ist auf der Mage-OS Homepage verfügbar: https://mage-os.org/distribution
Installation
Nun erfolgt die eigentliche Installation.
Hierfür wechseln Sie bitte zuerst in den Magento-Ordner.
cd magento
Anschließend führen Sie die Installation mithilfe von /bin/magento
durch.
Mit dem Befehl
./bin/magento setup:install --help
lassen sich dabei alle möglichen Parameter sehen.
In unserem Beispiel erfolgt die Installation mit diesem Befehl:
./bin/magento setup:install \ --base-url=https://mage-os.c-421.maxcluster.net/ \ --db-host=localhost \ --db-name=db-1 \ --db-user=db-user-1 \ --db-password=... \ --admin-firstname=max \ --admin-lastname=muster \ --admin-email=admin@admin.com \ --admin-user=admin \ --admin-password=admin123 \ --language=de_DE \ --currency=EUR \ --timezone=Europe/Berlin \ --use-rewrites=1 \ --search-engine=elasticsearch7 \ --elasticsearch-host=127.0.0.1 \ --elasticsearch-port=9500 \ --backend-frontname=secret
Damit die Installation anschließend aufgerufen werden kann, setzen Sie bitte noch ein Symlink zum Dokumentroot des Webserver.
Dazu löschen Sie bitte den bisherigen htdocs-Ordner
rm -rf ~/mage-os.c-421.maxcluster.net/htdocs/
und verlinken den pub-Ordner.
Bitte beachten Sie: Bei NGINX verlinken Sie bitte den magento-Ordner statt des pub-Ordners, da das NGINX-Template bereits dafür sorgt, dass der pub-Ordner ausgeliefert wird.
ln -s ~/mage-os.c-421.maxcluster.net/magento/pub/ ~/mage-os.c-421.maxcluster.net/htdoc
Anschließend starten Sie bitte PHP über das maxcluster Managed Center – oder für automatisierte Deployments mit Cluster-Control – neu.
Sie können nun eine leere Magento-Installation im Browser sehen:
Abschließend installieren Sie bitte noch den Magento-Cronjob über diesen Befehl:
Optimierungen
Bitte beachten Sie: Die so installierte Magento-Instanz ist noch nicht für den Produktivbetrieb ausgelegt, daher sollte sie auf jeden Fall erst in den Produktmodus versetzt werden:
bin/magento deploy:mode:set production
Anschließend müssen die statischen Dateien neu erzeugt werden:
rm -rf pub/static/adminhtml/ rm -rf pub/static/frontend/ bin/magento setup:static-content:deploy
Hinweis: Wenn nicht alle Daten in Echtzeit verfügbar sein müssen, kann der Magento-Indexer in den “Schedule”-Mode geschaltet werden. Dies ist auch für einzelne Indizes möglich. Mit dem folgenden Befehl werden alle Indexer entsprechend umgestellt:
bin/magento indexer:set-mode schedule
Wir empfehlen am Ende eines Deployments noch die Optimierung des Autoloaders, um die Ladezeit weiter zu optimieren.
composer2 dump-autoload -o --apcu
Über bin/magento
lassen sich auch diverse Einstellungen für Magento setzen. Dies ist natürlich auch über das Magento-Backend möglich.
bin/magento config:set system/smtp/set_return_path 2 bin/magento config:set system/smtp/return_path_email support@musterfirma.de
Für eine produktive Umgebung empfehlen wir die folgenden Einstellungen zu setzen:
bin/magento config:set dev/js/minify_files 1 bin/magento config:set dev/css/minify_files 1 bin/magento config:set web/seo/use_rewrites 1
In einem nächsten Schritt empfehlen wir zusätzlich Varnish zu integrieren. Eine Anleitung zur Integration haben wir in unserem Blog dokumentiert.
Abschließend können Sie mit dem Tool ShopPerformance noch überprüfen, ob gegebenenfalls weitere Optimierungen möglich sind.
Wechsel zwischen Mage-OS und Magento 2
Es ist möglich, zwischen Mage-OS und Magento 2 zu wechseln. Hierzu genügt es, das Repository in der composer.json entsprechend anzupassen:
Für Magento 2:
"repositories": [ { "type": "composer", "url": "https://repo.magento.com/" } ],
Für den maxcluster Mage-OS-Mirror:
"repositories": [ { "type": "composer", "url": "https://mage-os.maxcluster.net/mirror/" } ],
Für den offiziellen Mage-OS-Mirror:
"repositories": [ { "type": "composer", "url": "https://mirror.mage-os.org/" } ],