@5exi

Вопрос по настройке pool в среде Apache + php-fpm?

Здравствуйте.

Пытаюсь разделить сайты по разным pool'ам, чтобы взлом одного сайта не приводил к автоматическому доступу к другим через вебшелл.

Тренируюсь пока на 2-х сайтах из нескольких.
Мои конфиги:
/etc/apache2/mods-enabled/fastcgi.conf
<IfModule mod_fastcgi.c>
  AddHandler fastcgi-script .fcgi
  FastCgiIpcDir /var/lib/apache2/fastcgi
  AddHandler php-fcgi .php .php5
    <FilesMatch \.php$>
        SetHandler php5-fcgi
  </FilesMatch>
  <Location "/fastcgiphp">
        Order Deny,Allow
        Deny from All
        # Prevent accessing this path directly
        Allow from env=REDIRECT_STATUS
  </Location>
Action php5-fcgi /fastcgiphp
Action php5-fastcgi /fastcgiphp
</IfModule>


/etc/php5/fpm/pool.d/eva.conf
[eva]
user = eva-pool
group = eva-pool
listen =  /var/run/eva-php5-fpm.sock
listen.owner = eva-pool
listen.group = www-data
listen.mode = 0660


/etc/php5/fpm/pool.d/rec.conf
[rec]
user = rec-pool
group = rec-pool
listen =  /var/run/rec-php5-fpm.sock
listen.owner = rec-pool
listen.group = www-data
listen.mode = 0660


/etc/apache2/sites-enabled/000-default
<VirtualHost *:80>
ServerName test.ru
DocumentRoot /var/www/eva
<IfModule mod_fastcgi.c>
        FastCgiExternalServer /usr/local/bin/eva-fpm -socket eva-php5-fpm.sock
        Alias /fastcgiphp /usr/local/bin/eva-fpm
</IfModule>
</VirtualHost>

<VirtualHost *:80>
ServerName test2.ru
DocumentRoot /var/www/rec
<IfModule mod_fastcgi.c>
        FastCgiExternalServer /usr/local/bin/rec-fpm -socket rec-php5-fpm.sock
        Alias /fastcgiphp /usr/local/bin/rec-fpm
</IfModule>


ls -la /var/run/*.sock
srw-rw---- 1 eva-pool www-data 0 Jul 25 11:23 /var/run/eva-php5-fpm.sock
srw-rw-rw- 1 www-data www-data 0 Jul 25 11:23 /var/run/php5-fpm.sock
srw-rw---- 1 rec-pool www-data 0 Jul 25 11:23 /var/run/rec-php5-fpm.sock

/var/run/php5-fpm.sock - это стандартный пул www, который, как я понял, сейчас все сайты и используют по умолчанию. Ни в какие конфигурации виртуальных хостов я его специально не прописывал.

Как видно, пулы создались под нужными пользователями.
Тестирую. Заливаю шелл на сайт test2.ru и получаю доступ ко всем сайтам. Такое чувство что test2.ru даже и не пытается использовать пул, который прописан в конфиге, или что-то с правами.

Можете подсказать где ошибся и в какую сторону двигаться? Можно ли как-то убедиться что сайт работает именно в нужном пуле? Если из конфига Apache убираю проверку на ifModule mod_fastcgi.c то всё отрабатывает, что говорит о том что модуль включён и работает.

Спасибо.
  • Вопрос задан
  • 283 просмотра
Решения вопроса 1
@5exi Автор вопроса
Закомментировал весь /etc/apache2/mods-enabled/fastcgi.conf
Поставил proxy_fcgi
В соотвествующем виртуальном хосте прописал:
<FilesMatch ".*\.php$">
SetHandler "proxy:unix:/var/run/rec-php5-fpm.sock|fcgi://localhost/"
</FilesMatch>

Удалил конструкцию с IfModule mod_fastcgi.c
На папку /var/www/rec дал права 750 и сменил владельца rec-pool:www-data
По моему теперь всё работает как надо.

Дадите рекомендации?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
11 мая 2024, в 00:19
1000 руб./за проект
10 мая 2024, в 23:51
30000 руб./за проект
10 мая 2024, в 23:33
2500 руб./за проект