Installing optional Nginx modules with apt-get
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?
Solution 1:
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:
sudo dpkg --install nginx-common_1.2.4-2ubuntu0ppa1~precise_all.deb
sudo dpkg --install nginx-full_1.2.4-2ubuntu0ppa1~precise_amd64.deb
Solution 2:
Since squeeze in Debian and since oneric in Ubuntu, there are some (like headers-more-module
I needed) in
apt-get install nginx-extras
Solution 3:
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