Skip to content

Recurrent permissions issue. My files in /var/www/html got a chown some times. #87

@hydrosIII

Description

@hydrosIII

I have the following Wordpress setup using docker swarm. Everything is working fine. But once in a while and I cannot tell when the files inside /var/www/html got chowned so I have to apply a manual fix doing 👍 :

chown -R www-data:www-data

every now and then So I can manage plugins and the wordpress installation by itself through the GUI.

It tries to go back to wodby:wodby. But I am using this setup because f the cron script below:
So that I can run the wordpress cron using wp and sudo

CRONTAB: "0 * * * * wp cron event run --due-now --path=/var/www/html"

Is there some script that actually does a chown automatically to wodby:wodby in any of the containers involved? I mean the wodby/wordpress-php or wodby/nginx ?

Maybe I am doing something wrong and there is some easier way to do this.



version: "3.8"

services:
  php:
    image: wodby/wordpress-php:8.1
    healthcheck:
      test: ["CMD", "php", "-r", "echo 'OK';"]
      interval: 2s
      timeout: 3s
      retries: 5
    environment:
      PHP_MEMORY_LIMIT: "256M"
      PHP_POST_MAX_SIZE: "64M"
      PHP_FPM_PM_MAX_CHILDREN: 100
      PHP_MAX_INPUT_VARS: 4000
      OPCACHE_MEMORY_CONSUMPTION: "128M"
      PHP_FPM_LISTEN: "9000"
    volumes:
      - wordpress_data:/var/www/html
    networks:
      - wpnet
      - mariadb-net
    deploy:
      resources:
        limits:
          cpus: "2.0"
          memory: 512M
  
  crond:
    image: wodby/wordpress-php:8.1
    init: true
    container_name: "${PROJECT_NAME}_crond"
    environment:
      CRONTAB: "0 * * * * wp cron event run --due-now --path=/var/www/html"
    command: sudo crond -f -d 0
    volumes:
    - wordpress_data:/var/www/html
    deploy:
      resources:
        limits:
          cpus: "1"
          memory: 50M  
  nginx:
    image: wodby/nginx:1.28

    environment:
      NGINX_VHOST_PRESET: wordpress
      NGINX_BACKEND_HOST: php

    volumes:
      - wordpress_data:/var/www/html   
    networks:
      - wpnet
      - traefik-public
    depends_on:
      - php
    deploy:
      labels:
         - traefik.enable=true
        - traefik.docker.network=traefik-public
        - traefik.constraint-label=traefik-public

        # HTTP router with redirect to HTTPS
        - traefik.http.routers.mywebsite-http.rule=Host(`mywebsite.mx`) || Host(`www.mywebsite.mx`)
        - traefik.http.routers.mywebsite-http.entrypoints=http
        - traefik.http.routers.mywebsite-http.middlewares=https-redirect

        # Middleware to perform HTTPS redirect
        - traefik.http.middlewares.https-redirect.redirectscheme.scheme=https
        - traefik.http.middlewares.https-redirect.redirectscheme.permanent=true

        # HTTPS router
        - traefik.http.routers.mywebsite-https.rule=Host(`mywebsite.mx`) || Host(`www.mywebsite.mx`)
        - traefik.http.routers.mywebsite-https.entrypoints=https
        - traefik.http.routers.mywebsite-https.tls.certresolver=le
        - traefik.http.routers.mywebsite-https.middlewares=sslheader
        - traefik.http.services.mywebsite-https.loadbalancer.server.port=80

        # Middleware to ensure HTTPS is recognized by WordPress
        - traefik.http.middlewares.sslheader.headers.customrequestheaders.X-Forwarded-Proto=https



        
      resources:
        limits:
          cpus: "2"
          memory: 512M

volumes:
  wordpress_data:

networks:
  wpnet:
    driver: overlay
  traefik-public:
    external: true
  mariadb-net:
    external: true


Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions