Outils pour utilisateurs

Outils du site


nginx:compiler_et_installer_nginx_openssl_a_partir_du_code_source

Compiler et installer Nginx/OpenSSL à partir du code source

  • Installer la version «light» de Nginx pour mettre en place l'architecture de répertoires Debian:
apt-get install nginx-light
  • Créer le script install-nginx-openssl.sh:
install-nginx-openssl.sh
#!/bin/bash
 
##################################################
# Versions a telecharger & compiler
 
NGINX_VERSION="1.7.12"
HEADER_MORE_NGINX_VERSION="0.26"
SSL_VERSION="1.0.2c"
PCRE_VERSION="8.37" 
ZLIB_VERSION="1.2.8"
 
##################################################
# Dependances
# Le paquet Nginx n'est utilise que pour la mise en place de l'arborescence
# Debian / Ubuntu correspondante. Le demon du paquet ne sera pas utilise.
 
apt-get install build-essential
 
##################################################
# Telechargement & extraction des sources
 
[ -f nginx-${NGINX_VERSION}.tar.gz ] || wget "http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz"
[ -d nginx-${NGINX_VERSION} ] && rm -rf nginx-${NGINX_VERSION}
tar -xzf nginx-${NGINX_VERSION}.tar.gz
 
[ -f headers-more-nginx-module-${HEADER_MORE_NGINX_VERSION}.tar.gz ] || wget --no-check-certificate -O headers-more-nginx-module-${HEADER_MORE_NGINX_VERSION}.tar.gz "ht
[ -d headers-more-nginx-module-${HEADER_MORE_NGINX_VERSION} ] && rm -rf headers-more-nginx-module-${HEADER_MORE_NGINX_VERSION}
tar -xzf headers-more-nginx-module-${HEADER_MORE_NGINX_VERSION}.tar.gz
 
[ -f openssl-${SSL_VERSION}.tar.gz ] || wget "http://www.openssl.org/source/openssl-${SSL_VERSION}.tar.gz"
[ -d openssl-${SSL_VERSION} ] && rm -rf openssl-${SSL_VERSION}
tar -xzf openssl-${SSL_VERSION}.tar.gz
 
[ -f pcre-${PCRE_VERSION}.tar.gz ] || wget "http://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-${PCRE_VERSION}.tar.gz"
[ -d pcre-${PCRE_VERSION} ] && rm -rf pcre-${PCRE_VERSION}
tar -xzf pcre-${PCRE_VERSION}.tar.gz
 
[ -f zlib-${ZLIB_VERSION}.tar.gz ] || wget "http://zlib.net/zlib-${ZLIB_VERSION}.tar.gz"
[ -d zlib-${ZLIB_VERSION} ] && rm -rf zlib-${ZLIB_VERSION}
tar -xzf zlib-${ZLIB_VERSION}.tar.gz
 
##################################################
# Compilation (libs => statique)
cd nginx-${NGINX_VERSION}
 
./configure\
 --prefix=/usr/local/nginx-${NGINX_VERSION}-static\
 --with-ld-opt="-static"\
 --with-cc-opt="-O2 -static -static-libgcc"\
 --with-ipv6\
 --with-http_ssl_module\
 --with-openssl=../openssl-${SSL_VERSION}\
 --with-pcre=../pcre-${PCRE_VERSION}\
 --with-zlib=../zlib-${ZLIB_VERSION}\
 --with-http_gzip_static_module\
 --with-http_spdy_module\
 --with-http_stub_status_module\
 --add-module=../headers-more-nginx-module-${HEADER_MORE_NGINX_VERSION}
 
sed -i "/CFLAGS/s/ \-O //g" objs/Makefile
 
make
 
[ $? -eq 0 ] || { echo "erreur compilation" ; exit 1 ; }
 
##################################################
# Arret Nginx
 
service nginx stop 2>/dev/null || /etc/init.d/nginx stop
kill $(ps awx |grep " nginx: " |grep -v grep |awk '{print $1}')
 
##################################################
# Mise en place et prise en compte de la nouvelle version compilee
 
grep -q "^DAEMON=" /etc/default/nginx || cat<<EOT>>/etc/default/nginx
DAEMON="/usr/local/nginx/sbin/nginx"
DAEMON_OPTS="-c /etc/nginx/nginx.conf"
EOT
 
make install
ln -fs /usr/local/nginx-${NGINX_VERSION}-static /usr/local/nginx
 
##################################################
# Demarrage Nginx
 
service nginx start 2>/dev/null || /etc/init.d/nginx start
  • Exécuter le script (utilisateur root):
./install-nginx-1.9.sh
  • Configurer Nginx
nginx/compiler_et_installer_nginx_openssl_a_partir_du_code_source.txt · Dernière modification: 23/12/2015 par laurent