Hi, some bot for some reason really needs to scrape my wordpress blog over and over again, overheating my poor celeron.
For laziness I am just using the default wordpress docker image, which is php+apache.
I did some experiments and with php-fpm+caddy it’s much faster.
Now i want to migrate all my wordpress blogs, five in total and I want to manage them from a single caddy instance.
php-fpm needs to be mounted in the same path or it can be different?
For example, the wordpress install places the files in /var/www/html, and so for Caddy I mount in the same path and in the Caddyfile i have:
test.example.com{
root * /var/www/html
php_fastcgi wordpress:9000
file_server
}
if i have multiple installs can I mount different paths like /var/www/html2 and so on (but only on caddy) or it must match both containers?
I’ve only used Caddy as a reverse proxy in production, but on my development machine I use Caddy with php-fpm. That makes me a bit unsure if I understand your questions correctly.
For me that would look something like this:
test.example.com { root * var/www/html php_fastcgi unix//run/php/php7.4-fpm.sock file_server }
(Yeah, PHP 7.4, I know)
It looks like your Docker (?) image is exposing the php-fmp socket? I did not even know that was possible, but I don’t doubt it is.
Caddy has no issues serving multiple hosts from the same server, it can even be with different php-fpm sockets. Caddy will just nod at you, maybe silently question your choice of still running PHP 7.4, but it accepts it and runs. Just make another block with a different host in the same Caddyfile, and it will work just fine.
I use Caddy in production with a PHP-FPM WordPress Docker container in the same way as you describe. I have the site root mounted as a volume on to Caddy container at
/var/www/html
and mounted in the WordPress PHP-FPM container under a separate path. In my Caddyfile I use theroot
directive as you’ve shown but then override it under thephp_fastcgi
directive to match the path in the WordPress container.I found my answer here at stackoverflow and it worked
basically, it needs to tell the absolute path of php-fpm with the root directive insde php_fastcgi
localhost:80 { root * /srv/www encode gzip php_fastcgi php:9000 { root /var/www/html } file_server log }
then, i had to take care of permissions, because even if caddy is run as root, php-fpm is run as www-data , so the directory ownership need to be assigned to that