Работа с сервером PHP-FPM на Drupal 7

Главные вкладки

Аватар пользователя Ritka Ritka 30 сентября 2022 в 11:18

Всем привет! Недавно на моем хостинге появилась возможность использовать сервер PHP-FPM вместо Apache, и сам сервер PHP-FPM реально работает быстрее, но, к сожалению, все правила, которые есть в файле .htaccess игнорируются, так как эти правила только пригодны для Apache, а у меня там прописано правило открывающее доступ к админ панели только для конкретного IP, такое правило можно прописать для PHP-FPM, или есть только стандартные правила и все ?

Комментарии

Аватар пользователя Ritka Ritka 30 сентября 2022 в 12:00

К сожалению мне ответили на хостинге так -

Настройки веб-сервера nginx можно изменять только в разделе "Хостинг - Мои сайты - Настройки сайта".

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

Аватар пользователя yaro yaro 3 октября 2022 в 14:00

Ну, тут путь только к VPS и настройке самостоятельно
Хотя непонятно какие там опции вообще доступны для настроек

Аватар пользователя bsyomov bsyomov 5 октября 2022 в 12:02

Выделенный сервер, это когда есть доступ ко всему серверу, и надо самому всё настраивать, в частности конфиг nginx. А когда всё спрятано за панелькой, это скорее всего всё же шаред хостинг.

Аватар пользователя bsyomov bsyomov 5 октября 2022 в 20:37

Это не выделенный сервер, это VPS, поверх которого поставлена какая-нибудь кривая панелька(потому что нормальная денег стоит), и дана техподдержка, которая, обычно, у хостеров ничего не умеет толком, кроме самых базовых вещей.
Такое называется managed VPS. И часто, лучше уж шаред хостинг, потому, что квалификации админов и поддержки на него нужно меньше, т.к. всё одинаковое.

Аватар пользователя bsyomov bsyomov 4 октября 2022 в 15:14

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

Аватар пользователя Ritka Ritka 5 октября 2022 в 9:12

Понятно.... а тогда вопрос сервер Апаче настроенный друпалом стандартно (зашиты и все прочее), а на сервере Php-fpm я надеюсь те стандартные настройки тоже сами по себе хорошые с точки зрения защиты итд ? Или я что то не так поняла ?

Аватар пользователя bsyomov bsyomov 5 октября 2022 в 11:47

Если используется nginx + php-fpm, то зависит от того, как написан конфиг nginx.
Если apache + php-fpm, от того как настроен apache, и если включена обработка .htaccess, от того что в нём.

У php-fpm нет каких-то специфичных настроек для разных приложений, только runtime настройки php и кол-во порождаемых процессов, если упростить.

Аватар пользователя Ritka Ritka 5 октября 2022 в 12:57

Уже ответ дали хостеры )))

Особенности работы

Можно использовать версию PHP не ниже 7.0.
Правила в .htaccess не применяются.
Процессы PHP-FPM запущены постоянно и потребляют память, которая учитывается в квоте хостинг-аккаунта. При большом количестве одновременно работающих запросов может требоваться большой объём оперативной памяти.
PHP обрабатывает только файлы с расширением .php.
Стандартным индексным файлом является index.php. Для сравнения: на запрос к /html/ Apache вернёт содержимое файла /html/index.html, если он существует, а PHP-FPM в такой ситуации вернёт ошибку 403, если каталог /html/ существует, или направит запрос на /index.php, если каталога /html/ не существует. При выборе конфигурации PHP-FPM «Dokuwiki» стандартным индексным файлом будет считаться doku.php.
Маршруты настроены следующим образом:
Если обращение идёт к конкретному файлу с расширением .php — этот файл запускается (например, запрос к /path/test.php запускает файл /path/test.php, если такого файла не существует — возвращается ошибка «File not found»).
Если обращение идёт к URL существующего каталога — запускается index.php из этого каталога (например, запрос к /wp-admin/ запускает файл /wp-admin/index.php, если файла index.php в каталоге нет — возвращается ошибка 403).
Все остальные запросы перенаправляются к /index.php (запрошенный URL будет доступен в $_SERVER['REQUEST_URI']).

Аватар пользователя bsyomov bsyomov 5 октября 2022 в 20:32

Вообще, это не правильный конфиг для Drupal. Не будут, например работать стили изображений.
Т.е. в этом случае должен быть какой-нибудь шаблон конфига Nginx для Drupal специальный, как и для многих других приложений, если не дают доступа к редактированию конфига. Во многих панельках для хостинга так и сделано.

Если такого нет, ваши хостеры явно придумали фигню. Smile В мире шаред хостинга так бывает не редко...

Аватар пользователя Ritka Ritka 6 октября 2022 в 9:58

Ну пока что все работает хорошо на PHP-FPM, а вот на OpenLiteSpeed загруженные картинки при редактировании не отображались...

Аватар пользователя Ritka Ritka 30 сентября 2022 в 17:51

Удалось сделать через модуль Rules:

СОБЫТИЕ Инициализация Drupal

ЭЛЕМЕНТЫ
Сравнение текста
И
NOT Выполнение PHP-кода

И все работает но не учитывается регистр букв в сравнении текста, это можно как то настроить ?

Аватар пользователя Ritka Ritka 30 сентября 2022 в 19:35

А можно другим способом кроме как в файле .htaccess открыть доступ к админ панели по одному ІР адресу ?