我有一个Docker设置,可以很好地与Ubuntu,Nginx,PHP-FPM和MySQL配合使用。
WordPress可以写入uploads文件夹,我可以在线编辑模板,但是当我尝试升级WordPress或插件时,它失败了:
解压缩更新...
无法创建目录:wordpress
安装失败
我有chmod 777
整个WordPress文件夹,所以我不确定这是否与Docker或WordPress相关。我还检查了各种日志,但我找到的唯一相关行是:
192.168.59.3 - - [01 / Oct / 2014:14:16:58 +0000]“POST /wp-admin/update-core.php?action=do-core-upgrade HTTP / 1.1”200 5576 “/wp-admin/update-core.php”“Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_10_0)AppleWebKit / 537.36(KHTML,如 Gecko)Chrome / 37.0.2062.124 Safari / 537.36“
以下是我创建Docker环境的方法:
brew install docker boot2docker
boot2docker init
# Allow VM access to our space
curl http://static.dockerfiles.io/boot2docker-v1.2.0-virtualbox-guest-additions-v4.3.14.iso > ~/.boot2docker/boot2docker.iso
VBoxManage sharedfolder add boot2docker-vm -name home -hostpath /Users
boot2docker up
以下是我启动容器的方法:
docker run -p 80:80 --name wp -d -v ~/wordpress:/mnt/www:rw wp
这是Nginx配置:
server {
listen 80; ## listen for ipv4; this line is default and implied
listen [::]:80 default ipv6only=on; ## listen for ipv6
root /mnt/www;
index index.php index.html index.htm;
# Make site accessible from http://localhost/
server_name localhost;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to index.html
try_files $uri $uri/ /index.php?q=$uri&$args;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/www;
}
# pass the PHP scripts to FastCGI server
#
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
答案 0 :(得分:0)
似乎需要一些黑客能够像root用户一样以其他用户的身份写入已装入的卷。见https://github.com/boot2docker/boot2docker/issues/581
答案 1 :(得分:0)
我无权访问您的 Dockerfile ,但是由于docker和WordPress的权限问题,无法安装插件,模板或创建文件夹,您可以在< strong> Dockerfile 。如下所示:
COPY
例如,在我的代码runnig wordpress中,我使用:
COPY [--chown=<user>:<group>] <src>... <dest>
但是您需要使用最新版本的Docker才能使用chown参数。很多人会得到未知的chown参数,这是由于Docker版本引起的。因此,在使用chown之前,我指示要更新您的Docker。
关于COPY命令的Docker参考:https://docs.docker.com/engine/reference/builder/#copy
有关权限和www-data用户的Wordpress参考:https://codex.wordpress.org/Changing_File_Permissions