Installation nicht möglich (Failed to open stream: Permission denied für composer.json)

Hallo liebe Community,

unser bisheriger Webshop-Anbieter geht uns mächtig auf den Zeiger, weswegen wir auf Shopware 6 wechseln wollen. Unser Setup ist etwas unorthodox: Auf unserem Server läuft php 8.4 unter Apache als Docker Container hinter einem nginx als Reverse Proxy (Das ist auch die einzige PHP-Anwendung auf dem Server, von daher wollen wir keine vollständige PHP/Apache-Installation auf „Bare Metal“ haben. Alle anderen Anwendungen sind gedockert, von daher ist das so naheliegend). Unser docker-compose.yml file sieht so aus:

version: "3"
services:
  apache:
    image: php:8.4-apache
    ports:
      - 9090:80
    volumes:
      - ./data/www:/var/www/html
      - ./data/php.ini:/usr/local/etc/php/conf.d/php.ini
    restart: unless-stopped

  mariadb:
    image: mariadb:10.11
    volumes:
      - ./data/mysql:/var/lib/mysql
    restart: always
    environment:
      <passwort und so>

Also alles in allem ein Standard-PHP-Apache-Setup unter Docker ohne weitere Einstellungen.

Ich habe den Installer heruntergeladen und nach „./data/www:/var/www/html“ verschoben und über meine Domain aufgerufen. Das funktioniert auch soweit. PHP wird wie zu erwarten war unter „/usr/local/bin/php“ erkannt, ich wähle eine Shopware-Version und drücke auf „Herunterladen“.

Dann kommt eine Fehlermeldung, die ich nicht so ganz zu interpretieren weiß:

...HTML stuff...
<!-- Failed to copy &quot;phar:///var/www/html/shopware-installer.phar.php/Resources/install-template/composer.json&quot; to &quot;/var/www/html/composer.json&quot; because target file could not be opened for writing: fopen(/var/www/html/composer.json): Failed to open stream: Permission denied (500 Internal Server Error) -->

Für mich sieht das nach einem Permission-Error aus, aber ich habe überhaupt keine Ahnung, wo das Problem ist. Leider kenne ich mich mit Apache auch nicht sonderlich gut aus, aber die Berechtigungen im Ordner sehen nicht unüblich aus.

meinuser@meinserver:~/meinshop$ ll -a data/www/
total 17032
drwxrwxr-x 2 meinuser meinuser     4096 Jun 25 01:25 ./
drwxrwxr-x 4 meinuser meinuser     4096 Jun 24 22:10 ../
-rw-rw-r-- 1 root     root     17431737 Jun 15 07:52 shopware-installer.phar.php

Hier der vollständige Fehlerlog, wie man ihn vom Installer aus herunterladen kann: https://pastebin.com/JE2CqUpV

Ich bedanke mich im Vorfeld für eure Hilfe.

bliepp

Wie immer, man hat das Problem 3 Tage lang und findet keine Lösung und kaum hat man sich dann entschlossen doch im Forum zu fragen, fällt einem direkt die Lösung ein: Natürlich läuft Apache im Docker mit einer anderen UID/GID. Einfach

user: "1000:1000"

beim Apache Service setzen war ausreichend.