Installer Nginx sur un serveur, via PPA ou par ligne de commande

Petit tutoriel pour installer Nginx sur un serveur.

On va installer la dernière version stable, et s’assurer qu’on est toujours à jour sur celle-ci. Pour ceci, on va ajouter les repository de Nginx à son Ubuntu.

L’installation étant assez différente selon votre version d’Ubuntu, je vais diviser ce tutoriel en deux parties.

Votre Ubuntu est plus récent que Ubuntu 9.10 (ou c’est celui-là)

Faites les commandes suivantes :

sudo apt-get install python-software-properties
sudo apt-get install add-apt-repository
sudo add-apt-repository ppa:nginx/stable

Une fois cela fait, tapez :

sudo apt-get install nginx

Et voilà, c’est aussi simple que ça. La configuration se fera dans le fichier /etc/nginx/nginx.conf

Votre Ubuntu est plus ancien que Ubuntu 9.10

Soit vous vous contentez de la version de Nginx proposée par votre version d’Ubuntu (soit donc pas la dernière en date, ce qui est dommage, mais bon), et vous faites simplement :

sudo apt-get install nginx

L’avantage c’est que vous devriez bénéficier des mises à jour relatives à la version que vous aurez installée. C’est à dire des mise à jour de sécurité et de stabilité principalement, mais sûrement pas des mises à jour de fonctionnalités.

La solution warrior

Vous pouvez aussi installer une version particulière de Nginx, que vous aurez téléchargé sur le site officiel, et que vous aurez compilé vous-même. Voilà comment faire (NB : je recommande le très bon script de Nicolargo).

C’est un script allégé de celui de Nicolargo :

#!/bin/bash
# Mon script d'installation automatique de NGinx (depuis les sources)
#
# Nicolargo - 01/2011
# GPL
#
# Syntaxe: # su - -c "./nginxautoinstall.sh"
# Syntaxe: or # sudo ./nginxautoinstall.sh
VERSION="2.0"
 
##############################
# Version de NGinx a installer
 
NGINX_VERSION="1.0.12"
 
##############################
# Debut de l'installation
 
# Test que le script est lance en root
if [ $EUID -ne 0 ]; then
echo "Le script doit être lancé en root: # sudo $0" 1>&2
exit 1
fi
 
# Pre-requis
aptitude install build-essential libpcre3-dev libssl-dev zlib1g-dev
 
# Telechargement des fichiers
wget http://nginx.org/download/nginx-$NGINX_VERSION.tar.gz
 
# Extract
tar zxvf nginx-$NGINX_VERSION.tar.gz
 
# Configure
cd nginx-$NGINX_VERSION
./configure   --conf-path=/etc/nginx/nginx.conf   --error-log-path=/var/log/nginx/error.log   --pid-path=/var/run/nginx.pid   --lock-path=/var/lock/nginx.lock   --http-log-path=/var/log/nginx/access.log   --with-http_dav_module   --http-client-body-temp-path=/var/lib/nginx/body   --with-http_ssl_module   --http-proxy-temp-path=/var/lib/nginx/proxy   --with-http_stub_status_module   --http-fastcgi-temp-path=/var/lib/nginx/fastcgi   --with-debug   --with-http_flv_module
 
# Compile
make
 
# Install
make install
 
# Post installation
cd ..
mkdir /var/lib/nginx
mkdir /etc/nginx/conf.d
mkdir /etc/nginx/sites-enabled
mkdir /var/www
chown -R www-data:www-data /var/www
 
# Download the init script
wget https://raw.github.com/nicolargo/debianpostinstall/master/nginx
mv nginx /etc/init.d/
chmod 755 /etc/init.d/nginx
/usr/sbin/update-rc.d -f nginx defaults
 
# Download the default configuration file
# Nginx + default site
wget https://raw.github.com/nicolargo/debianpostinstall/master/nginx.conf
wget https://raw.github.com/nicolargo/debianpostinstall/master/default-site ;
mv nginx.conf /etc/nginx/
mv default-site /etc/nginx/sites-enabled/
 
# Start NGinx
/etc/init.d/nginx start
 
# Summary
echo ""
echo "--------------------------------------"
echo "NGinx installation finished"
echo "--------------------------------------"
echo "NGinx configuration folder:       /etc/nginx"
echo "NGinx default site configuration: /etc/nginx/sites-enabled/default-site"
echo "NGinx default HTML root:          /var/www"
echo ""
echo "If you use IpTables add the following rules:"
echo "iptables -A INPUT -i lo -s localhost -d localhost -j ACCEPT"
echo "iptables -A OUTPUT -o lo -s localhost -d localhost -j ACCEPT"
echo "iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT"
echo "iptables -A INPUT  -p tcp --dport http -j ACCEPT"
echo "--------------------------------------"
echo ""
 
# Fin du script

Alors, pour l’utiliser.

Faire d’abord :

cd
vim nginxautoinstall.sh

Là maintenant vous copiez tout dans ce script (par exemple en tapant d’abord « i » puis en cliquant sur le bouton du milieu de la souris). Puis vous enregistrez en fait [Echap] puis :wp [ENTREE]

Maintenant ne reste plus qu’à faire un :

chmod u+x nginxautoinstall.sh

Puis il faut exécuter le script avec un :

sudo nginxautoinstall.sh

Et voilà ! Normalement, vous devriez être sortit d’affaire.