Установка php_value в VirtualHost в Debian Squeeze Apache 2.4.10 + mod_proxy_fcgi + php-fpm?

После обновления нашего сервера до Debian Jessie (8.3) я переключил Apache 2.4.10 с mpm_worker / mod_php на mpm_event / proxy_fcgi / php-fpm. Я настроил передачу обслуживания для всех виртуальных хостов как таковых:

# cat conf-enabled/php5-fpm.conf 
<FilesMatch \.php$>
    SetHandler "proxy:unix:/var/run/php5-fpm.sock|fcgi://localhost/"
</FilesMatch>

Я также отключил mod_php. Потому что, apache не позволит мне иметь директивы php_admin_value / php_value / php_flag в файлах VirtualHosts.

Invalid command 'php_value', perhaps misspelled or defined by a module not included in the server configuration

Я немного читал о файлах .user.ini, но это не похоже на то, что директивы, которые мне нужно установить, поддерживаются в там, и я только что успешно удалил все файлы .htaccess со своего сайта из соображений производительности, так что это кажется обратным (и несовместимым) подходом.

Другое распространенное предложение - создать уникальный пул для каждого VirtualHost, но это меня беспокоит по двум причинам:

  1. Сложность настройки - сейчас настройка очень проста
  2. Переключение с сокета на TCP? Я прав в том, что мне нужен уникальный TCP-порт для каждого пула? Могу ли я в качестве альтернативы нуждаться в уникальном сокете для каждого пула?
  3. Распределение памяти! У этого сервера не так много оперативной памяти, как хотелось бы. Кажется расточительным иметь кучу экземпляров php-fpm для менее посещаемых сайтов на сервере.
0
задан 14 March 2016 в 22:46
2 ответа

В конце концов, я просто определил несколько разделов [HOST =] в моей конфигурации /etc/php5/fpm/php.ini.

http://php.net/manual/ en / ini.sections.php

Это казалось более безопасным, чем использование mod_env или .user.ini.

2
ответ дан 4 December 2019 в 11:45

Вы можете передавать переменные среды в пул CGI из файлов конфигурации Apache:

    SetEnv PHP_ADMIN_VALUE "open_basedir=/path-to-your-doc-root"
    <FilesMatch \.php$>
        SetHandler "proxy:unix:/var/run/php5-fpm.sock|fcgi://localhost/"
    </FilesMatch>

mod_env должен быть включен, и вы должны отключить обработку файлов .htaccess , если сторонние пользователи могут загружать или изменять их ( AllowOverride None ). Если вам нужно передать более одной переменной, вы должны объединить их символом новой строки ( \ n ).

Злоумышленник может изменить open_basedir или другие важные переменные конфигурации PHP (например: disable_functions ) с помощью простого .htaccess . Я не знаю, можно ли предотвратить такое поведение.

Ссылка: https://bugs.php.net/bug.php?id=51595

2
ответ дан 4 December 2019 в 11:45

Теги

Похожие вопросы