WP-CLI::无法将插件安装为www-data

时间:2015-11-15 作者:MacUsers

刚开始使用WP-CLI,而不是使用--allow-root, 决定作为www-data 使用者到目前为止一切都很好,但根本无法以这种方式安装任何插件:

root@wp-ks320:/var/www/ks320# sudo -u www-data wp plugin install hello-dolly
Installing Hello Dolly (1.6)
Warning: Could not create directory.
Downloading install package from https://downloads.wordpress.org/plugin/hello-dolly.1.6.zip...
Unpacking the package...
#
root@wp-ks320:/var/www/ks320# sudo -u www-data -- wp plugin status hello-dolly
Error: The \'hello-dolly\' plugin could not be found.
一直在说Could not create directory 但创建目录为www-data 不是什么问题:

root@wp-ks320:/var/www/ks320# sudo -u www-data -- mkdir wp-content/testDir
root@wp-ks320:/var/www/ks320# ls -l wp-content|grep test
drwxr-xr-x  2 www-data www-data     4096 Nov 15 22:58 testDir
如果我使用wp --allow-root plugin install hello-dolly 相反,它工作正常,但创建的目录如下root 因为显而易见的原因。我错过了什么或做错了什么?最好的

1 个回复
SO网友:Anson W Han

根据您报告的问题和shell bash的预览,看起来您可能为网站的docroot设置了错误的所有者/组和权限。

很可能在您的托管环境中,整个ks320目录当前没有www数据作为组分配。

它可以归root所有,但应分配给www数据组(递归)。运行ls -l/var/www 目录将向每个文件和文件夹输出当前权限、所有者和组分配。

它可能类似于

drwr-xr-x  ###  root  root  ###   DATE   FILE_OR_FOLDER_NAME
但应类似于:

drwrwxr-x  ###  root  www-data  ###   DATE   FILE_OR_FOLDER_NAME
您可以通过/var/www 使用以下命令的目录:

chown -R root:www-data ks320
然后,您还需要确保组对目录具有读/写/执行权限。您可以通过/var/www 目录包含:

chmod -R 775 ks320
一旦设置了文件夹的权限和组分配,您的“www数据”用户应该能够创建插件目录并将wordpress插件文件解压到位。

For more about recommended permissions for a Wordpress site\'s files and folders, see https://codex.wordpress.org/Changing_File_Permissions