Привет, ребята, я часами пытался найти решение этой проблемы, но я сдался, и пришло время обратиться за помощью.
Я запускаю Wordpress на сервере Ubuntu 14.04 x64. Я использую настроенную папку WP-Skeleton Марка Джакита и две общие папки; /var/www/wp (имя сайта/www/wp на хосте) для основных файлов Wordpress и /var/www/content/ (имя сайта/www/content на хосте) для пользовательского каталога контента, который является целью WP. -Скелет.
Когда SSH подключается к виртуальной машине и запускает WP-CLI, кажется, что все работает правильно, поскольку WP-CLI знает путь к каталогу моего содержимого и основным файлам 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.
Моя первая и пока единственная мысль заключается в том, что это ошибка разрешений, но с моими ограниченными знаниями в этой области я смог сделать только так много, однако я могу сказать, что пытался изменить разрешения каталог содержимого на 755, затем на 765 и даже на 777, используя chmod -v 755 /var/www/content/
.
Это тоже не сработало, даже с установленными разрешениями 777. Так что еще может быть не так? Я знаю, что это, вероятно, связано с разрешениями для www-данных, но, как я уже сказал, у меня ограниченные знания о том, что искать или изменять. Я уверен, что это что-то простое, и я уверен, что это не имеет прямого отношения к WP-CLI, так как у меня такое чувство, что если бы я использовал любое другое веб-приложение, чтобы попытаться установить его в папку www, которое у меня было бы та же проблема.
Я собираюсь включить свой файл config.yaml ниже для полноты картины. Если вам понадобится какая-либо другая информация от меня, я обязательно включу ее.
Заранее спасибо,
ПиДжей
vagrantfile-local:
vm:
box: puphpet/ubuntu1404-x64
box_url: puphpet/ubuntu1404-x64
hostname: ''
memory: '512'
cpus: '1'
chosen_provider: virtualbox
network:
private_network: 192.168.56.101
forwarded_port:
FzsTy6yOA4TD:
host: '8220'
guest: '82'
post_up_message: ''
provider:
virtualbox:
modifyvm:
natdnshostresolver1: on
vmware:
numvcpus: 1
parallels:
cpus: 1
provision:
puppet:
manifests_path: puphpet/puppet
manifest_file: site.pp
module_path: puphpet/puppet/modules
options:
- '--verbose'
- '--hiera_config /vagrant/puphpet/puppet/hiera.yaml'
- '--parser future'
synced_folder:
2qEylDqy8Swr:
owner: www-data
group: www-data
source: ./www
target: /var/www
sync_type: nfs
rsync:
args:
- '--verbose'
- '--archive'
- '-z'
exclude:
- .vagrant/
auto: 'false'
T5OqRjLNSpNW:
owner: www-data
group: www-data
source: ./www/shared
target: /var/www/shared
sync_type: nfs
rsync:
auto: 'false'
usable_port_range:
start: 10200
stop: 10500
ssh:
host: null
port: null
private_key_path: null
username: vagrant
guest_port: null
keep_alive: true
forward_agent: false
forward_x11: false
shell: 'bash -l'
vagrant:
host: detect
server:
install: '1'
packages:
- vim
- htop
- curl
- git
- vsftpd
- phpmyadmin
- imagemagick
- ack-grep
- ngrep
- mysql-client
users_groups:
install: '1'
groups: { }
users: { }
cron:
install: '1'
jobs: { }
firewall:
install: '1'
rules: null
apache:
install: 0
settings:
user: www-data
group: www-data
default_vhost: true
manage_user: false
manage_group: false
sendfile: 0
modules:
- rewrite
vhosts:
42vlikdkfgdu:
servername: awesome.dev
serveraliases:
- www.awesome.dev
docroot: /var/www/awesome
port: '80'
setenv:
- 'APP_ENV dev'
directories:
pvg0rcqmuxg8:
provider: directory
path: /var/www/awesome
options:
- Indexes
- FollowSymlinks
- MultiViews
allow_override:
- All
require:
- all
- granted
custom_fragment: ''
engine: php
custom_fragment: ''
ssl_cert: ''
ssl_key: ''
ssl_chain: ''
ssl_certs_dir: ''
mod_pagespeed: 0
nginx:
install: '1'
settings:
default_vhost: 1
proxy_buffer_size: 128k
proxy_buffers: '4 256k'
upstreams: { }
vhosts:
muuruopw9i98:
proxy: ''
server_name: peterjohnjoseph.dev
server_aliases:
- www.peterjohnjoseph.dev
www_root: /var/www/
listen_port: '80'
location: \.php$
index_files:
- index.html
- index.htm
- index.php
envvars:
- 'APP_ENV dev'
engine: php
client_max_body_size: 1m
ssl_cert: ''
ssl_key: ''
php:
install: '1'
version: '56'
composer: '1'
composer_home: ''
modules:
php:
- cli
- intl
- mcrypt
- memcached
- gd
- imagick
- common
- imap
- memcache
- fpm
- mysql
- curl
pear:
- PHP_CodeSniffer
pecl:
- pecl_http
- ZendOpcache
ini:
display_errors: On
error_reporting: '-1'
session.save_path: /var/lib/php/session
timezone: America/Chicago
mod_php: 0
hhvm:
install: '0'
nightly: 0
composer: '1'
composer_home: ''
settings:
host: 127.0.0.1
port: '9000'
ini:
display_errors: On
error_reporting: '-1'
timezone: null
xdebug:
install: '1'
settings:
xdebug.default_enable: '1'
xdebug.remote_autostart: '0'
xdebug.remote_connect_back: '1'
xdebug.remote_enable: '1'
xdebug.remote_handler: dbgp
xdebug.remote_port: '9000'
xdebug.idekey: phpstorm1
xhprof:
install: '0'
wpcli:
install: '1'
version: v0.17.1
drush:
install: '0'
version: 6.3.0
ruby:
install: '1'
versions:
3Q9R9NNOgcs0:
default: '1'
version: 2.1.2
gems:
- sass
- capistrano
- capistrano-ext
- capistrano-grunt
- capistrano-wpcli
bundler: '1'
nodejs:
install: '1'
npm_packages:
- grunt
- grunt-cli
- bower
python:
install: '1'
packages: { }
versions:
1uAr8TaxGJqU:
version: ''
mysql:
install: '1'
override_options: { }
root_password: '123'
adminer: 0
databases:
0Wza8YHl1ivy:
grant:
- ALL
name: pjj_dev
host: localhost
user: dbuser
password: '123'
sql_file: ''
postgresql:
install: '0'
settings:
root_password: '123'
user_group: postgres
encoding: UTF8
version: '9.3'
databases: { }
adminer: 0
mariadb:
install: '0'
override_options: { }
root_password: '123'
adminer: 0
databases: { }
version: '10.0'
sqlite:
install: '0'
adminer: 0
databases: { }
mongodb:
install: '0'
settings:
auth: 1
port: '27017'
databases: { }
redis:
install: '0'
settings:
conf_port: '6379'
mailcatcher:
install: '0'
settings:
smtp_ip: 0.0.0.0
smtp_port: 1025
http_ip: 0.0.0.0
http_port: '1080'
mailcatcher_path: /usr/local/rvm/wrappers/default
from_email_method: inline
beanstalkd:
install: '0'
settings:
listenaddress: 0.0.0.0
listenport: '13000'
maxjobsize: '65535'
maxconnections: '1024'
binlogdir: /var/lib/beanstalkd/binlog
binlogfsync: null
binlogsize: '10485760'
beanstalk_console: 0
binlogdir: /var/lib/beanstalkd/binlog
rabbitmq:
install: '0'
settings:
port: '5672'
elastic_search:
install: '0'
settings:
version: 1.4.1
java_install: true
solr:
install: '0'
settings:
version: 4.10.2
port: '8984'
Просто обновление-
Я решил проблему, временно, однако, я надеюсь, что есть лучший способ.
Итак, в основном я использую флаг --allow-root для всех своих команд, чтобы я мог использовать sudo для запуска команд от имени пользователя root. Так что в основном команда выглядит как sudo wp plugin install jetpack --allow-root
Как я уже сказал, если у кого-то есть более простой способ справиться с этим, я хотел бы знать.
Я нашел это, https://www.digitalocean.com/community/tutorials/how-to-use-puppet-to-manage-wordpress-themes-and-plugins-on-ubuntu-14-04 , в котором подробно описано, как я установил бы WP-CLI с Puppet как обычно, однако, поскольку он уже установлен, есть одна часть, которая может помочь в моей ситуации, и она находится в файле «resource.pp», который он создает, чтобы сказать $user=root
и еще одна строка кода для обозначения флага --allow-root
. Есть ли место, где я могу ввести этот код? Я не уверен, как бы я поступил, просматривая конфигурацию как есть, поскольку Puppet не настроен как типичный виртуальный компьютер на основе Puppet.
Была такая же проблема только что на локальном сервере OSX.
wp --debug plugin install redux-developer-mode-disabler
Installing Redux Developer Mode Disabler (1.0.0)
Downloading install package from https://downloads.wordpress.org/plugin/redux-developer-mode-disabler.1.0.0.zip...
Using cached file '/Users/jasper/.wp-cli/cache/plugin/redux-developer-mode-disabler-1.0.0.zip'...
Unpacking the package...
Warning: Could not create directory
все файлы и папки _www:_www и каталоги 755 и файлы 644, так почему каталог не может быть создан? Добавление своего пользователя в группу _www тоже не помогло. --allow-root работает, но да, это не нужно.
@peterjohnjoseph Только что попробовал это, работает нормально после последних обновлений разрешений до Vagrantfile
.
Однако я изменил одну вещь. От www_root
до peterjohnjoseph.dev
не должно быть /var/www
. Я изменил его на /var/www/peterjohnjoseph.dev
.
/var/www
должен быть каталогом, содержащим несколько каталогов проекта, а не самим проектом.
@jasperf Вам нужно запустить wp-cli из самой виртуальной машины. Я не поддерживаю OSX Server.
Спасибо, jtreminio. Я не уверен, что вы понимаете, насколько высоко ценится ваша работа.
также обязательно проверьте права доступа к каталогу wp-content-upgrade.
вы имеете в виду wp-content/upgrade
. Это полезно, спасибо. Я обнаружил, что могу изменить владельца этого каталога, запустить обновление ядра и плагинов wp-cli, а затем снова изменить его. Жаль, что сообщение об ошибке wp-cli не указывает, _где_ он пытается создать каталог.
Самый полезный комментарий
также обязательно проверьте права доступа к каталогу wp-content-upgrade.