我现在一直在寻找解决这个问题的解决方案几天,但是我已经放弃并且有时间寻求帮助。
我在Ubuntu 14.04 x64上运行Wordpress,使用由PuPHPet创建的Vagrant服务器(一个自动GUI,用于为那些不知道的人创建Vagrant,Puppet和Hiera的框)。我使用Mark Jaquith的WP-Skeleton Wordpress文件夹设置,并设置了两个共享文件夹;用于Wordpress核心文件的/ var / www / wp(主机上的sitename / www / wp)和/ var / www / content /(主机上的sitename / www / content)用于WP的目的的自定义内容目录-Skeleton。
当SSH进入VM并运行WP-CLI时,只要WP-CLI知道我的Content目录的路径和Wordpress核心文件,一切似乎都能正常工作。问题是在尝试安装插件或主题时,如下所示 -
[07:20 PM]-[vagrant@packer-virtualbox-iso-1422601639]-[/var/www]-[git master]
$ wp plugin install jetpack
Installing Jetpack by WordPress.com (3.3.2)
Downloading install package from https://downloads.wordpress.org/plugin/jetpack.3.3.2.zip...
Unpacking the package...
Warning: Could not create directory.
我的第一个,到目前为止唯一的想法是这是一个权限错误,但由于我对这个领域的了解有限,我只能做这么多,但是,我可以说我&#39 ;尝试使用chmod -v 755 / var / www / content /.//>将Content目录的权限更改为755,然后是765,甚至是777。
即使权限设置为777,这也没有用。那么还有什么可能是错的?我知道这可能与www-data的权限有关,但就像我说的那样,我对要查找或更改的内容知之甚少。我确信这很简单,我确定这与WP-CLI没有直接关系,因为我有一种感觉,如果我使用任何其他网络应用程序尝试安装到www我遇到同样问题的文件夹。
如果有人需要我的任何信息,我会包含它,例如我的congif.yaml文件(当使用Hiera和Puppet存储通常在Vagran文件中的所有信息时,并自动安装Puppet模块)。它还包括有关Ubuntu框,文件夹设置等的信息。
提前致谢, P.J。
更新
我想补充一点,当我使用WP-CLI时,添加sudo wp plugin install jetpack --allow-root
会起作用,但是,如果我是root用户,我不应该使用sudo吗? / p>
答案 0 :(得分:5)
我找到了答案here,使其可以在我的本地MBP OSX服务器上运行。将define('FS_METHOD','direct');
添加到wp-config.php
。
确保所有文件和文件夹都是775
(还没有减少权限,但我肯定是可行的 - 即文件的664
- 本地也是如此)并且所有文件和文件夹都归your user
和群组_www
。
在项目文件夹内运行:
sudo chown user:_www *
sudo chmod -R 775 *
这应该允许您运行wpcli并创建没有问题的目录,而不使用root
。
NB _www
适用于OSX Apache用户组。对于Ubuntu,您需要www-data
NBB 在这里运行Mod PHP,目录的(快速)CGI(共享)托管设置755
和文件的644
通常运行良好。
答案 1 :(得分:1)
也许您必须在config.php文件中定义内容目录所在的位置。根据服务器的配置,尝试添加以下两行代码之一:
define('WP_CONTENT_DIR', realpath(dirname(__FILE__) . '/content'));
或
define('WP_CONTENT_DIR', realpath($_SERVER['DOCUMENT_ROOT'] . '/content'));
尝试使用第一个,如果它没有工作尝试第二个。我发现配置wp-deploy时出现了同样的错误,这对我有用。
答案 2 :(得分:0)
对我来说,我所要做的就是sudo chmod -R 775 wp-content
。所有者对我没有影响插件的更新,我也不需要进行任何其他更改。
关于@helgatheviking所说的“强化” ...如果您担心安全性并希望尽可能地安全,请将其更改为755!我想说这是一件好事,只要您不介意每次WP-CLI插件更新都更改权限。