Você tem dois aplicativos com raízes de documentos diferentes que precisam de suporte ao PHP. Se você mantiver a configuração do Laravel inalterada, poderá usar blocos de localização aninhados para implementar a configuração do Flarum.
Algo parecido com isso pode funcionar:
location ^~ /forum {
root /var/www;
try_files $uri $uri/ /forum/index.php?$query_string;
location ~ \.php$ {
try_files $uri /forum/index.php;
fastcgi_pass unix:/var/run/php5-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location /forum/admin {
try_files $uri $uri/ /forum/admin.php?$query_string;
}
location /forum/api {
try_files $uri $uri/ /forum/api.php?$query_string;
}
}
Observe o seguinte:
location ^~ /forum
é um local de prefixo que tem precedência sobre o nível superior location ~ \.php$
, o que permite que o local aninhado processe scripts PHP para o Flarum.
O /forum/index.php
é um URI e o /forum/
é necessário para selecionar o arquivo index.php
correto. Você não precisa de um URI padrão e =404
na diretiva try_files
(um ou outro por favor). Eu removi fastcgi
linhas que não fazem nada. E include fastcgi_params
antes de outras diretivas fastcgi_param
para evitar efeitos colaterais não intencionais.
Esta é uma solução genérica e eu não testei com Laravel ou Flarum.
Veja a documentação aqui para saber mais.