0

for very long time I'm trying to set up apache server on ubuntu with multiple hosts and somehow it just doesn't want to work for me.

My general goal: Hosting multiple websites with apache and using chrooted php and ftp. For ftp it's not a problem using vsftpd but PHP seems to be a problem. In the current configuration without chroot php can access to files using scandir and thus access to other virtual hosts. If there's a better way to solve this problem you can also make a suggestion! Trying for 2 or 3 days now to get this working.

I've set up a virtual machine for testing purpose and want to show my current configuration and hope to find some help.

I've added two hosts on my /etc/hosts: web1 and web2, thus I'm using http://web1 and http://web2 for testing.

apache config of my vhost web1:

<VirtualHost *:80>
    ServerAdmin admin@yadbo.com
    ServerName web1
    DocumentRoot /var/www/web1/html
    ErrorLog /var/www/web1/logs/error.log
    CustomLog /var/www/web1/logs/logaccess.log combined
    AssignUserId web1 www-data
    DirectoryIndex index.php

<Directory "/usr/lib/cgi-bin">
        Require all granted
    </Directory>

    AddHandler php7-fcgi-web1 .php
    Action php7-fcgi-web1 /php7-fcgi-web1
    Alias /php7-fcgi-web1 /usr/lib/cgi-bin/php7-fcgi-web1
    FastCgiExternalServer /usr/lib/cgi-bin/php7-fcgi-web1 -socket /run/php/php7.4-fpm.web1.sock -pass-header Authorization
    <FilesMatch \.php$ >
        SetHandler  php7-fcgi-web1
    </FilesMatch>

</VirtualHost>

I've added also new pool for my user web1 in /etc/php/7.4/fpm/pool.d/web1:

[web1]
listen = /run/php/php7.4-fpm.web1.sock
access.log = /var/www/web1/logs/$pool.access.log

prefix = /var/www/web1/

chroot = $prefix

chdir = /

user = web1
group = www-data

listen.owner = web1
listen.group = www-data 
listen.mode = 0660

php_value[session.save_path] = /sessions

pm=dynamic
pm.max_children=5
pm.start_servers=2
pm.min_spare_servers=1
pm.max_spare_servers=3

That's pretty much all I got as configuration. I've also tried to add some softlinks in /var/www/html to make the sockets accessable and adapted the links but it still doesn't work...

In current configuration which I've used I get 404 for every php file and thus it claims it can't find e.g. /index.php 404.

I know I'm missing something due to chroot. But I'm new to this topic and have really difficulties at setting up this construction.

I really hope I can find help here. Thank you in advance for your time!

yadbo
  • 407
  • 1
  • 5
  • 16
  • I added an answer for Ubuntu 20-22 [here](https://askubuntu.com/questions/1029564/php-7-2-fastcgi-doesnt-work-on-ubuntu-18-04-server/1458664#1458664). – centurian Mar 16 '23 at 19:12

1 Answers1

0

FPM runs its own process, not as part of the apache process (mod_fcgid).

Honk der Hase
  • 2,459
  • 1
  • 14
  • 26