Oxid CE 6.2.3 Setup in Unterverzeichnis

Hallo, Ziel war Oxid in ein Unterverzeichnis www.meinedomain.de/eshop zu installieren und nicht in www.meinedomain.de/source. Suche im Internet hat leider nicht weitergeholfen. Untenstehend meine Vorgehensweise um Oxid in besagtes Unterverzeichnis “eshop” zu installieren. Angaben gemäß “Gedächtnisprotokoll”. Hoffe deshalb, dass nichts vergessen wurde.

Hier gleich zu Beginn die Frage, muss in Bezug auf nachfolgende Vorgehensweise mit Problemen gerechnet werden oder kann getrost mit dem Shop weiter gearbeitet werden?

Manuelle Installation in ein Unterverzeichnis:

  1. Anlegen von “www.meinedomain.de/eshop”. Dokument Pfad manuell auf “/eshop”
  2. MySQL-Datenbank angelegt.
  3. OXID_ESHOP_CE_6.2.3_PHP7.4 runtergeladen.
  4. Mit FileZilla die entpackten Daten (Verzeichnisse und Dateien) auf den Server in “/eshop” hochgeladen.
  5. Das Verzeichnis “source” in “eshop” umbenannt.
  6. In config.inc.php “source” durch “eshop” ersetzt
    $this->sShopURL = ‘http://www.meinedomain.de/eshop’; // eShop base url, required
  7. Start vom Setup mit www.meinedomain.de/eshop/Setup/index.php
  8. Fehlermeldung Voraussetzung nicht erfüllt “ini_set erlaubt”
  9. in SystemRequirements ‘ini_set’ auskommentiert
    $aRequiredPHPConfigs = [
    ‘allow_url_fopen’,
    ‘request_uri’,
    /**‘ini_set’,*/
    ‘memory_limit’,
    ‘unicode_support’,
    ‘file_uploads’,
    ‘session_autostart’,
  10. Keine Fehlermeldung mehr → Setup Start
  11. Bei Punkt 5. Verzeichnisse & Login vom Setup Fehlermeldung sinngemäß “Kommandos ‘Migration’. Returncode: ‘0’, Verzeichnis source/config.inc.php nicht gefunden”
    In “MigrateCommand.php” und “Migration.php” keinen Verweis auf “source/config.inc.php” gefunden.
    (Der Gedanke war source in eshop umzubenennen.)
  12. Nächster Schritt, das “eshop”-(vorher source) Verzeichnis kopiert und die Kopie auf “source” umbenannt.
  13. Nach dem Anlegen von dem “kopierten” “source”-Verzeichnis ist das Setup durchgelaufen.
  14. Backend und Frontend funktionieren.
  15. Im Backend, Systemgesundheit werden alle Merkmale erfüllt (grün).

Freundliche Grüße
arud

Das hier kennst Du? Running OXID eShop in a subdirectory • OXIDforge

Danke für den Link! Ja, kenn ich. Bin damit aber nicht zurecht gekommen. Führt meine Vorgehensweise über kurz oder lang zu Fehlern?
Wenn ja, dann versuch ich mich noch mal an der Installation auf die du verwiesen hast!
Im Moment sind beim Anlegen der Stammdaten, Artikel, … noch keine Fehler aufgetreten.

in dem verlinkten Artikel steht zwar " please don’t try to rename the source/ folder. You’ll definitely fail", aber ich würde den Quelltext nach einem hardcoded Pfad mit “source” durchsuchen.
So oder so, sollte man damit rechnen, dass es irgendann krachen könnte, weil alle Drittanbieter davon ausgehen, dass der Ordner “soruce” heißt und der Pfad könnte in einem (verschlüsseltem) Modul hardcoded sein.

Es kommt im Endeffekt auf den Versuch an, ich würde aber noch dafür sorgen, dass andere Shopdateien nicht über den Browser aufrufbar sind.

Du wirst immer wieder mit Problemen zu kämpfen haben. Die Besonderheit das Verzeichnis source in eshop umzubenennen wollen wird Dir immer wieder auf die Füße fallen.

Daher würde ich davon abraten.

Besser wäre, wenn Du Deine Softwareinfrastruktur vom Hoster her besser aufstellst. Sollte noch eine andere Lösung unter Deiner Hauptdomain laufen, wäre aus technischer Sicht die sauberste Lösung beide Softwarelösungen voneinander zu trennen.

Dies ginge am Besten über eine Subdomain wie z.B. eshop.meinedomain.de welche wiederum ein einiges Document-Root Verzeichnis los gelöst von Deiner Hauptdomain meinedomain.de besitzen sollte.

Werde jetzt gemäß eurer Empfehlung Abstand von meiner “verbogenen” Oxid-Installation nehmen!
Das Risiko, dass irgendwann der Shop crashed oder Module von Drittanbietern nicht laufen ist zu groß.

Die Wahl für www.meinedomain.de/eshop stützt sich auf folgender Annahme:

  1. www.meinedomain.com/eshop ist für den User besser lesbar ist als www.meinedomain.com/source
  2. www.meinedomain.com/eshop wird von den Suchmaschinen besser gefunden

Sind die Überlegungen doch nicht so relevant für die Wahl /eShop oder/source?

Was haltet ihr von den drei Alternativen?

#1 Marco: Setup gemäß Link von Marco

#2 www.meinedomain.de (Homepage) hat einen Menüpunkt eshop verlinkt auf www.meinedomain.com/source (eshop).

  • Installation über das “Standard”-Setup
  • eShop bekommt schlechteres Ranking bei Suchmaschinen?

#3 indianer3c: eshop.meinedomain.com

  • Installation über “Standard”-Setup
  • Stabiler eShop
  • Erweiterung mit Modulen von Drittanbietern finden die Standard-Struktur von Oxid vor.

Beim Runterladen der Datien mit Composer tritt folgender Fehler auf:

c:\eShop>composer create-project --no-dev oxid-esales/oxideshop-project eShop dev-b-6.2-ce
Creating a “oxid-esales/oxideshop-project” project at “./eShop”
Installing oxid-esales/oxideshop-project (dev-b-6.2-ce 001917d3ebbc74b481eb1dad75fe5c06b373fce9)

  • Installing oxid-esales/oxideshop-project (dev-b-6.2-ce 001917d): Cloning 001917d3eb
    Cloning failed using an ssh key for authentication, enter your GitHub credentials to access private repos
    Head to https://github.com/settings/tokens/new?scopes=repo&description=“meine Note github”
    to retrieve a token. It will be stored in “C:/Users/meinUserName/AppData/Roaming/Composer/auth.json” for future use by Composer.
    Token (hidden):
    Token stored successfully.
    Install of oxid-esales/oxideshop-project failed

[RuntimeException]
** Failed to clone https://github.com/OXID-eSales/oxideshop_project.git, git was not found, check that it is installed and in your PATH env.**

** Der Befehl “git” ist entweder falsch geschrieben oder**
** konnte nicht gefunden werden.**

Wie kann denn der Fehler behoben werden?

das source Verzeichnis sollte als Document-Root gelegt werden!

Das heißt das niemand aufs var oder vendor Verzeichnis von Außen zugreifen darf. Daher sollte nie, nie source in der URL auftauchen!

Das Setup findet unter www.meinedomain.com statt, wenn Shop richtig installiert und source Verzeichnis als Document-Root definiert. Dann stellt sich die Frage mit Suchmaschinen auch erst gar nicht.

Wenn Du unter meinedomain.com keine andere Software laufen hast wie dies gerade wirkt. Dann wäre die Idee mit der Subdomain eshop.meinedomain.com hinfällig und es würde auf meinedomain.com hinauslaufen.

Du hast anscheinend ein privates Modul installiert, dann brauchst Du den Token von Modulhersteller von dem Du das Modul hast.

Zusätzlich glaube ich das Dir grundlegende Kenntnisse im Umgang mit Composer fehlen…

Am Besten schaust Dir den Wiki Eintrag Anleitung: Composer für Shopbetreiber an.

Langfristig kann man Dir nur raten, Dir Hilfe von einem Programmierer oder Agentur zu holen. Oder Du solltest darüber nachdenken ob die Lösung OXID eShop noch die richtige für Dich ist. Da die Hürden eher Größer werden als Kleiner. Nicht böse gemeint.

Danke indianer3c für die Antworten! Die Antworten verstehe ich als konstruktive Kritik! Passt scho!. Richtig, mit Composer habe ich noch nicht gearbeitet.
Mit einer Agentur hatte ich bereits Kontakt. Die haben aber mit Oxid keine Erfahrung. Mit Composer sollte die Installation eigentlich kinderleicht sein. Mit dem früheren Setup von Oxid hatte ich keine Schwierigkeiten :slight_smile:
Wir sind ein kleiner Einzelhändler und müssen natürlich versuchen die Kosten im Auge zu behalten.
Bin Elektrotechniker mit Schwerpunkt Datenverarbeitung und intressiere mich schon immer für diese Themen.
Gibt es in Franken Agenturen die auf Oxid speziallisiert sind oder eine Übersicht von “Oxid-Agenturen”?

Eine Agentur kommt aus meiner Sicht für mittlere bis größere Online-Shops in Frage. Aus meiner Sicht glaube ich, dass für Deinen Fall ein selbstständiger Softwareentwickler ausreichend.

Eine Übersicht von beiden findest Du unter Listing der OXID Partner und Freelancer • OXIDforge und kannst z.B. nach “OXID Savvy Programme” filtern dann erhälst selbstständige Softwareentwickler oder kleine Agenturen rund um OXID eShop.

Ich selber bin selbstständiger Softwareentwickler und offizieller OXID Savvy Partner.

Wenn Du Dich für die PHP Progammierung, den Umgang mit Entwicklung Tools etc. interessiert kann ich Dir auch ein Angebot machen wo ich Dich dabei unterstütze den OXID eShop Einsatz für Euch zu professionalisieren. Mit dem Ziel, dass Du über die Versionsverwaltungssoftware git selber kleinere Anpassungen am Shop vornehmen kannst wie z.B. Übersetzungen ändern oder das Theme erweitern.

Du findest mich unter https://bisweb.me und kannst mich auch gerne telefonsich oder per E-Mail kontaktieren. Wenn Intereses da sein sollte.

Vielen Dank an Marco, vanilla_tunder und indianer3c!
Die Ratschläge konnten erfolgreich umgesetzt werden!

Hier eine kleine Zusammenfassung (Gedächtnis-Protokoll), welche Schritte zum Erfolg geführt haben!

1. Manueller Setup (dringend davon abzuraten!)
Mein erste Annahme, der Shop müsste in ein Unterverzeichnis installiert werden, wahr falsch.
Meine Annahme hat sich darauf begründet, dass
1a.
Auf unserem Hosting-Panel zwei Domain angelegt sind
www.meinedomain1.de (unsere Homepage)
www.meinedomain1.com (unser eshop)
1b.
Auf dem File-Server folgende Struktur vorhanden ist
/eshop (Oxid-Shop)
/wp (wordpress)
Da auf dem File-Server der Oxid-Shop unter /eshop installiert wurde, hatte ich abgeleitet
der Oxid-Shop ist unter www.meinedomain1.com/eshop zu erreichen.
Nach meiner ersten manuellen “verbogenen” Installation wurde dann beim Shop-Aufruf
www.meinedomain1.com/source angezeigt. (Dokument Pfad manuell = /eshop)
Wie von indianer3c angemerkt wurde, sollte niemals in der URL source auftauchen!

2. Neu-Installation mit Hilfe von Composer (erfolgreich); ohne Unterverzeichnis
2a
Installation nach
https://docs.oxid-esales.com/eshop/de/6.2/installation/neu-installation/neu-installation.html
Vor der Installation nach der Anleitung wurden noch folgende Schritte vorgenommen:
2b
Installation vom Composer
https://getcomposer.org/ → Info
Introduction - Composer
Abschnitt:
Installation - Windows “Composer-Setup.exe” aufrufen
https://getcomposer.org/Composer-Setup.exe
2c
GitHub Account angelegt
https://github.com/
Personal access token angelegt
Authentifizierung mit einem GitHub Access Token - Contao Academy
Kann mich nicht mehr genau erinnern wo ich die Datei abgelegt habe.
2d
Git installiert
Git - Git installieren → Info
Git - Downloading Package → Installation
In den Windows-Umgebungsvariablen den Pfad gesetzt:
C:\Programme\git\cmd
Zum Testen ob “git” in der Konsole aufgerufen werden kann in der Konsole “git --version” eingeben
Es wird dann “git version 2.30.1.windows.1” angezeigt

Verzeichnis angelegt C:\eShop
(bin mir nicht mehr ganz sicher ob das Verzeichnis angelegt werden muss,
oder ob das Verzeichnis automatisch über den composer-Aufruf mit “eshop” dann autom. angelegt wird.)
Aufruf vom Composer in der Konsole
C:>composer create-project --no-dev oxid-esales/oxideshop-project eshop dev-b-6.2-ce

Die Installation ist durchgelaufen.
Am Ende gab es noch folgenden Fehler
“Script if [ -f ./vendor/bin/oe-eshop-ide_helper ]; then oe-eshop-ide_helper; fi handling the oe:ide-helper:generate event returned with error code 1 Script @oe:ide-helper:generate was called via post-update-cmd”
Scheint aber nicht zu stören, da das Oxid-Setup gestartet werden konnte und durchgelaufen ist.

Host-Panel: Dokument Pfad manuell: /eshop/source
Dann im Browser www.meinedomain1.com/setup aufrufen.

Im Setup wurde dann wieder die Fehlermeldung Voraussetzung nicht erfüllt “ini_set erlaubt” angezeigt.

Lösung:
/eshop/vendor/oxid-esales/oxideshop-ce/source/Core/SystemRequirements.php

  • in SystemRequirements ‘ini_set’ auskommentiert
    $aRequiredPHPConfigs = [
    ‘allow_url_fopen’,
    ‘request_uri’,
    /**‘ini_set’,*/
    ‘memory_limit’,
    ‘unicode_support’,
    ‘file_uploads’,
    ‘session_autostart’,

Nicht vergessen die Anmeldedaten für das Backend notieren!

Shop-Installation erfolgreich abgeschlossen.
Im Backend noch “Systemgesundheit” überprüfen und gemäß Anleitung die entsprechenden Schreib-/Lese-Rechte kontrollieren.

Aufruf vom Oxid-Shop mit
www.meinedomain1.com

Hier noch mal die Struktur auf dem File-Server:
/eshop
/.git
/source
/var
/vendor
composer.json
composer.lock
LICENSE

Anmerkung:
Beim Aufruf mit der Windows Power Shell wurde folgender (und weitere) Fehler angezeigt:
[RuntimeException]
Failed to clone https://github.com/OXID-eSales/oxideshop_project.git, git was not found, check that it is installed and in your PATH env.

Der Befehl “git” ist entweder falsch geschrieben oder
konnte nicht gefunden werden.

Das war ein entscheidender Hinweis um die Installatin zum Abschluss bringen zu können.

Die Windows Power Shell zeigt Fehler an und gibt so Hinweise auf möglich Probleme!
Der Befehl
C:>composer create-project --no-dev oxid-esales/oxideshop-project eshop dev-b-6.2-ce
konnte jedoch nicht in der Windows Power Shell aufgerufen werden sondern nur in der DOS-Konsole.

Wir werden auf der Homepage www.meinedomain1.de (Homepage) noch einen Menüpunkt “eShop” auf www.meinedomain1.com (Oxid-Shop) verlinken.

Das wars :slight_smile:
Falls jemand mit ähnlichen Problemen mit den Infos weitergeholfen werden kann würde mich
das sehr freuen!

1 Like

Dies ist erfreulich. Gerne.

Jetzt wird aus meiner Sicht das Problem ersichtlich.

Du installierst den Shop bei Dir auf dem Windows Rechner, bevor Du ihn auf den Server kopierst?

Wenn ja hattest dies Eingangs nicht erwähnt.

Ich bin Eingangs davon ausgegangen, dass alle Schritt auf dem Server Deines Hosters erfolgt sind.

Die Meldungen bezüglich git bedeuten:

* Installing oxid-esales/oxideshop-project (dev-b-6.2-ce 001917d): Cloning 001917d3eb
Cloning failed using an ssh key for authentication, enter your GitHub credentials to access private repos
Head to https://github.com/settings/tokens/new?scopes=repo&description=“meine Note github”
to retrieve a token. It will be stored in “C:/Users/meinUserName/AppData/Roaming/Composer/auth.json” for future use by Composer.
Token (hidden):
Token stored successfully.
Install of oxid-esales/oxideshop-project failed

Du hast innerhalb kürzester Zeit zu häufig den Installationsbefehl von Composer ausgeführt und wurdest deshalb von GitHub für eine Zeitspanne geblockt bzw. kannst über das Hinterlegen eines Auth-Tokens die Blockade vor der Zeitspanne umgehen.

**[RuntimeException]**
** Failed to clone https://github.com/OXID-eSales/oxideshop_project.git, git was not found, check that it is installed and in your PATH env.**

** Der Befehl “git” ist entweder falsch geschrieben oder**
** konnte nicht gefunden werden.**

Da Du Lokal auf Deinem Windows Rechner arbeitest war git einfach nicht installiert.

Tipp:

Selber arbeite ich für den Aufbau einer lokalen Entwicklungsumgebung mit DDEV https://www.ddev.com/

Update:

Im Setup wurde dann wieder die Fehlermeldung Voraussetzung nicht erfüllt “ini_set erlaubt” angezeigt.

Die beschriebene Lösung des Problems, davon würde ich auf einem Produktivsystem abraten. Da hier der Shop Lokal auf einem Windows Rechner installiert, deutet dies darauf hin das PHP Lokal nicht konfiguriert wurde.

Die Dateien erst lokal zu installieren um sie dann auf den Server zu ziehen, war bisher
meine gängige Vorgehensweise. Deshalb hab ich das wohl nicht erwähnt. Scheint leider ein wenig Vewirrung angestiftet zu haben.
Jetzt beim genauer hinsehen findet sich in der OXID-Beschreibung auch der Hinweis zum Composer.

Server und Systemvoraussetzungen

Inhalte: Server, Shared Hosting, Managed Server, Serverfarm mit Loadbalancing und Datenbankcluster, Linux, Webserver, Apache 2.2 + 2.4, MySQL 5.5 + 5.7, MariaDB 10.4, PHP 7.1 bis 7.4, Composer, OpenSSL.

Composer ist auf meinem Apache nicht installiert:
Secure Shell Umgebung CHROOT SSH/SFTP Zugang
Im Angebot hat der Webhoster noch NGINX:
Secure Shell Umgebung
Voller SSH Zugang mit NodeJS,GO Lang, Python, GIT, SVN, PHP Composer und Drush für Drupal uvm.

“ini_set erlaubt” nicht erfüllt" ini_set auszukommentieren habe ich aus einen Forum-Beitrag übernommen.
Der Shop läuft ja jetzt auf einen Server. Ist es im nachhinein möglich, das Wegbügeln von ini_set zu korrigiren?

Im vendor Verzeichnis eine Änderung vorzunehmen erfolgt immer eigenen Risiko, weil bei einem Update die Änderung immer überschrieben werden. Daher ist davon abzuraten.

Es gilt zu prüfen ob die Server Konfiguration ini_set zulässt.

Das Erste was Du prüfen könntest wäre, dass Du im Admin Service > Systeminfo aufrufst und in den PHP Einstellungen nach “disable_functions” suchst, ist dort ini_set enthalten, dann ist diese Systemvoraussetzung nicht erfüllt.

Im Grunde liegt es an dem Hoster diese Einstellung zu erlauben oder zu verbieten, dies sollte in Erfahrung gebracht werden.

Das Problem ist wie OXID prüft, ob ini_set erlaubt ist!
‘public function checkIniSet()
{
return (@ini_set(‘memory_limit’, @ini_get(‘memory_limit’)) !== false) ? 2 : 0;
}’
Auf meinem virtuellem Server ist das Ändern vom memory_limit nicht erlaubt, daher muss das meiner Meinung nach fehlschlagen.
In den “disable_functions” ist ini_set nicht enthalten und trotzdem rot! In meinen Augen ist das ein Bug der nicht gefixt wird!
Man könnte ja versuchen,das selbst zu fixen, wie auf Slack beschrieben.

Mein Webhoster hat auf die Anfrage bezüglich “ini_set” geantwortet.
“ini_set() ist bei PHP als FastCGI/CGI und auch als FPM Modul, welches bei uns zum Einsatz kommt, nicht möglich. Das geht nur, wenn PHP als Apache Modul betrieben wird, was als veraltet und unsicher zu bezeichnen ist. Bei den genannten Methoden handelt es sich um die gängigen.”

Das bedeutet wohl für mich, das ich erst mal das Shop-Verhalten genau beobachten werde, ob es durch das Auskommentieren von ini_set zu Problemen kommt.