initiatione
This commit is contained in:
commit
627caccdaf
9 changed files with 346 additions and 0 deletions
98
README.md
Normal file
98
README.md
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
# SumediaStage
|
||||
|
||||
Shopware 6 Plugin zur Nutzung einer lizenzierten Installation unter einem URL-Unterverzeichnis (z. B. `/stage/`, `/local/`), ohne dass Plugin-Lizenzprüfungen oder die interne Shop-Identifikation fehlschlagen.
|
||||
|
||||
## Hintergrund
|
||||
|
||||
Shopware speichert die `APP_URL` zusammen mit der Shop-ID (`core.app.shopId`) in der Systemkonfiguration. Bei jedem Request vergleicht `ShopIdProvider` die aktuelle `APP_URL` mit dem gespeicherten Wert. Weichen Live (`https://example.com`) und Stage (`https://example.com/stage/`) ab, wirft Shopware eine `AppUrlChangeDetectedException` – Plugins melden daraufhin fehlende Lizenzen.
|
||||
|
||||
Das Plugin registriert einen `EnvironmentHelperTransformer`, der bei jedem internen `APP_URL`-Lesezugriff den Pfad-Anteil automatisch entfernt:
|
||||
|
||||
```
|
||||
https://www.example.com/stage/ → https://www.example.com
|
||||
https://www.example.com/local/ → https://www.example.com
|
||||
https://www.example.com → https://www.example.com (no-op)
|
||||
```
|
||||
|
||||
## Installation auf dem Stage-System
|
||||
|
||||
### Voraussetzungen
|
||||
|
||||
- Shopware 6.6.x
|
||||
- SSH-Zugang zum Stage-Server
|
||||
- `APP_ENV` muss `dev` oder `staging` sein – **nicht** `prod`
|
||||
- `APP_URL` in `.env.local` ist auf das Unterverzeichnis gesetzt, z. B.:
|
||||
```
|
||||
APP_URL=https://www.example.com/stage/
|
||||
```
|
||||
|
||||
> **Wichtig:** Das Plugin lässt sich in `APP_ENV=prod` nicht aktivieren und registriert den Transformer auch dann nicht, falls es doch installiert sein sollte. Es ist ausschliesslich fuer Staging- und lokale Umgebungen gedacht.
|
||||
|
||||
### 1. Plugin übertragen
|
||||
|
||||
Plugin-Verzeichnis auf den Stage-Server kopieren (z. B. per rsync oder git):
|
||||
|
||||
```bash
|
||||
rsync -av custom/plugins/SumediaStage/ user@stage-server:/var/www/shopware/custom/plugins/SumediaStage/
|
||||
```
|
||||
|
||||
Oder per git, wenn das Stage-System dasselbe Repository nutzt – dann ist das Plugin bereits vorhanden.
|
||||
|
||||
### 2. Plugin installieren und aktivieren
|
||||
|
||||
```bash
|
||||
php bin/console plugin:refresh
|
||||
php bin/console plugin:install --activate SumediaStage
|
||||
php bin/console cache:clear
|
||||
```
|
||||
|
||||
### 3. Konfiguration prüfen
|
||||
|
||||
Im Shopware-Admin unter **Einstellungen → Erweiterungen → SumediaStage**:
|
||||
|
||||
| Einstellung | Empfohlener Wert |
|
||||
|---|---|
|
||||
| Normalize APP_URL | aktiv (true) |
|
||||
| Base URL override | leer lassen |
|
||||
|
||||
### 4. Verifizieren
|
||||
|
||||
Nach der Installation sollte der Admin-Login funktionieren und keine Plugin-Lizenzfehler mehr erscheinen. Zur Kontrolle:
|
||||
|
||||
```bash
|
||||
php bin/console system:config:get core.app.shopId
|
||||
```
|
||||
|
||||
Der gespeicherte `app_url`-Wert sollte nun ohne den Unterverzeichnis-Pfad gespeichert werden.
|
||||
|
||||
## Deinstallation
|
||||
|
||||
```bash
|
||||
php bin/console plugin:uninstall SumediaStage
|
||||
php bin/console cache:clear
|
||||
```
|
||||
|
||||
## Konfigurationsoptionen
|
||||
|
||||
**Admin (Einstellungen → Erweiterungen → SumediaStage):**
|
||||
|
||||
| Schlüssel | Typ | Default | Beschreibung |
|
||||
|---|---|---|---|
|
||||
| `normalizeAppUrl` | bool | `true` | Transformer aktiv/inaktiv |
|
||||
| `baseUrl` | string | leer | Explizite Basis-URL statt Auto-Erkennung (z. B. hinter Proxy mit falschem Host-Header) |
|
||||
|
||||
**Umgebungsvariablen (`.env.local`):**
|
||||
|
||||
| Variable | Wert | Beschreibung |
|
||||
|---|---|---|
|
||||
| `SUMEDIA_STAGE_ENABLED` | `0` | Transformer deaktivieren, ohne das Plugin zu deinstallieren |
|
||||
| `APP_ENV` | `prod` | Transformer wird automatisch blockiert, Aktivierung wird verweigert |
|
||||
|
||||
Beispiel `.env.local` um das Plugin temporaer zu deaktivieren:
|
||||
```
|
||||
SUMEDIA_STAGE_ENABLED=0
|
||||
```
|
||||
|
||||
## Hinweis
|
||||
|
||||
Das Plugin muss auf **allen** Instanzen (live, stage, local) installiert und aktiviert sein. Auf Live-Instanzen, bei denen `APP_URL` keinen Pfad-Anteil enthält, ist der Transformer ein No-Op.
|
||||
Loading…
Add table
Add a link
Reference in a new issue