I’m trying to host three Kirby 3 sites on Digital Ocean with PHP 7.4. In the /var/www/
folder I’ve got the three sites in their own folders:
var/www/site1
var/www/site2
var/www/site3
And while I’ve got one of the sites up and running after tweaking some Nginx config values and Kirby folder permissions, I can’t seem to get the panel to resolve. I think it’s user errore since /panel shows the standard Nginx 500 error page. The Nginx log mentions an internal redirection cycle. I’ve also got a PHP error in the Kirby error log:
PHP Fatal error: require(): Failed opening required '/home/jason785/public_html/kirby/bootstrap.php' (include_path='.:/usr/local/php71/pear') in /home/jason785/public_html/index.php on line 6
Here’s my nginx config for sites-available on one of my sites. Everything in it was gleaned from the Digital Ocean tutorial on Lemp stack, this forum, and some generated output from Let’s Encrypt.
server {
server_name jason.land www.jason.land;
root /var/www/jason.land;
index index.php index.html index.htm;
client_max_body_size 100M;
# Don't hint these as folders
rewrite ^/(content|site|kirby)$ /error last;
# block content
rewrite ^/content/(.*).(txt|md|mdown)$ /error last;
# block all files in the site and kirby folder from being accessed directly
rewrite ^/(site|kirby)/(.*)$ /error last;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ /panel {
autoindex off;
try_files $uri $uri/ /panel/index.php$uri&$args;
}
location ~ (?:^|/)\. {
deny all;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/jason.land/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/jason.land/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = www.jason.land) {
return 301 https://$host$request_uri;
} # managed by Certbot
if ($host = jason.land) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name jason.land www.jason.land;
return 404; # managed by Certbot
}