-
-
Save waskito/7d02edc088734af3df9067d0b7e367f9 to your computer and use it in GitHub Desktop.
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
#!/usr/bin/env bash | |
# User must be root | |
if [[ $EUID -ne 0 ]]; then | |
echo "This script must be run as root" | |
return | |
fi | |
# Check if www-data do exist | |
q=$(id -u www-data) | |
re='^[0-9]+$' | |
if ! [[ $q =~ $re ]] ; then | |
echo "Creating group www-data" | |
groupadd www-data && echo "www-data created!" | |
echo "Please make sure to fix user group permission of your www directories. Please see: http://serverfault.com/questions/6895/whats-the-best-way-of-handling-permissions-for-apache2s-user-www-data-in-var" | |
fi | |
NPS_VERSION=1.9.32.3 | |
NGINX_VERSION=1.6.2 | |
OPENSSL_VERSION=1.0.2 | |
# Install necessary packages | |
yum -y install git wget tar unzip install gcc gcc-c++ make zlib-devel pcre-devel openssl-devel && \ | |
mkdir -p ~/sources/ && \ | |
# Compile against OpenSSL to enable NPN | |
cd ~/sources && \ | |
wget http://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz && \ | |
tar -xzvf openssl-${OPENSSL_VERSION}.tar.gz && \ | |
# Download the Cache Purge module | |
cd ~/sources/ && \ | |
git clone https://github.com/FRiCKLE/ngx_cache_purge.git && \ | |
cd ~/sources && \ | |
# Download PageSpeed | |
cd ~/sources && \ | |
wget https://github.com/pagespeed/ngx_pagespeed/archive/release-${NPS_VERSION}-beta.zip && \ | |
unzip release-${NPS_VERSION}-beta.zip | |
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/ | |
# Get the Nginx source. | |
# | |
# Best to get the latest mainline release. Of course, your mileage may | |
# vary depending on future changes | |
cd ~/sources/ && \ | |
wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz && \ | |
tar zxf nginx-${NGINX_VERSION}.tar.gz && \ | |
cd nginx-${NGINX_VERSION} && \ | |
# Configure nginx. | |
# | |
# This is based on the default package in Debian. Additional flags have | |
# been added: | |
# | |
# * --with-debug: adds helpful logs for debugging | |
# * --with-openssl=$HOME/sources/openssl-1.0.1e: compile against newer version | |
# of openssl | |
# * --with-http_spdy_module: include the SPDY module | |
./configure --prefix=/etc/nginx \ | |
--sbin-path=/usr/sbin/nginx \ | |
--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=www-data \ | |
--group=www-data \ | |
--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-mail \ | |
--with-mail_ssl_module \ | |
--with-file-aio \ | |
--with-http_spdy_module \ | |
--with-cc-opt='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2' \ | |
--with-ld-opt='-Wl,-z,relro -Wl,--as-needed' \ | |
--with-ipv6 \ | |
--with-debug \ | |
--with-openssl=$HOME/sources/openssl-${OPENSSL_VERSION} \ | |
--add-module=$HOME/sources/ngx_pagespeed-release-${NPS_VERSION}-beta \ | |
--add-module=$HOME/sources/ngx_cache_purge && \ | |
# Make the package. | |
make && \ | |
make install && \ | |
echo "Completed!" |
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
#!/usr/bin/env bash | |
REDIS_VERSION=2.8.19 | |
# User must be root | |
if [[ $EUID -ne 0 ]]; then | |
echo "This script must be run as root" | |
return | |
fi | |
# RPM Remi | |
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm && \ | |
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm | |
# Install needed programs | |
yum install wget | |
# Must be in the home folder | |
cd ~ && \ | |
# Create temporary directory | |
mkdir temp && \ | |
# Download latest redis | |
wget http://download.redis.io/releases/redis-${REDIS_VERSION}.tar.gz && \ | |
tar -xzvf redis-${REDIS_VERSION}.tar.gz && \ | |
cd redis-${REDIS_VERSION} && \ | |
# Install | |
make && make install | |
# Create service | |
chkconfig --add redis && \ | |
chkconfig --level 345 redis on && \ | |
service redis start/stop/restart && \ | |
# PHP Counterparts | |
yum --enablerepo=remi,remi-test install php-redis |
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
#!/usr/bin/env bash | |
# User must be root | |
if [[ $EUID -ne 0 ]]; then | |
echo "This script must be run as root" | |
return | |
fi | |
# Check if www-data do exist | |
q=$(id -u www-data) | |
re='^[0-9]+$' | |
if ! [[ $q =~ $re ]] ; then | |
echo "Creating group www-data" | |
groupadd www-data && echo "www-data created!" | |
echo "Please make sure to fix user group permission of your www directories. Please see: http://serverfault.com/questions/6895/whats-the-best-way-of-handling-permissions-for-apache2s-user-www-data-in-var" | |
fi | |
NPS_VERSION=1.9.32.3 | |
NGINX_VERSION=1.6.2 | |
OPENSSL_VERSION=1.0.2 | |
# Install dependencies | |
# | |
# * checkinstall: package the .deb | |
# * libpcre3, libpcre3-dev: required for HTTP rewrite module | |
# * zlib1g zlib1g-dbg zlib1g-dev: required for HTTP gzip module | |
apt-get install unzip git wget tar checkinstall libpcre3 libpcre3-dev zlib1g zlib1g-dbg zlib1g-dev -y && \ | |
mkdir -p ~/sources/ && \ | |
# Compile against OpenSSL to enable NPN | |
cd ~/sources && \ | |
wget http://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz && \ | |
tar -xzvf openssl-${OPENSSL_VERSION}.tar.gz && \ | |
# Download the Cache Purge module | |
cd ~/sources/ && \ | |
git clone https://github.com/FRiCKLE/ngx_cache_purge.git && \ | |
cd ~/sources && \ | |
# Download PageSpeed | |
cd ~/sources && \ | |
wget https://github.com/pagespeed/ngx_pagespeed/archive/release-${NPS_VERSION}-beta.zip && \ | |
unzip release-${NPS_VERSION}-beta.zip | |
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/ | |
# Get the Nginx source. | |
# | |
# Best to get the latest mainline release. Of course, your mileage may | |
# vary depending on future changes | |
cd ~/sources/ && \ | |
wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz && \ | |
tar zxf nginx-${NGINX_VERSION}.tar.gz && \ | |
cd nginx-${NGINX_VERSION} && \ | |
# Configure nginx. | |
# | |
# This is based on the default package in Debian. Additional flags have | |
# been added: | |
# | |
# * --with-debug: adds helpful logs for debugging | |
# * --with-openssl=$HOME/sources/openssl-1.0.1e: compile against newer version | |
# of openssl | |
# * --with-http_spdy_module: include the SPDY module | |
./configure --prefix=/etc/nginx \ | |
--sbin-path=/usr/sbin/nginx \ | |
--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=www-data \ | |
--group=www-data \ | |
--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-mail \ | |
--with-mail_ssl_module \ | |
--with-file-aio \ | |
--with-http_spdy_module \ | |
--with-cc-opt='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2' \ | |
--with-ld-opt='-Wl,-z,relro -Wl,--as-needed' \ | |
--with-ipv6 \ | |
--with-debug \ | |
--with-openssl=$HOME/sources/openssl-${OPENSSL_VERSION} \ | |
--add-module=$HOME/sources/ngx_pagespeed-release-${NPS_VERSION}-beta \ | |
--add-module=$HOME/sources/ngx_cache_purge && \ | |
# Make the package. | |
make && \ | |
make install && \ | |
echo "Completed!" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment