我按照 this giude 在容器中安装 wordpress 以进行测试,但使用 mariadb
和 linux 作为主机。这是我的 docker-compose:
version: '3.8'
services:
database:
image: mariadb
restart: always
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: wordpressDB
MYSQL_USER: user
MYSQL_PASSWORD: password
volumes:
- mysql:/var/lib/mysql
wordpress:
depends_on:
- database
links:
- database
image: wordpress:latest
restart: always
ports:
- '8000:80'
environment:
WORDPRESS_DB_HOST: database:3306
WORDPRESS_DB_USER: user
WORDPRESS_DB_PASSWORD: password
WORDPRESS_DB_NAME: wordpressDB
volumes:
- ./wordpress:/var/www/html
- ./wordpress/plugins:/var/www/html/wp-content/plugins
- ./wordpress/themes:/var/www/html/wp-content/themes
- ./wordpress/uploads:/var/www/html/wp-content/uploads
- ./wordpress/wp-content:/var/www/html/wp-content
volumes:
mysql: {}
目前我可以访问 wp-admin
信息中心,但无法更新/安装任何插件并出现错误:
Could not create directory.
如前所述here,我尝试更改文件夹的权限,但没有成功:
$ 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/ -type d -exec chmod 0755 {} \;
$ find /var/www/ -type f -exec chmod 644 {} \;
这是 ls -l
-rwxrwxr-x 1 1000 985 405 Jul 12 06:30 index.php
-rwxrwxr-x 1 1000 985 19915 Jul 12 06:30 license.txt
drwxrwxr-x 1 1000 985 0 Jul 12 06:30 plugins
-rwxrwxr-x 1 1000 985 7345 Jul 12 06:30 readme.html
drwxrwxr-x 1 1000 985 0 Jul 12 06:30 themes
drwxrwxr-x 1 1000 985 0 Jul 12 06:30 uploads
-rwxrwxr-x 1 1000 985 7165 Jul 12 06:30 wp-activate.php
drwxrwxr-x 1 1000 985 20480 Jul 12 06:30 wp-admin
-rwxrwxr-x 1 1000 985 351 Jul 12 06:30 wp-blog-header.php
-rwxrwxr-x 1 1000 985 2328 Jul 12 06:30 wp-comments-post.php
-rwxrwxr-x 1 1000 985 5456 Jul 12 06:30 wp-config-docker.php
-rwxrwxr-x 1 1000 985 2913 Jul 12 06:30 wp-config-sample.php
-rwxrwxr-x 1 1000 985 5592 Jul 12 07:03 wp-config.php
drwxrwxr-x 1 1000 985 0 Jul 12 06:30 wp-content
-rwxrwxr-x 1 1000 985 3939 Jul 12 06:30 wp-cron.php
drwxrwxr-x 1 1000 985 40960 Jul 12 06:30 wp-includes
-rwxrwxr-x 1 1000 985 2496 Jul 12 06:30 wp-links-opml.php
-rwxrwxr-x 1 1000 985 3313 Jul 12 06:30 wp-load.php
-rwxrwxr-x 1 1000 985 44994 Jul 12 06:30 wp-login.php
-rwxrwxr-x 1 1000 985 8509 Jul 12 06:30 wp-mail.php
-rwxrwxr-x 1 1000 985 21125 Jul 12 06:30 wp-settings.php
-rwxrwxr-x 1 1000 985 31328 Jul 12 06:30 wp-signup.php
-rwxrwxr-x 1 1000 985 4747 Jul 12 06:30 wp-trackback.php
-rwxrwxr-x 1 1000 985 3236 Jul 12 06:30 xmlrpc.php
我哪里弄错了?
答案 0 :(得分:0)
经过一番挖掘,问题出在我在 config.php
中添加的这一行,它在我启动容器时删除了丢失的 FTP 错误:
define('FS_METHOD', 'direct');
之后我多次尝试chown
网站的目录,但都没有成功。这很奇怪,因为我使用 root 帐户来更改它们。然而他们仍然对users
分组。
最后,我将 www-data
用户添加到 users
和 root
(以防万一)组并解决了问题。
usermod -a -G users www-data
usermod -a -G root www-data
更新
我发现的另一个解决方案是使用具有读/写权限的普通卷 ./wordpress
而不是使用绑定卷 wordpress
。这是新的 docker-compose
:
wordpress:
depends_on:
- database
links:
- database
image: wordpress:latest
restart: always
read_only: false
ports:
- '8000:80'
environment:
WORDPRESS_DB_HOST: database:3306
WORDPRESS_DB_USER: user
WORDPRESS_DB_PASSWORD: password
WORDPRESS_DB_NAME: database
volumes:
- wordpress:/var/www/html:rw
在上述更改后,文件夹的 ls -l
输出如下所示:
-rw-r--r-- 1 www-data www-data 405 Feb 6 2020 index.php
-rw-r--r-- 1 www-data www-data 19915 Jan 1 2021 license.txt
-rw-r--r-- 1 www-data www-data 7345 Dec 29 2020 readme.html
-rw-r--r-- 1 www-data www-data 7165 Jan 21 01:37 wp-activate.php
drwxr-xr-x 1 www-data www-data 2668 May 12 23:49 wp-admin
-rw-r--r-- 1 www-data www-data 351 Feb 6 2020 wp-blog-header.php
-rw-r--r-- 1 www-data www-data 2328 Feb 17 13:08 wp-comments-post.php
-rw-rw-r-- 1 www-data www-data 5456 Jul 2 02:02 wp-config-docker.php
-rw-r--r-- 1 www-data www-data 2913 Feb 6 2020 wp-config-sample.php
-rw-r--r-- 1 www-data www-data 5560 Jul 15 07:30 wp-config.php
drwxr-xr-x 1 www-data www-data 54 May 12 23:49 wp-content
-rw-r--r-- 1 www-data www-data 3939 Jul 30 2020 wp-cron.php
drwxr-xr-x 1 www-data www-data 8378 May 12 23:49 wp-includes
-rw-r--r-- 1 www-data www-data 2496 Feb 6 2020 wp-links-opml.php
-rw-r--r-- 1 www-data www-data 3313 Jan 10 2021 wp-load.php
-rw-r--r-- 1 www-data www-data 44994 Apr 4 18:34 wp-login.php
-rw-r--r-- 1 www-data www-data 8509 Apr 14 2020 wp-mail.php
-rw-r--r-- 1 www-data www-data 21125 Feb 2 00:10 wp-settings.php
-rw-r--r-- 1 www-data www-data 31328 Jan 27 21:03 wp-signup.php
-rw-r--r-- 1 www-data www-data 4747 Oct 8 2020 wp-trackback.php
-rw-r--r-- 1 www-data www-data 3236 Jun 8 2020 xmlrpc.php
现在 wordpress 更新/安装插件并且 wordpress 本身的更新工作完美。