Skip to content

Instantly share code, notes, and snippets.

@mufus
Last active August 29, 2015 14:04
Show Gist options
  • Save mufus/1975613e529b37eeac53 to your computer and use it in GitHub Desktop.
Save mufus/1975613e529b37eeac53 to your computer and use it in GitHub Desktop.
Customize Debian Wheezy .deb packages
Set up a new Debian 7 machine and install the usual basic packages
sudo apt-get install open-vm-tools lynx vim curl psmisc snmpd ntp patch rcconf rsync equivs
Add wheezy-backport apt-source
sudo vim /etc/apt/sources.list:
deb http://ftp.se.debian.org/debian/ wheezy-backports main non-free contrib
deb-src http://ftp.se.debian.org/debian/ wheezy-backports main non-free contrib
sudo apt-get update
Install Debian essential building packages
sudo apt-get install dpkg-dev build-essential zlib1g-dev libpcre3 libpcre3-dev unzip
Re-package Nginx with additional modules
Install Nginx build dependencies from the backports repository
sudo apt-get -t wheezy-backports build-dep nginx
mkdir -p ~/build/nginx
cd ~/build/nginx
Download the nginx package source:
sudo apt-get -t wheezy-backports source nginx
cd into modules folder
cd nginx-1.6.0/debian/modules/
Get the mod_zip module
sudo wget https://github.com/evanmiller/mod_zip/archive/master.zip
sudo unzip master.zip
sudo rm master.zip
Get the ModSecurity module and compile it
But first, install required packages
sudo apt-get install gcc make automake autoconf libtool
sudo apt-get install apache2-threaded-dev libcurl4-openssl-dev
sudo wget https://github.com/SpiderLabs/ModSecurity/archive/v2.8.0.zip
sudo unzip v2.8.0.zip
sudo rm v2.8.0.zip
cd ModSecurity-2.8.0/
sudo ./autogen.sh
sudo ./configure --enable-standalone-module
sudo make
sudo make install
Get the ngx_pagespeed module
sudo wget https://github.com/pagespeed/ngx_pagespeed/archive/v1.8.31.4-beta.zip
sudo unzip v1.8.31.4-beta.zip
sudo rm v1.8.31.4-beta.zip
cd ngx_pagespeed-1.8.31.4-beta/
sudo wget https://dl.google.com/dl/page-speed/psol/1.8.31.4.tar.gz
sudo tar -xzvf 1.8.31.4.tar.gz
Edit the rules file, located in the debian folder:
sudo vi ~/build/nginx/nginx-1.6.0/debian/rules
Add to all blocks:
--add-module=$(MODULESDIR)/mod_zip-master \
--add-module=$(MODULESDIR)/ModSecurity-2.8.0/nginx/modsecurity \
--add-module=$(MODULESDIR)/ngx_pagespeed-1.8.31.4-beta
Increase the source package version
sudo vi ~/build/nginx/nginx-1.6.0/debian/changelog
nginx (1.6.0-1~bpo70+1-mufus) wheezy-backports; urgency=medium
Build the packages
cd ~/build/nginx/nginx-1.6.0/
sudo dpkg-buildpackage -b
Install the package
sudo dpkg -i nginx-extras_1.6.2-1~bpo70+1-mufus_amd64.deb nginx-common_1.6.2-1~bpo70+1-mufus_all.deb nginx_1.6.2-1~bpo70+1-mufus_all.deb
Pin package to prevent update
sudo vim /etc/apt/preferences.d/nginx
Package: nginx
Pin: version 1.6.2-1~bpo70+1-mufus
Pin-Priority: 1001
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment