以下是路径/var/www/html
上Wordpress Docker容器中的原始文件:
$docker exec 5b957c7b9c5ad054883694afbfb80d3c9df6707458d55011f471be0701f3890c ls-l
总数192
-rw-r--r--1 www-data www-data 418-Sep 25 2013 index.php
-rw-r--r--1 www-data www-data 19935-Jan 2 18:51 license.txt
-rw-r--r--1 www-data www-data 7433 Jan 11 17:46 readme.html
-rw-r--r--1 www-data www-data 5447 2016年9月27日wp-activate.php
drwxr-xr-x 9 www data www data 4096 May 16 21:50 wp admin
-rw-r--r--1 www-data www-data 364-Dec 19 2015 wp-blog-header.php
-rw-r--r--1 www-data www-data 1627 2016年8月29日wp-comments-post.php
-rw-r--r--1 www-data www-data 2764-May 29 22:19 wp-config-sample.php
-rw-r--r--1 www-data www-data 3148-May 29 22:19 wp-config.php
drwxr-xr-x 4 www data www data 4096 May 16 21:50 wp内容
-rw-r--r--1 www-data www-data 3286 2015年5月24日wp-cron.php
drwxr-xr-x 18 www-data www-data 12288 May 16 21:50 wp包括
-rw-r--r--1 www-data www-data 2422 2016年11月21日wp-links-opml.php
-rw-r--r--1 www-data www-data 3301 2016年10月25日wp-load.php
-rw-r--r--1 www-data www-data 33939 2016年11月21日wp-login.php
-rw-r--r--1 www-data www-data 8048 Jan 11 05:15 wp-mail.php
-rw-r--r--1 www-data www-data 16255 Apr 6 18:23 wp-settings.php
-rw-r--r--1 www-data www-data 29896 2016年10月19日wp-signup.php
-rw-r--r--1 www-data www-data 4513 2016年10月14日wp-trackback.php
-rw-r--r--1 www-data www-data 3065 2016年8月31日xmlrpc.php
我正在尝试启动装有Docker卷的Wordpress容器,以便能够持久存储自定义文件:
$sudo docker run-p80:80——链接一些mysql:mysql-v/var/www:/var/www/html——名称docker wordpress-d wordpress
问题是,即使在/var/www
中准确复制本地文件的所有权和特权:
$sudo chown-R www-data:www-data/var/www
$sudo find/var/www/-type d-exec chmod 755{}\;
$sudo find/var/www/-type f-exec chmod 644{}\;
在容器内运行Wordpress时,我仍然会遇到此类错误:
无法创建目录
如何正确设置权限以确保Wordpress能够写入已装入的Docker卷
查看您的错误消息,我得出结论,您正在尝试安装插件或更新wordpress本身
这个问题有点棘手
但是,执行chown-R www-data:www-data/var/www
以设置正确的用户:组权限在技术上应该可以解决这个问题
在新的wordpress上安装上传
&插件
文件夹尚不存在,因此,当安装程序试图创建插件/子文件夹
时,它将抛出错误
如何修复Wordpress/Docker插件安装权限问题
然而,一旦掌握了这个问题,解决它就相当容易了
选项A
在.Docker
文件的末尾,但在任何[CMD]
命令之前添加以下内容
运行mkdir/var/www/html/wp content/plugins
运行mkdir/var/www/html/wp content/uploads
RUN chown-R www-data:www-data/var/www
运行find/var/www/-typed-execchmod0755{}
运行find/var/www/-type f-exec chmod 644{}
选项B
ssh连接到docker容器中
docker exec-it<;集装箱名称>/bin/bash
如果您不知道容器名称,请使用
docker ps
只需运行与上述示例相同的命令
$mkdir/var/www/html/wp content/plugins
$mkdir/var/www/html/wp content/uploads
$chown-R www-data:www-data/var/www
$find/var/www/-typed-execchmod0755{}
$find/var/www/-type f-exec chmod 644{}