Network & Security


Secure VPS in Ubuntu 18.04 with Letsencrypt Nginx PHP MySQL

Create your virtual private server. Deploy Wordpress, Laravel and all projects you need, with an A+ security rating.

4.75 (114 reviews)



5.5 hours


Jun 2020

Last Update
Regular Price

What you will learn

Publish your projects and services in your own online space securely and autonomously.

Manage your VPS server efficiently and securely in an agile, easy, secure and economical way.

Use the most recent and recommended techniques to manage your services and projects securely on your own VPS server.

Deploy projects online, with high security, quickly and very economically.

Secure connections to your systems and your products, through HTTPS completely free of charge with Letsencrypt.

Master the best practices to ensure all your systems, such as Nginx, MySQL or MariaDB, PHP and similar.

Feel complete confidence in managing your VPS server, without hesitation at any time about what you do.

Install and configure any package you need with the skills learned during the course.


NOTE!!! This course already has a new edition using Ubuntu 20.04 and much more content. Search for Secure VPS in Ubuntu 20.04: LetsEncrypt, Cloudflare and more

So, you want to publish all those projects on your own server, but do not know where to start? Well, this course is what you need :)

Create and configure your Virtual Private Server (VPS), with a high-security rating, from scratch and step by step:
In this course, you are going to create, configure and deploy your VPS server from scratch, set it correctly, with the adequate security measures and the most recommended mechanisms. Always use secure protocols such as SSH to connect with your VPS and HTTPS to protect your websites and projects. Forget the insecure passwords, so you can establish secure connections with your server with the SSH protocol, without problems and achieve anything you need.

Deploy all your projects with your proper domain, with infinite possibilities, at no additional cost. Keep your own space in the cloud for all your jobs, projects and ideas, deploy all types of projects in the same instance and with the number of domains and sub-domains that you want, without having additional costs.

In the course, you will deploy four different projects using Wordpress and Laravel, each one in a different domain or sub-domain.

During the course is recommended to use DigitalOcean, but you are free to create your VPS with the provider you want or need. You can follow the course using any clean instance of Ubuntu 18.04LTS in your selected VPS provider. Everything will be done from scratch and step by step, without relying on additional services.

Install and deploy a complete system with Linux/Ubuntu 18.04, PHP, Nginx and MySQL or MariaDB; in addition to obtaining security certificates in an automated way through Letsencrypt, all for free at no extra cost for your systems.

Why must you take this course?

  • Because it uses the most recent version of Ubuntu (Ubuntu 18.04) which is a Long Term Support (LTS) version. This version allows you to obtain updates and security patches for at least two years, which means that you can deploy your system in Ubuntu 18.04LTS and you will not have to worry about moving to another version for a long time

  • Because there is not another online course which explains every step at this level of detail

  • Because Letsencrypt is a trend, and you will not find content that teaches you how to use it in the way it is done in this course (the correct and simple way)

  • Because the best standards are used to obtain the highest security rating (A+) in the sites that you ensure following the course

  • Because today, the main browsers are demanding secure HTTPS connections in any online site or service, and by following the course, you can secure all your systems for free using Nginx and Letsencrypt

  • Because you will learn to deploy two of the most popular types of projects in PHP, which are Wordpress and Laravel sites

What will you learn and obtain by following and finishing the course?
At the end of this course, you will be able to deploy your VPS server in a very short time and with great ease, using powerful, innovative and safe tools. You will then have your projects online without additional charges, no matter how many domains, sub-domains or projects you put in your VPS, the cost will remain the same.

At the end of all classes, you will have all your projects under a completely secure server, with HTTPS/TLS connections completely free through Letsencrypt and with an A+ rating in the secured sites.

But... What exactly will you learn?
Here you have everything you can get from this course:

  • Create your own VPS server with Digital Ocean or any provider you choose

  • Have a safe and friendly system with Linux / Ubuntu in its most recent LTS version (Ubuntu 18.04)

  • Deploy an Nginx web server in a few minutes and with the best security settings

  • Deploy a MySQL or MariaDB database server wholly secure and without delay

  • Easily configure and use Git to deploy the different projects on your VPS via SSH

  • Obtain external packages and install them globally (composer and Letsencrypt acme·sh as examples)

  • Create and configure your domain and all sub-domains, without having to pay extra

  • Point your domain to your VPS server by configuring the DNS entries

  • Connect to your VPS remotely, quickly and securely using SSH keys

  • Manage user accounts and prevent automated and external systems from accessing privileges (root)

  • Learn to use the essential commands (cd, systemctl, cp, sudo, mv, rm, mkdir, reboot, and many more)

  • Learn how to manage VPS packages with apt easily

  • Assign permissions on folders and files in the correct way with

  • Demand for the use of secure connections with SSH, and forget about insecure passwords for all the users

  • Create and handle users correctly with administrative permissions (sudo)

  • Deploy different Wordpress and Laravel projects each in a different domain or sub-domain

  • Understand and take advantage of the use of SSH to connect to your VPS or external services

  • Connect with third party service through SSH keys correctly

  • Easily configure a firewall (UFW) and dramatically increase the security of your VPS

  • Configure your services (Nginx, PHP, MySQL / MariaDB, etc.) to make them more secure

  • Mitigate DoS and DDoS attacks with proper configuration of the Nginx webserver

  • Prevent automated systems from trying to access your VPS, through Fail2Ban

  • Set expiration headers for your projects

  • Enable the Gzip compression system on your web server

  • Avoid CSS/XSS attacks with Nginx

  • Get security certificates for HTTPS connections for your projects with Letsencrypt

  • Install the security certificates in Nginx correctly, to obtain the A + security rating

  • Use acme · sh to obtain and automate the installation of Letsencrypt security certificates

  • Creation and use of domains and all sub-domains that you require easily

  • How to quickly deploy any project in your VPS

  • How to deploy complex projects in the VPS (Laravel as a case of use)

And it does not end there! You will have lifetime access to all classes, which includes new future classes and upgrades. You will also have first-hand access to the system of questions, messages, and answers, where I will answer all your questions and comments immediately (I always respond). I will be pleased to help with any problem or doubt you have during the course.

Do not wait anymore. To learn all these skills click on "Register" and start feeling the freedom of having your own VPS.

I will see you in classes :)


Secure VPS in Ubuntu 18.04 with Letsencrypt Nginx PHP MySQL
Secure VPS in Ubuntu 18.04 with Letsencrypt Nginx PHP MySQL
Secure VPS in Ubuntu 18.04 with Letsencrypt Nginx PHP MySQL
Secure VPS in Ubuntu 18.04 with Letsencrypt Nginx PHP MySQL


Welcome to the course

About the instructor

What will you do and what will you learn

Why is a VPS good?

Be sure to know why do you want a VPS

Preparation of your system and some tools

Creating an account with a VPS provider

[Optional] Create an account in the provider used during the course

Enabling Linux commands on Windows with Git and CYGWIN

Generating SSH keys to access the VPS securely

Your VPS and the SSH protocol

Creation and preparations for the Virtual Private Server (VPS)

Creating your VPS with Ubuntu 18.04

Connecting to the VPS via SSH

Improving the connection flow to the VPS

Keep active the connection to the server

Pointing an existing domain to the VPS server

Pointing the domain to DigitalOcean DNS

Be sure to domain some details about the creation and usage of your VPS

Using and understanding some essential Ubuntu commands

How to explore and navigate through system directories

File management (create, delete, move, copy and display)

Directory management (create, delete, move, copy and display)

Tricks to be agile on the command line

Management and updating of VPS packages with apt

Manage processes with the systemctl command

How to restart the server when required

Assigning an additional user account to ensure good use of the VPS

How to manage user accounts in Ubuntu (create and delete)

How to log in to the VPS with a new user

Assigning and using administrative permissions in Ubuntu

Establishing a security layer on the VPS server

Preventing login as root on the VPS

Configuring and using the Ubuntu UFW firewall

Assigning permissions correctly in Ubuntu

Using Fail2Ban to prevent intruders in the VPS

Installing and configuring Nginx in the VPS

Installing Nginx in the VPS

Allowing access to sites served by Nginx

Where are Nginx and its important files located in the VPS

How does Nginx to handle the requests

Setting up the first site in Nginx

Configuring the subdomains on the VPS with Nginx

Installing and configuring MySQL or MariaDB in the VPS

Installing the MySQL or MariaDB server in the VPS

How to interact with MySQL or MariaDB from the VPS console

Ensuring the installation of MySQL or MariaDB in Ubuntu

Create separated MySQL users for each VPS project

Installing and configuring PHP in the VPS

Installing PHP-FPM (Fast Processing Module) in the VPS

The important files and locations of PHP in the Ubuntu VPS

Securing PHP installation of the VPS

Sending requests from Nginx to PHP-FPM

Making Nginx and the VPS sites more safe and efficient

Preventing access to .htaccess and .git files

Hiding the Nginx signature in the responses

Avoiding clickjacking on Nginx sites

Avoiding MIME confusion attacks in Nginx

Avoiding XSS attacks on Nginx sites

Enabling compression in Nginx with Gzip

Mitigating DoS and DDoS attacks on Nginx

Preventing Nginx sites from being "hijacked"

Installing and configuring useful tools for VPS projects

Install and configure composer in the VPS

Preparing the VPS to establish SSH connections with third parties

Installing additional PHP extensions in the VPS

Deploy a WordPress site in the VPS

Obtaining and preparing the structure of WordPress in the VPS

Deploying and installing WordPress in the VPS

Deploying an existing Laravel project in the VPS

Getting a Laravel project from GitHub

Installing the Laravel dependencies with Composer

Preparing Nginx for the Laravel project

Deploying and configuring Laravel in the VPS

[Exercise] Deploy an existing Laravel project in the VPS

Get the Laravel project from Github

Obtain the dependencies of the project with composer

Set up the assets site for pointing this project

Deploy and configure the Laravel project

[Exercise] Deploy your Wordpress site on the VPS

Get the structure of WordPress

Deploy and install WordPress on the VPS

Using Letsencrypt to establish HTTPS connections on the VPS sites

About Letsencrypt and acme.sh as a client

Installing a Letsencrypt client (acme.sh)

Meeting the Letsencrypt client and preparing the VPS for it

Making sure we can always automatically renew our certificates

Using Letsencrypt to obtain a certificate for each site

Installing each Letsencrypt certificate in the VPS

Configuring Nginx sites to use HTTPS

Resolving an issue with HTTPS and the security headers

Checking the security of the VPS domains

Keep your VPS updated

Upgrading to PHP 7.3

Upgrading Nginx

Conclusions and recommendations

Remember to keep your VPS updated

Apply what you have learned in what you need to do in your VPS

Try DigitalOcean without having to pay


Andries25 September 2020

A single course that covers all the items needed to build your own virtual private server, is invaluable. It is showing me how, when, and where the integration components are placed and used.

Volodymyr1 August 2020

Completely satisfied about this course. Juan is a great tutor and replies in Q&A sections very quickly. Thanks a lot!

Suhaimi21 April 2020

Thank you very much. A lot of information related to the course: Secure VPS in Ubuntu 18.04 with Letsencrypt Nginx PHP MySQL.

Cutie7 April 2020

I cannot recommend more about this course!!! I have learnt so so much on security and successfully deployed my API. I can't thank Juan enough!! His teaching is in great detail, he explains everything very clear, and super fast in response. It was such a great pleasure studying implementing all the security settings step by step. More importantly, to understand them! Compare to study at my university, I'd rather be quarantined at home study Juan's course. Thank you so much for your work Juan!!

Peter26 March 2020

I learned a lot of new material with this class. I feel confident in setting up my own nginx/php sites after completing all of the lessons.

Michael8 February 2020

I no longer use laravel forge. This has been the most useful course I've taken, at udemy. Be warned, the instructor has a heavy accent, and like other non-english speaker, he speaks rapidly. I found the accent prevents me from mentally wandering off. The information is rock solid, and up to date as of 2020. Excellent!

Warren21 December 2019

This course exceeded my expectations! (I expected it to be good based on my experiences with another one of his courses) It is well planned out, explained clearly and why we are doing what we are doing and most importantly it still VERY relevant! I had no issues obtaining A+ rating on all my domains and sub-domains. Also after taking this course I am now closing down my Heroku and Godaddy accounts and moving 100% to Digital Ocean. My experience on this platform was great, I highly recommend as well (tons of options for my geeky studies). costwise - for reference I completed this course over a six day period and used up $0.88 out of my $100 credit so no way I am going to use the credits up before they expire.

Alp7 December 2019

Evet.ilk defa serverlarla ilgili bir kursa katıldım.faydalıydı.Ogreticinin aksanı kötü oldugu icin bazı noktalarda zorluk yasadım.Alt yazılar zaten hatalıydı kapattım. Onemli bir nokta ise ogretici Şema kullanarak anlatırsa bazı durumlarda daha iyi olabilirdi ve COmmand kodları cok hızlı yazıp dersi anlattıgı icin videoyu durudurup geriden takip etmek zorunda kalıyordum. Bunlar dısında faydalı bir kurs idi.

James23 October 2019

Very informative. Have been looking for a straightforward tutorial on VPS management for a long time. This one is it!

Ghazi17 July 2019

Very nice course, it has opened my eyes into vps I wish there were more examples like installing phpMyAdmin, uninstalling ssl, working with Load balancer deploying with CI and all that kind of stuff, but hopefully Juan makes a super advanced DevOps course in the following months/years. Thank you for this course.

Aniket22 June 2019

Content is good but some things that need to be there like phpmyadmin setup, redirect of www to non-www, etc they all are the basic requirements of projects. Otherwise, the course is good and if you are a beginner or intermediate level then you should complete this course. It will enhance your skill and you will understand how the thing works internally in the server.

Hendi26 February 2019

I recommend this course to everyone who wants to host their site on VPS. This course is not only practical but also gives students every step from the start to fully functional. I will not complain why some material is not too detailed or not too complete. You can find it yourself on your favorite search engine.

Steve23 January 2019

I went through the class a year ago and am going back through it with the updated content. I also want to learn how to deploy a Laravel app.

Danny22 October 2018

I was really blown away by this course. I knew absolutely zero about servers, so much so that I use Heroku & Go Daddy for all my server needs. After, taking this course though, I feel pretty confident in beginning my journey with Server Administration. I am a Full-Stack developer, and knowing servers has been a weakness in my repertoire. JuanD smashed that quick for me and I am forever grateful! I think the only constructive feedback I have would be to go into more depth on what's specifically needed for NGINX & package maintenance. Maybe this can be expounded on more later. If you don't know servers like I didn't, this is the course for you! I tried some other courses that were super expensive, and extremely old and/or modern. None of the examples worked!!! With JuanD's course, you'll be flying through NGINX & security with no problems! Thanks JuanD!

Sergey7 October 2018

Thank you, Juan. This course does exactly what it promises: I've managed to eventually gather all parts together and go through the complete flow from purchase of domain to fully functional and secure VPS.


Udemy ID


Course created date


Course Indexed date
Course Submitted by

Android PlayStore
Apple Appstore