• Всем привет!

    На сервере нет ftp. Хочется иметь автоматическое обновление плагинов и ядра. Погуглив нашел, что можно определить константу FS_METHOD в значение direct, чтобы с файловой системой работал php.

    На сервере установлен nginx, который передает на php-fpm запросы. Второй по умолчанию крутится из под apache/apache пользователя и группы.

    Права стоят 775 на папку upgrade/wp-content/themes/plugins и др. Владелец выступает пользователь web, группа apache.

    При попытке обновить плагин выводится:

    Загрузка обновления с https://downloads.wordpress.org/plugin/lockdown-wp-admin.2.3.2.zip…
    Извлечение обновления…
    Установка свежей версии…
    Удаление старой версии плагина…
    Не удалось удалить старый плагин.
    Обновление плагина не удалось.

    При этом новые плагины устанавливаются нормально. Куда посмотреть и что покрутить можно, чтобы работать с direct FS_METHOD?

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Модератор Yui

    (@fierevere)

    永子

    Второй по умолчанию крутится из под apache/apache пользователя и группы.

    второй это php-fpm?

    в таком случае выставляйте владельца на файлы-папки как apache:apache
    файлы при этом должны читаться процессом nginx
    т.е. файлы — 644, папки — 755
    отдельные вещи типа wp-config.php могут иметь права 600 и быть читабельными только PHP

    Второй это php-fpm.
    Владельца менять не могу, ибо владелец это учетная запись пользователя, группа уже стоит apache и права на группу rwx. Мне кажется, что этого должно хватать, чтобы процесс из группы apache мог получить права к файловой системе на чтение и запись.

    Это все верно, nginx прав хватает на чтение файла, не хватает прав на обновление плагина, это уже php процессу не хватает чего-то получается.

    Модератор Yui

    (@fierevere)

    永子

    nginx права на запись не нужны
    нужны права записи процессу PHP

    можете создать отдельный пул для wordpress , если не можете поменять права файлов-папок
    пул , который будет работать от аккаунта владельца файлов-папок

    вообще я несколько удивлена что вы гоняете php-fpm одним пулом от аккаунта apache,в php-fpm как раз все самое вкусное то, что можно без проблем запускать его от нужного вам пользователя, владельца конкретного сайта
    можно даже запустить несколько пулов, с разными настройками
    например wordpress front, wordpress backend, wordpress login, wordpress comments , очень удобно, если надо ограничить или наоборот расширить какие то пулы в времени выполнения, памяти, приоритете исполнения (nice) и общем количестве процессов

    Да, nginx права на запись не нужны.
    PHP процесс это дочерний процесс fpm, который работает как apache:apache. Группе есть права на запись и группа стоит apache на файлах. Новые плагины ставит, а вот старые не обновляет.

    Apache это дефолтный пользователь и группа в конфиге php-fpm, которые вместе с пакетом php-fpm поставились.
    Про запуск нескольких пулов знаю, но это усложнение, мне кажется.

    Может есть какой-то verbose моде, который выведет детали или в лог куда-то запишет, почему не обновляется?

    Модератор Yui

    (@fierevere)

    永子

    обычный error.log
    ошибки пишутся туда

    [global]
    error_log =

    в php-fpm.conf

    также в настройках пула можно выставить

    catch_workers_output = yes

    Про запуск нескольких пулов знаю, но это усложнение, мне кажется.

    как раз упрощение, работая по-старинке с одним владельцем (как в mod_php) это и мучение с правами и риск безопасности

    php-fpm от аккаутов владельцев сайтов через unix socket владельцем которого будет nginx.nginx — очень простое и элегантное решение
    а если еще chroot добавить, то хакерам будет вообще уныло, даже если через уязвимости взломают

    архитектура high load это вкусно
    немного про усадку пулов в chroot
    на простеньком английском, увы, у меня не было желания по-русски писать эти статьи, но думаю что аналогичной писанины в сети уже полно

    Ок, спасибо за ссылки, посмотрю, может быть действительно переделаю на несколько пулов.

    На сервере не много оперативной памяти еще, а на старт несколько пулов даже с 1 процессом для N сайтов тоже потребуется ресурсов больше. Ну и утилизировать их скорее всего так эффективно не получится как с общим, но зато разграничить как раз можно по ресурсам тоже.

    Модератор Yui

    (@fierevere)

    永子

    ссылка только вторая может быть полезна, первая — больше обзорная,
    php-fpm в 2011 году вообщем-то была пионерской технологией,
    это сейчас оно почти в каждом дистрибутиве есть

    вторая про специфические проблемы по усадке пулов в chroot, типичные проблемы
    правда я уже не стану рекомендовать компилить GraphicsMagick, с ним есть определенные проблемы совместимости, лучше все же ImageMagick
    почту опять же лучше через msmtp релеить из чрута
    конфиг пула:

    php_admin_value[sendmail_path] = /bin/msmtp -a Аккаунт -t

    вообщем, не уговариваю на chroot, но сделать конфигурацию на несколько пулов и облегчить себе жизнь — несложно

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Тема «Работа с FS_METHOD direct» закрыта для новых ответов.