-
-
Save delebash/2b843429db80ce19b1a37e281a8deb8a to your computer and use it in GitHub Desktop.
Install Nginx, OpenSSL, and ngx_pagespeed from source on Ubuntu 14.04
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
############################################################################################## | |
## Install Nginx with OpenSSL and ngx_pagespeed | |
## Author: Andrew Maxwell <[email protected]> | |
## Date: 2016/05/27 | |
## Version: 0.1 | |
## | |
## Disclaimer: I am not responsible for how you use this script. Do not assume this script | |
## will work in all envrionments or any Ubuntu version other than 14.04. This script assumes | |
## you have had a version of nginx already installed from Ubuntu PPAs and that it has been | |
## removed via `sudo apt-get remove nginx nginx-common` | |
## | |
## ngx_pagespeed code adapted from: | |
## https://developers.google.com/speed/pagespeed/module/build_ngx_pagespeed_from_source | |
## openssl code adapted from: | |
## https://www.digitalocean.com/community/questions/how-to-get-already-installed-nginx-to-use-openssl-1-0-2-for-alpn#answer_27588 | |
############################################################################################## | |
# Current version of nginx, openssl, and ngx_pagespeed you want to install | |
NGINX_VERSION=1.11.0 | |
OPENSSL_VERSION=1.0.2h | |
NPS_VERSION=1.11.33.2 | |
############################################################################################## | |
########## STOP EDITING | |
############################################################################################## | |
## Currently installed version of openssl | |
OPENSSL_CURRENT_VERSION=$(openssl version | awk '{ print $2 }') | |
## Nginx ./configure flags | |
# Automagically grab current Nginx flags | |
#NGINX_USER_FLAGS="$(nginx -V 2>&1 | tail -1| tr ' ' '\n' | tail -n +3)" | |
# Or use default Nginx flags | |
NGINX_USER_FLAGS="--prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-http_xslt_module=dynamic --with-http_image_filter_module=dynamic --with-http_geoip_module=dynamic --with-http_perl_module=dynamic --with-threads --with-stream --with-stream_ssl_module --with-http_slice_module --with-mail --with-mail_ssl_module --with-file-aio --with-ipv6 --with-http_v2_module" | |
OPENSSL_FLAGS="--with-openssl=$HOME/openssl-$OPENSSL_VERSION" | |
NPS_FLAGS="--add-module=$HOME/ngx_pagespeed-release-$NPS_VERSION-beta" | |
NGINX_FLAGS="$NGINX_USER_FLAGS $OPENSSL_FLAGS $NPS_FLAGS" | |
# Ensure lib and build packages are installed | |
sudo apt-get update | |
sudo apt-get install build-essential zlib1g-dev libpcre3 libpcre3-dev unzip | |
## Ensure we are in home directory | |
cd $HOME | |
## Download sources | |
# Download nginx | |
wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz | |
# Download openssl | |
wget https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz | |
# Download ngx_pagespeed | |
wget https://github.com/pagespeed/ngx_pagespeed/archive/release-${NPS_VERSION}-beta.zip | |
## Extract sources | |
# Extract nginx | |
tar -xvzf nginx-${NGINX_VERSION}.tar.gz | |
# Extract openssl | |
tar -xvzf openssl-${OPENSSL_VERSION}.tar.gz | |
# Extract ngx_pagespeed | |
unzip release-${NPS_VERSION}-beta.zip | |
## Download and Extract PSOL (PageSpeed Optimization Library) | |
cd ngx_pagespeed-release-${NPS_VERSION}-beta/ | |
wget https://dl.google.com/dl/page-speed/psol/${NPS_VERSION}.tar.gz | |
tar -xzvf ${NPS_VERSION}.tar.gz # extracts to psol/ | |
cd $HOME | |
## Install openssl | |
cd openssl-${OPENSSL_VERSION}/ | |
./config | |
make depend | |
make | |
make test | |
sudo make install | |
sudo mv /usr/bin/openssl /usr/bin/openssl_${OPENSSL_CURRENT_VERSION} | |
sudo ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl | |
cd $HOME | |
## Install nginx + ngx_pagespeed | |
cd nginx-${NGINX_VERSION}/ | |
./configure ${NGINX_FLAGS} | |
make | |
sudo make install | |
echo "Installation Complete!" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment