Puphpet: Ошибка WP-CLI при установке плагинов/тем. "Не удалось создать каталог". Ошибка разрешений? Убунту 14.04 х64

Созданный на 2 мар. 2015  ·  6Комментарии  ·  Источник: puphpet/puphpet

Привет, ребята, я часами пытался найти решение этой проблемы, но я сдался, и пришло время обратиться за помощью.

Я запускаю 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'

Самый полезный комментарий

также обязательно проверьте права доступа к каталогу wp-content-upgrade.

Все 6 Комментарий

Просто обновление-

Я решил проблему, временно, однако, я надеюсь, что есть лучший способ.

Итак, в основном я использую флаг --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 не указывает, _где_ он пытается создать каталог.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

bbonora picture bbonora  ·  3Комментарии

bickerstoff picture bickerstoff  ·  4Комментарии

jonahbron picture jonahbron  ·  6Комментарии

rlweb picture rlweb  ·  4Комментарии

ethanf22 picture ethanf22  ·  6Комментарии