After move the flarum root directory to main directory, it works with @BlackSheep 's method.
before
root /home/www/app; #main directory
location /flarum {
alias /home/www/flarum/; #subdirectory
try_files $uri $uri/ /index.php?$query_string;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_connect_timeout 180;
fastcgi_read_timeout 600;
fastcgi_send_timeout 600;
fastcgi_buffer_size 128k;
fastcgi_buffers 8 64k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
fastcgi_index index.php;
}
}
after
mv /home/www/flarum /home/www/app
then it works.
root /home/www/app; #main directory
location /flarum {
try_files $uri $uri/ /flarum/index.php?$query_string;
}