Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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

share|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

2 Answers 2

up vote 27 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

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

Build package:

cd nginx-0.8.54 && dpkg-buildpackage -b

Install packages:

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

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? –  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
1  
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
1  
@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
2  
Dotdeb provides a nice nginx-extras package: dotdeb.org/instructions –  Bergius Dec 13 '12 at 11:00

Your Answer

 
discard

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.