Я хочу запустить несколько серверов Apache, на которых будут размещаться веб-сайты для нескольких клиентов. Я установил модуль libapache2-mpm-itk и создал уникальных пользователей / группы для каждого набора файлов клиентов. И настроил соответствующий файл vhost для запуска процесса с этим пользователем / группой.
<IfModule mpm_itk_module>
AssignUserId www-client www-client1
</IfModule>
Это отлично работает, пока я не попытаюсь использовать PHP сеансов. В файле vhost я также добавил настраиваемый путь сохранения сеанса.
php_admin_value session.save_path "/var/www/html/client1/_php/session"
Сценарий PHP может создавать файлы сеанса в каталоге со следующими разрешениями, но не может их читать:
-rw------- www-client1 www-client1
Полный пример моего виртуального хоста:
<VirtualHost *:443>
ServerName client1.com
ServerAlias client1.com www.client1.com
DocumentRoot /var/www/html/client1/www
ErrorLog /var/www/logs/client1/www-error.log
CustomLog /var/www/logs/client1/www-access.log combined
php_admin_value error_log "/var/www/logs/client1/www-error.php.log"
<Directory /var/www/html/client1/www>
Options None
AllowOverride None
Order Deny,Allow
Allow from All
</Directory>
<IfModule mpm_itk_module>
AssignUserId www-client1 www-client1
</IfModule>
php_admin_value log_errors 1
php_admin_value open_basedir "/var/www/html/client1"
php_admin_value upload_tmp_dir "/var/www/html/client1/_php/upload_tmp"
php_admin_value session.save_path "/var/www/html/client1/_php/session"
php_admin_value soap.wsdl_cache_dir "/var/www/html/client1/_php/soap_cache"
SSLEngine On
SSLCertificateFile /var/www/certs/client1/www.crt
SSLCertificateKeyFile /var/www/certs/client/www.key
</VirtualHost>
Я работаю Apache 2.4.41, PHP 7.4.3 на Ubuntu 20.04 и нет ошибки выводятся в любой из моих файлов журнала.
Мы будем очень признательны за любые идеи / предложения по этому и дальнейшим улучшениям.