This is a step by step beginner’s guide shows how to install the latest version of Nginx web server (either mainline or stable) in Ubuntu 22.04 Desktop or Server.
Nginx is a popular free and open-source web server, that can be also used as reverse proxy, load balancer, mail proxy and HTTP cache.
For a just working version, user can run command sudo apt install nginx-full to install it from Ubuntu system repository, which however is always old.
For the latest version, there are 2 ways to install the web server. Besides building from source, they include Ubuntu PPA and Nginx’s official repository.
Want to build a website on your Ubuntu Server? Well, LEMP may be a good choice and here’s how to install and set it up.
LEMP stands for Linux, Nginx (pronounced “engine x”), MySQL and PHP. The nginx project started with a strong focus on high concurrency, high performance and low memory usage. So it’s a good alternative to Apache webserver for building websites on low memory hosts.
To get started, log in your Ubuntu Server and follow the steps below:
1. Install MySQL
MySQL is a database management system which stores and organizes references to the information the webserver needs.
And check out if it is working by going to http://serverip
nginx is working ubuntu 14.04
3. Install PHP5
PHP is a reflective programming language, which makes it possible for all these different parts to work together.
We can make PHP5 work in nginx through PHP-FPM, which is an alternative PHP FastCGI implementation with some additional features useful for sites of any size, especially busier sites.
Run command below to install php5-fpm:
sudo apt-get install php5-fpm
4. Setup Nginx
The nginx configuration files are available in /etc/nginx/nginx.conf, read this configuration example.
To modify the default site example:
sudo vi /etc/nginx/sites-available/default
Here you can define the root directory (to put WordPress files there), your site domain name, as well as other settings. See the example below:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.php index.html index.htm;
# Make site accessible from http://localhost/
server_name localhost;
location / {
try_files $uri $uri/ /index.php;
}
location /doc/ {
alias /usr/share/doc/;
autoindex on;
allow 127.0.0.1;
allow ::1;
deny all;
}
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
# With php5-fpm:
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}
Remember to restart the web service to apply changes:
sudo service nginx reload
5. Check if PHP is working
Create the test file:
sudo vi /usr/share/nginx/html/info.php
Add following lines and save the file:
<?php
phpinfo();
?>
Go to http://serverip/info.php in client’s web browser and you’ll see:
php is working
6 Get MySQL working with PHP: Install Xcache (list of PHP accelerators), a free and open PHP opcode cacher for caching and optimizing PHP intermediate code, as well as other PHP modules:
This tutorial shows you how to install LEMP stack in Ubuntu 13.10. LEMP stands for Linux, Nginx (pronounced “engine x”), MySQL and PHP. The nginx project started with a strong focus on high concurrency, high performance and low memory usage. So it’s a good alternative to Apache webserver for building websites on low memory hosts.
Tutorial Objectives:
Install Nginx, Php5, MySQL (LEMP) in Ubuntu 13.10 Server
Enjoy!
To get started, first login your Ubuntu Server and follow the steps below:
1. Intall MySQL
MySQL is a database management system which stores and organizes references to the information the webserver needs.
To install it, run command:
sudo apt-get install mysql-server mysql-client
While the installing process, you’ll be asked to type a password for MySQL root user.
2. Install Nginx
Nginx is available in Ubuntu’s repository, run command below to install it:
sudo apt-get install nginx
Or you can install the latest stable version from Nginx PPA:
To check out if nginx is working, go to http://serverip:
nginx is working ubuntu 13.10
3. Install PHP5
PHP is a reflective programming language, which makes it possible for all these different parts to work together.
We can make PHP5 work in nginx through PHP-FPM, which is an alternative PHP FastCGI implementation with some additional features useful for sites of any size, especially busier sites.
Run command below to install php5-fpm:
sudo apt-get install php5-fpm
4. Setup Nginx
The nginx configuration is in /etc/nginx/nginx.conf, read this configuration example.
Now, let’s modify the default site example:
sudo vi /etc/nginx/sites-available/default
Here you can define root directory (to put WordPress files there), your site domain, as well as other settings. See the example below:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.php index.html index.htm;
# Make site accessible from http://localhost/
server_name localhost;
location / {
try_files $uri $uri/ /index.php;
}
location /doc/ {
alias /usr/share/doc/;
autoindex on;
allow 127.0.0.1;
allow ::1;
deny all;
}
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
# With php5-fpm:
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}
After that, reload Nginx:
sudo service nginx reload
4. Check out if PHP is working
Create the test file:
sudo vi /usr/share/nginx/html/info.php
Add following lines and save the file:
<?php
phpinfo();
?>
Go to http://serverip/info.php in client’s web browser and you’ll see:
php is working
5. Get MySQL working with PHP
Install Xcache, a free and open PHP opcode cacher for caching and optimizing PHP intermediate code, as well as other PHP modules: