If your app doesn't utilize .htaccess files, it is possible to have Nginx interact directly with PHP-FPM and bypass Apache entirely. For more information on how Nginx and Apache work together, see How ServerPilot Configures Your LAMP/LEMP Stack.
First, rename main.conf so you have a backup, where APPNAME is the name of your app.
cd /etc/nginx-sp/vhosts.d/APPNAME.d mv main.conf main.conf.bak
Next, create a new file, /etc/nginx-sp/vhosts.d/APPNAME.d/main.custom.conf, with the following contents:
index index.php index.html index.htm; # Don't serve hidden files. location ~ /\. { deny all; } location = /favicon.ico { log_not_found off; } location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { include fastcgi_params; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # You must replace "SYSUSER" with the app's system user's name # and "APPNAME" with your app's name. ############################################################ fastcgi_pass unix:/srv/users/SYSUSER/run/APPNAME.php-fpm.sock; # Prevent arbitrary code execution by third parties with # try_files directive. # http://wiki.nginx.org/Pitfalls#Passing_Uncontrolled_Requests_to_PHP try_files $uri =404; }
Then, restart Nginx by running this command as root:
sudo service nginx-sp restart