У меня достаточно чистая установка (и обновление) Ubuntu 16.04 LTS, и я пытаюсь настроить PHP-FPM для привязки к каждому домену. Я действительно не хочу открывать n портов на сервере (они локальные, но я все равно не хочу) для каждого домена.
Но, как я уже пробовал, я не могу заставить прокси выполнить правильный скрипт через сокет.
Когда я заменяю $ {% SCRIPT_NAME} на index.php, он загружает мой индекс (содержащий phpinfo ();), но больше ничего не загружает - в настоящее время он отвечает просто «Файл не найден». и 404 статус. Я также вижу [Thu Feb 15 17:18:37.581204 2018] [proxy_fcgi:error] [pid 15974] [client 10.0.0.15:60620] AH01071: Got error 'Primary script unknown\n'
в журнале apache. Я также не знаю, как правильно отлаживать php-fpm, так как он не выводит много в журнал ... :-(
Но независимо от того, что я делаю, я не могу заставить его работать с index.php или другим скриптом в URL (а не в конфиге). Я пробовал несколько предполагаемых решений, но ни одно из них не работает.
У меня есть следующие настройки в php fpm:
[domain.com]
user = 4003
group = 4001
listen = /var/run/php/domain.com.sock
chroot = /disks/sdb1/clients/clientname/domain.com
chdir = /
catch_workers_output = yes
access.log = /disks/sdb1/clients/client/logs/access.domain.com.log
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
pm = dynamic
pm.max_children = 5
pm.min_spare_servers = 1
pm.max_spare_servers = 3
pm.max_requests = 500
php_admin_value[error_log] = /disks/sdb1/clients/client/logs/error.domain.com.log
и apache conf:
<VirtualHost *:80>
ServerName domain.com
ServerAlias www.domain.com
ServerAdmin client
DocumentRoot /disks/sdb1/clients/client/domain.com
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
CustomLog /var/log/apache2/domain.com-access.log combined
ErrorLog /var/log/apache2/domain.com-error.log
<Directory /disks/sdb1/clients/client/domain.com>
Options FollowSymLinks
AllowOverride All
<IfModule !mod_authz_core.c>
Order allow,deny
Allow from all
</IfModule>
<IfModule mod_authz_core.c>
Require all granted
</IfModule>
</Directory>
SetEnv HOME "/disks/sdb1/clients/client/domain.com"
SetEnv HTTP_HOME "/disks/sdb1/clients/client/domain.com"
<FilesMatch \\.php$>
SetHandler "proxy:unix:/run/php/domain.com.sock|fcgi://localhost/${%SCRIPT_NAME}"
</FilesMatch>
#Use PHP-FPM for PHP processing
#SetEnv PATH_INFO "%{SCRIPT_NAME}"
#ProxyPassMatch ^(.*)$ "unix://var/run/php/domain.com.sock|fcgi://localhost//$1" enablereuse=on
</VirtualHost>