Greetings,

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

nginx=stable
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?

Thanks

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

1 Answer

up vote 7 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 http://ppa.launchpad.net/nginx/stable/ubuntu lucid main
deb-src http://ppa.launchpad.net/nginx/stable/ubuntu lucid main

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
...
--add-module=path/to/nginx_uploadprogress_module

Build package:

cd nginx-0.8.54 && dpkg-buildpackage -b

Install packages.

link|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? – Brandon 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. – Brandon 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 at 11:59
feedback

Your Answer

 
or
required, but never shown

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