We'll use Laravel's Envoy to deploy a PHP application to a production server. This will make a new release directory, clone the repository into it, run any needed build steps, and then finally swap the new code out with the older code, so that Nginx and PHP-FPM serve the new code.
They walk you through the full setup you'll need to get the deployment working including generating ssh keys, installing Envoy globally and making the first Envoy configuration file. With that in place and working, he enhances it with quite a few more steps including checking out a new version of the repository to a "release" directory, executing Composer to pull in needed libraries and changing the symlink to point the document root and the freshly installed version. He also includes the configuration for the Nginx server to set up a Laravel-based application inside of a Vagrant VM instance.