In this tutorial I will be guiding you with steps to install stable, HHVM 3.9 and 5 FPM. NGINX PHP is a great webserver or reverse proxy that comes with a default configuration much faster than Apache 2.4 with its default MPM (Prefork). Nginx is a virtual machine that uses JIT (Just in time) compilation aproach. HHVM (FastCGI Process Manager) is an alternative PHP FastCGI implementation with some additional features useful for sites of any size, especially busier sites. PHP-FPM A little setup background: Clean KVM Machine with Ubuntu 16/14 LTS with 1GB RAM and 1 CPU Core from (Less than 1GB RAM will cause you trouble if you bundle MySQL) Vultr Root access (Else you must do sudo [command]) First, Nginx: add-apt-repository ppa:nginx/stableapt-get update && apt-get upgradeapt-get install nginx Second, HHVM: apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449add-apt-repository "deb http://dl.hhvm.com/ubuntu $(lsb_release -sc) main"apt-get updateapt-get install hhvmupdate-rc.d hhvm defaults/usr/bin/update-alternatives --install /usr/bin/php php /usr/bin/hhvm 60/usr/share/hhvm/install_fastcgi.sh We want to run HHVM on a Unix Socket, so let’s edit it’s configuration: nano /etc/hhvm/server.ini Comment “hhvm.server.port = 9000” with ; and add “hhvm.server.file_socket = /var/run/hhvm/hhvm.sock” It should look like this: ; php optionspid = /var/run/hhvm/pid ; hhvm specific;hhvm.server.port = 9000hhvm.server.file_socket = /var/run/hhvm/hhvm.sockhhvm.server.type = fastcgihhvm.server.default_document = index.phphhvm.log.use_log_file = truehhvm.log.file = /var/log/hhvm/error.loghhvm.repo.central.path = /var/run/hhvm/hhvm.hhbc Save with Ctrl + X and then ‘Y’ Now PHP-FPM: apt-get install php5-fpm This should install FPM and listen on /var/run/php5-fpm.sock by default We are done installing! Let’s configure things now. Let’s start by creating a upstream conf file for nginx: nano /etc/nginx/conf.d/upstream.conf Add the following and save: upstream php {server unix:/var/run/hhvm/hhvm.sock;server unix:/var/run/php5-fpm.sock backup;} As you can see, PHP-FPM will be a backup in case HHVM fails. Now let’s edit Nginx’s HHVM conf file: nano /etc/nginx/hhvm.confg Replace “fastcgi_pass 127.0.0.1:9000;” with “fastcgi_pass php;” . It should look like this: location ~ \.(hh|php)$ {fastcgi_keep_conn on;fastcgi_pass php;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;} Restart the services with: service hhvm restart && service php5-fpm restart && service nginx restart Test with: curl -I localhost/test.php Should be a 404 (As the actual test.php doesn’t exist) with these headers: Server: nginx/1.8.0X-Powered-By: HHVM/3.9.0 And that’s all! We have latest stable Nginx with latest HHVM in fastcgi with php-fpm fallback! is how hackers start their afternoons. We’re a part of the family. We are now and happy to opportunities. Hacker Noon @AMI accepting submissions discuss advertising &sponsorship To learn more, , , or simply, read our about page like/message us on Facebook tweet/DM @HackerNoon. If you enjoyed this story, we recommend reading our and . Until next time, don’t take the realities of the world for granted! latest tech stories trending tech stories