Apache2 + php-fpm over socket

General Tech Bugs & Fixes 2 years ago

0 1 0 0 0 tuteeHUB earn credit +10 pts

5 Star Rating 1 Rating

Posted on 16 Aug 2022, this text provides information on Bugs & Fixes related to General Tech. Please note that while accuracy is prioritized, the data presented might not be entirely correct or up-to-date. This information is offered for general knowledge and informational purposes only, and should not be considered as a substitute for professional advice.

Take Quiz To Earn Credits!

Turn Your Knowledge into Earnings.

tuteehub_quiz

Answers (1)

Post Answer
profilepic.png
manpreet Tuteehub forum best answer Best Answer 2 years ago

 

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 10.0.0.15:60620] 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:

[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

and apache conf:



    ServerName domain.com
    ServerAlias www.domain.com

    ServerAdmin client

    DocumentRoot /disks/sdb1/clients/client/domain.com

    
        Options FollowSymLinks
        AllowOverride None
    
    CustomLog /var/log/apache2/domain.com-access.log combined
    ErrorLog /var/log/apache2/domain.com-error.log

    1/clients/client/domain.com>
        Options FollowSymLinks
        AllowOverride All
        
            Order allow,deny
            Allow from all
        
        
            Require all granted
        
    

        SetEnv HOME "/disks/sdb1/clients/client/domain.com"
        SetEnv HTTP_HOME "/disks/sdb1/clients/client/domain.com"
    
        SetHandler "proxy:unix:/run/php/domain.com.sock|fcgi://localhost/${%SCRIPT_NAME}"
    
#Use PHP-FPM for PHP processing
#SetEnv PATH_INFO "%{SCRIPT_NAME}"
#ProxyPassMatch ^(.*)$ "unix://var/run/php/domain.com.sock|fcgi://localhost//$1" enablereuse=on

No matter what stage you're at in your education or career, TuteeHub will help you reach the next level that you're aiming for. Simply,Choose a subject/topic and get started in self-paced practice sessions to improve your knowledge and scores.