使用apt-get安装可选的Nginx模块


37

我目前已通过Nginx网站上的说明安装了Nginx:

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

我已经配置了Nginx,并且运行了好一阵子。现在,我想添加一些自定义模块,例如Upload Progress Module。该模块的说明说要添加--add-module=path/to/nginx_uploadprogress_module到您的./configure命令中。但是,我没有从源代码安装Nginx。

处理这种情况的最佳方法是什么?是否可以告诉APT从源进行编译并将选项传递给./configure?我可以对现有安装进行编译吗?那么路径如何-如何使它们匹配?还是我必须删除APT托管版本并重新开始?


您是否使用查找所需的模块apt-cache search
哈立德

1
nginx坚固,它不支持动态模块。
alvosu 2011年

Answers:


56

安装dpkg-dev:

sudo apt-get install dpkg-dev

添加存储库:

sudo add-apt-repository ppa:nginx/stable

编辑/etc/apt/sources.list.d/nginx-stable-lucid.list,添加dpkg-src:

deb http://ppa.launchpad.net/nginx/stable/ubuntu lucid main
deb-src http://ppa.launchpad.net/nginx/stable/ubuntu lucid main

注意:(上一步可能已经在Ubuntu> = 12.04上自动执行-还要确保您进行更改lucid以反映您的版本)

重新同步程序包索引文件:

sudo apt-get update

获取资源:

apt-get source nginx

构建依赖关系:

sudo apt-get build-dep nginx

编辑nginx-0.8.54 / debian / rules:

config.status.full: config.env.full config.sub config.guess
...
--add-module=path/to/nginx_uploadprogress_module

构建包:

cd nginx-0.8.54 && dpkg-buildpackage -b

安装软件包:

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

sudo dpkg --install nginx-full_1.2.4-2ubuntu0ppa1~precise_amd64.deb

1
精彩,详细的说明。最后,在sudo dpkg --install nginx-full_0.8.54-4ppa4~lucid_i386.deb-ing时,我正在接受nginx-full depends on nginx-common (= 0.8.54-4ppa4~lucid); however: Package nginx-common is not installed.但是,sudo dpkg --install nginx-common_0.8.54-4ppa4~lucid_all.deb在给予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。您如何建议解决此问题?
Michelle Tilley

删除nginx软件包:apt-get删除nginx
alvosu 2011年

1
您好alvosu,我收到此错误:dpkg-buildpackage:错误:debian / rules build给出了错误退出状态2。
Xavi Colomer

4
@BrandonTilley如果以这种方式安装,则可以通过apt-get/ 卸载它,通过dpkg安装的其他软件包apt-get也会知道nginx已安装并且不会要求您安装它。如果直接从源代码安装它,那么您将无法获得它。
卡洛斯·坎德罗斯

2
如果出现类似“ dpkg-buildpackage:警告:无法签名.dsc和.changes文件”的错误,请使用dpkg-buildpackage -uc -us代替dpkg-buildpackage -b。否则,将不会创建.deb文件。
罗曼·纽瓦萨


1

如果要向其添加额外的/(第三方模块),则必须从源代码安装Nginx。如果通过源安装,则Nginx不能用作服务,并且logrotate不会为Nginx设置。请遵循此方法来安装它,并通过安装获得所有功能apt-get


0

可以在这里阅读的甜蜜文章将说明有关将模块编译到nginx中的详细信息。基本上,每次要安装模块时,都需要重新编译nginx。

同样类似于这种方法也将起作用。

 wget'http://nginx.org/download/nginx-1.9.3.tar.gz'
 tar -xzvf nginx-1.9.3.tar.gz
 光盘nginx-1.9.3 /

 #在这里,我们假设您将在/ opt / nginx /下安装nginx。
 ./configure --prefix = / opt / nginx \
     --add-module = / path / to / headers-more-nginx-module
 使
 进行安装
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.