We’ll show you, how to install LEMP on Ubuntu 16.04. LEMP stack (Linux, Nginx, MySQL, PHP) should not be confused with the popular LAMP stack (Linux, Apache, MySQL, PHP) . This tutorial is for the LEMP (Nginx) stack and it’s commonly used on Ubuntu 16.04 servers. Installing LEMP on Ubuntu 16.04, should not take more then 10 min. Let’s start with the installation of LEMP on Ubuntu 16.04:
Table of Contents
1. Update the server
Make sure that all installed packages on your Ubuntu 16.04 VPS are up to date.
apt-get update && apt-get upgrade
You can also configure automatic updates.
2. Install Nginx on Ubuntu 16.04
Before installing the Nginx web server, make sure that there is no other web server like Apache installed on the VPS. If Apache web server is running, stop it:
systemctl stop apache2
and remove it from your VPS:
apt-get remove --purge apache2
Now, run the following command to install Nginx:
apt-get install nginx
3. Start Nginx
Once it is installed, start the web server and enable it to start on boot:
systemctl start nginx systemctl enable nginx
You can check if Nginx is successfully started using the following command:
systemctl status nginx
The output of the command above should be similar to this:
nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) Main PID: 5926 (nginx) CGroup: /system.slice/nginx.service ├─5926 nginx: master process /usr/sbin/nginx -g daemon on; master_process on ├─5927 nginx: worker process └─5928 nginx: worker process
You can also verify if Nginx is running, by accessing http://YOUR_IP
in your favorite web browser.
4. Install PHP-FPM
Run the following commands to install the necessary PHP packages:
apt-get install php-fpm php-mysql
5. Configure PHP-FPM
Once the installation is completed, edit the PHP configuration file and modify the cgi.fix_pathinfo
parameter value from 1 to 0.
To find the location of the php.ini file run the following command:
php --ini |grep Loaded Loaded Configuration File: /etc/php/7.0/cli/php.ini
We need to edit the /etc/php/7.0/cli/php.ini file and make the changes.
vi /etc/php/7.0/cli/php.ini cgi.fix_pathinfo=0
Save the changes and restart PHP-FPM:
systemctl restart php7.0-fpm
6. Configure Nginx Web Server
Next step is to configure Nginx to use PHP. We will modify the default Nginx server block and add/uncomment the location ~\.php$
block.
vi /etc/nginx/sites-available/default server { listen 80 default_server; root /var/www/html; # Add index.php to the list if you are using PHP index index.php index.html index.htm index.nginx-debian.html; server_name _; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ =404; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.0-fpm.sock; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # location ~ /\.ht { deny all; } }
Save the changes and test the new configuration
nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
7. Restart Nginx Web Server
If there are no errors, restart the web server
systemctl restart nginx
8. Install MySQL server
Install MySQL database server by executing the following command:
apt-get install mysql-server
During the installation, you will be prompted to enter a password for the MySQL root user. Make sure to use a strong password (combination of letters and numbers and minimum 10 characters long) for your the root user.
9. Secure MySQl Server
Once the MySQL server installation is completed, it is recommended to secure the installation by running the security script provided by MySQL:
mysql_secure_installation
and follow the recommendations.
10. Start MySql Server
Start MySQL and enable it to start on boot
systemctl start mysql
systemctl enable mysql
And that’s it. You have successfully installed the LEMP stack on your Ubuntu 16.04 server.
Further steps:
After you’ve installed the LEMP stack, you can follow our guide on how to secure it: How to secure your LEMP stack
Of course, you don’t have to Install LEMP on Ubuntu 16.04, if you use one of our LEMP Hosting services, in which case you can simply ask our expert Linux admins to install the LEMP on Ubuntu 16.04, for you. They are available 24×7 and will take care of your request immediately.
PS. If you liked this post on how to install LEMP on Ubuntu 16.04, please share it with your friends on the social networks using the buttons below or simply leave a reply in the comments section. Thanks.