I have fairly clean install (and updated) of ubuntu 16.04 LTS, and i'm trying to setup PHP-FPM to be chrooted per-domain. I don't really want to open n ports on the server (they are local, but i don't want that anyway) for each domain.

But as i have tried, i cannot make the proxy to execute the correct script over socket. When i replace the ${%SCRIPT_NAME} with index.php it loads my index (containing phpinfo();) but it won't load anything else - currently it responds with just 'File not found.' and 404 status. I can also see [Thu Feb 15 17:18:37.581204 2018] [proxy_fcgi:error] [pid 15974] [client] AH01071: Got error 'Primary script unknown\n' in the apache log. I also don't know how to debug php-fpm correctly, as it doesn't output much to it's log... :-(

But no matter what i do i cannot make it work with index.php or other script in the url (and not in the config). I have tried several supposed solutions, but none seem to work.

I have following setup in php fpm:

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

and 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
    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 mod_authz_core.c>
            Require all granted

        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}"
#Use PHP-FPM for PHP processing
#ProxyPassMatch ^(.*)$ "unix://var/run/php/domain.com.sock|fcgi://localhost//$1" enablereuse=on

  • Welcome to Super User. Please decide which site you would like to have your question on- cross-posting isn't permitted. Thanks :) – bertieb Feb 16 '18 at 0:51
  • Ok, removed from askubuntu – LetynSOFT Feb 16 '18 at 12:10

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Browse other questions tagged or ask your own question.