Пользователь Suexec / Apache не является «пользователем» php-fpm

Пользователь Suexec / Apache не является пользователем php-fpm.

в моем пуле php-fpm:

[cdnmin]
user = cdnmin
group = cdnmin
listen = /run/php/php7.0-fpm.cdnmin.sock
listen.owner = cdnmin
listen.group = cdnmin
listen.mode = 0666
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

Я создаю index.php для теста:

<?php 
file_put_contents('test.txt','Test');
echo exec('whoami');
echo '<hr>Current script owner: ' . get_current_user();
phpinfo();
?>

php-fpm работает, но имеет неправильное разрешение, так как мой error.log show

AH01071: Got error 'PHP message: PHP Warning:  file_put_contents(test.txt):
failed to open stream: Permission denied ...'

php 'get_current_user ()' возвращает 'cdnmin', который является пользователями пула php-fpm. но 'whoami' возвращает www-данные (apache2)

внутри / run / php:

 srw-rw-rw-  1 cdnmin   cdnmin     0 Jan 15 15:18 php7.2-fpm.cdnmin.sock

Рабочий каталог (/ var / www / cdn) принадлежит cdnmin: cdnmin, и его номер 755.

 SuexecUserGroup cdnmin cdnmin 

включен директива virtualhost (apache).

Я могу выяснить, почему 'whoami' и get_current_user () не совпадают.

Что я пропустил?

0
задан 15 January 2019 в 08:26
1 ответ

Я использую ubuntu 18.04, который имеет нет поддержки fastcgi. Bionic с использованием proxy_fcgi. Я не вижу ошибок, исходящих от fastcgi, потому что я использую, поэтому он всегда отправляет запрос по умолчанию (www.conf), поэтому он становится «www-data».

Проблема решена.

Вот какой-то снипсет

my virtualhost.conf:

    <VirtualHost *:80>
    DocumentRoot /var/www/cdn
    ServerName cdn.wx.dz.co
    ServerAdmin webmaster
    ErrorLog /var/www/cdn/.log/error.log
    CustomLog /var/www/cdn/.log/access.log combined

    SuexecUserGroup cdnmin cdnmin

    <Directory /var/www/cdn>
            Options +ExecCGI
            IncludeOptional /dbc/vhost/common-set.conf
    </Directory>

    <Directory /var/www/cdn/.log>
            deny from all
    </Directory>

    <FilesMatch ".+\.ph(p[345]?|t|tml)$">
            SetHandler "proxy:unix:/run/php/php7.2-fpm.cdnmin.sock|fcgi://localhost/"
    </FilesMatch>


   </VirtualHost>

В fpm / pool.d:

    [cdnmin]
    user = cdnmin
    group = cdnmin
    listen = /run/php/php7.2-fpm.cdnmin.sock
    listen.owner = www-data
    listen.group = www-data
    listen.mode = 0666
    pm = dynamic
    pm.max_children = 5
    pm.start_servers = 2
    pm.min_spare_servers = 1
    pm.max_spare_servers = 3

Обратите внимание на:

    listen.owner = www-data
    listen.group = www-data
    listen.mode = 0666
0
ответ дан 5 December 2019 в 04:31

Теги

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