Files
michaelschiemer/docs/deployment/cache-permissions-quick-fix.md
Michael Schiemer 56f09b5001 docs(cache): add comprehensive cache configuration and permission handling guides
- Introduce `cache-configuration.md` for detailed instructions on cache setup, permission troubleshooting, and best practices.
- Add `cache-permissions-quick-fix.md` for concise resolutions to common permission errors.
- Include a detailed `FILECACHE_PERMISSION_FIX_PLAN.md` outlining solutions for permission-related issues.
- Enhance `docker-entrypoint.sh` with permission fixes for multi-user caches.
- Update `Makefile` with cache clear commands for local and staging environments.
- Improve `FileCache` for graceful degradation on permission errors, ensuring reliability under multi-user scenarios.
2025-11-03 23:54:27 +01:00

75 lines
2.0 KiB
Markdown

# Cache Permissions Quick Fix
## Problem
```
chown: invalid user: 'appuser:appuser'
```
Der User `appuser` existiert nicht im Container, oder es wird ein anderer User verwendet.
## L?sung: Dynamischer Fix
### Schritt 1: Ermittle den korrekten User
```bash
# Pr?fe welcher User verwendet wird
docker exec staging-app whoami
docker exec staging-app id
# Pr?fe PHP-FPM Konfiguration
docker exec staging-app grep "^user = " /usr/local/etc/php-fpm.d/*.conf
```
### Schritt 2: Fix Berechtigungen (automatisch)
```bash
# Automatisch - ermittle User aus PHP-FPM Config
docker exec -it --user root staging-app bash -c '
USER=$(grep "^user = " /usr/local/etc/php-fpm.d/*.conf 2>/dev/null | head -1 | cut -d"=" -f2 | tr -d " ;")
[ -z "$USER" ] && USER="www-data"
echo "Using user: $USER"
chown -R $USER:$USER /var/www/html/storage/cache
chmod -R 775 /var/www/html/storage/cache
'
```
### Schritt 3: Fix existierende Dateien
```bash
docker exec -it --user root staging-app bash -c '
USER=$(grep "^user = " /usr/local/etc/php-fpm.d/*.conf 2>/dev/null | head -1 | cut -d"=" -f2 | tr -d " ;")
[ -z "$USER" ] && USER="www-data"
find /var/www/html/storage/cache -type f -exec chmod 644 {} \;
find /var/www/html/storage/cache -type d -exec chmod 775 {} \;
chown -R $USER:$USER /var/www/html/storage/cache
echo "Fixed permissions for user: $USER"
'
```
## Alternative: Manuelle Fix
Wenn du wei?t, welcher User verwendet wird:
**F?r `www-data` (Production):**
```bash
docker exec -it --user root staging-app chown -R www-data:www-data /var/www/html/storage/cache
docker exec -it --user root staging-app chmod -R 775 /var/www/html/storage/cache
```
**F?r `appuser` (Development/Staging):**
```bash
docker exec -it --user root staging-app chown -R appuser:appuser /var/www/html/storage/cache
docker exec -it --user root staging-app chmod -R 775 /var/www/html/storage/cache
```
## Verifikation
```bash
# Pr?fe Berechtigungen
docker exec staging-app ls -ld /var/www/html/storage/cache
# Pr?fe Owner
docker exec staging-app ls -l /var/www/html/storage/cache | head -5
```