Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I currently have Nginx installed via the instructions on the Nginx site:

sudo su -
add-apt-repository ppa:nginx/$nginx
apt-get update 
apt-get install

I have configured Nginx and it has been running great for a little while. Now, I want to add some custom modules--say, the Upload Progress Module. The instructions for this module say to add --add-module=path/to/nginx_uploadprogress_module to your ./configure command. However, I did not install Nginx from source.

What is the best way to handle this situation? Is it possible to tell APT to compile from source and pass options to ./configure? Can I compile over the existing installation? What about paths--how do I make them match? Or do I have to remove the APT managed version and start over?

share|improve this question
Did you look for the needed module using apt-cache search? – Khaled Jan 27 '11 at 7:29
nginx solid, it not support dynamic module. – alvosu Jan 31 '11 at 0:12
up vote 44 down vote accepted

Install dpkg-dev:

sudo apt-get install dpkg-dev

Add repository:

sudo add-apt-repository ppa:nginx/stable

Edit /etc/apt/sources.list.d/nginx-stable-lucid.list, add dpkg-src:

deb lucid main
deb-src lucid main

note: (the previous step may have already been automatically performed on Ubuntu >= 12.04 - also make sure that you change lucid to reflect your version)

Resynchronize the package index files:

sudo apt-get update

Get sources:

apt-get source nginx

Build dependencies:

sudo apt-get build-dep nginx

Edit nginx-0.8.54/debian/rules:

config.status.full: config.env.full config.sub config.guess

Build package:

cd nginx-0.8.54 && dpkg-buildpackage -b

Install packages:

sudo dpkg --install nginx-common_1.2.4-2ubuntu0ppa1~precise_all.deb

sudo dpkg --install nginx-full_1.2.4-2ubuntu0ppa1~precise_amd64.deb
share|improve this answer
Wonderful, detailed instructions. At the end, while sudo dpkg --install nginx-full_0.8.54-4ppa4~lucid_i386.deb-ing, I'm receiving nginx-full depends on nginx-common (= 0.8.54-4ppa4~lucid); however: Package nginx-common is not installed. However, sudo dpkg --install nginx-common_0.8.54-4ppa4~lucid_all.deb is giving dpkg: error processing nginx-common_0.8.54-4ppa4~lucid_all.deb (--install): trying to overwrite '/usr/share/nginx/www/50x.html', which is also in package nginx 0:0.8.54-4ppa2~lucid. How would you recommend resolving this issue? – Michelle Tilley Jan 29 '11 at 18:44
Remove nginx package: apt-get remove nginx – alvosu Jan 29 '11 at 19:11
In this particular case, is there any advantage to installing in this manner over compiling from source by hand? Thanks again. – Michelle Tilley Jan 29 '11 at 23:28
Hi alvosu, I'm getting this error: dpkg-buildpackage: error: debian/rules build gave error exit status 2. Any idea? – Xavi Colomer Apr 16 '12 at 11:59
@BrandonTilley if you install it this way, you can uninstall it via apt-get/dpkg, and also other packages that you install via apt-get will know that nginx is installed and will not ask you to install it. If you installed it directly from source you won't get this. – Carlos Campderrós Jul 3 '12 at 10:47

Since squeeze in Debian and since oneric in Ubuntu, there are some (like headers-more-module I needed) in

apt-get install nginx-extras
share|improve this answer
Dotdeb provides a nice nginx-extras package: – Bergius Dec 13 '12 at 11:00
For nginx-plus version, apt-get install nginx-extras works great, too! Thanks – scaryguy Aug 28 '15 at 2:53

Installing Nginx from source is necessary if you want to add extra/(third party module) to it. If installed via source the Nginx can't be used as a service and logrotate doesn't gets setup for Nginx. Follow this method to get it installed with all functionalities which you get from installing via apt-get

share|improve this answer

Sweet article that can be read here will explain the detailed information on compiling modules into nginx. Basically you need to recompile the nginx each time you want to install a module.

Also similar to this method will also work.

 wget ''
 tar -xzvf nginx-1.9.3.tar.gz
 cd nginx-1.9.3/

 # Here we assume you would install you nginx under /opt/nginx/.
 ./configure --prefix=/opt/nginx \
 make install
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.