卷docker和wordpress的权限

时间:2020-03-10 11:59:27

标签: wordpress docker docker-compose docker-volume

我创建了一个docker-composer.yml文件来为wordpress mysql和phpmyadmin运行一个容器。它启动良好bt我有一个权限问题。我所有的文件都有用于用户和组的www-data:www-data,当我想在wp-content中创建新主题时,我的权限被拒绝。我在Ubuntu 18.04中。

这是我的docker-compose.yml文件:

version: '3'

services:
  # Database
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: password
     MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
    networks:
      - wpsite
  # phpmyadmin
  phpmyadmin:
    depends_on:
      - db
    image: phpmyadmin/phpmyadmin
    restart: always
    ports:
      - '8080:80'
    environment:
      PMA_HOST: db
      MYSQL_ROOT_PASSWORD: password 
    networks:
      - wpsite
  # Wordpress
  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
     - '8000:80'
    restart: always
    volumes: ['./:/var/www/html']
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
    networks:
      - wpsite
networks:
  wpsite:
volumes:
  db_data:

我试图更改为“ chown -Rf myname:myname”。因此,我可以创建一个文件,但无法在wordpress中上传文件。所以我想知道如何在ubuntu中使用docker挂载卷正确设置权限。

1 个答案:

答案 0 :(得分:0)

一种解决方案是将您自己的用户myname添加到www-data

sudo usermod -aG www-data myname

并确保www-data组对所有文件/目录具有写特权,并对目录具有执行特权。

另一种解决方案是让您自己的用户拥有所有文件(作为所有者的myname:www-data)和目录,并确保www-data组具有适当的读/写特权,以便WordPress容器的Web服务器可以使用该组读取/写入文件的权限。

题外话:还要确保有一个

define('FS_METHOD', 'direct');
您的wp-config.php中的

行。