apt-get을 사용하여 옵션 Nginx 모듈 설치


37

현재 Nginx 사이트의 지침을 통해 Nginx를 설치했습니다.

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

Nginx를 구성했으며 잠시 동안 훌륭하게 실행되었습니다. 이제 사용자 정의 모듈 (예 : 업로드 진행 모듈) 을 추가하고 싶습니다 . 이 모듈에 대한 지침에 --add-module=path/to/nginx_uploadprogress_module따라 ./configure명령 이 추가 됩니다 . 그러나 소스에서 Nginx를 설치하지 않았습니다.

이 상황을 처리하는 가장 좋은 방법은 무엇입니까? APT에게 소스에서 컴파일하고 옵션을 전달하도록 지시 할 수 ./configure있습니까? 기존 설치를 컴파일 할 수 있습니까? 경로는 어떻습니까? 어떻게 일치 시키나요? 아니면 APT 관리 버전을 제거하고 다시 시작해야합니까?


?를 사용하여 필요한 모듈을 찾았습니까 apt-cache search?
Khaled

1
nginx 솔리드, 동적 모듈을 지원하지 않습니다.
alvosu

답변:


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나는받는 동안 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

1
안녕하세요 alvosu,이 오류가 발생합니다. dpkg-buildpackage : 오류 : debian / rules 빌드에서 오류 종료 상태 2가 발생했습니다. 어떤 아이디어입니까?
Xavi Colomer

4
@BrandonTilley이 방법으로 설치하면 apt-get/ 를 통해 설치 제거 할 수 있으며 설치 한 dpkg다른 패키지도 설치되어 apt-get있음을 알고 nginx설치하라는 메시지를 표시하지 않습니다. 소스에서 직접 설치하면 얻을 수 없습니다.
Carlos Campderrós

2
"dpkg-buildpackage : warning : .dsc 및 .changes 파일에 서명하지 못했습니다"와 같은 오류가있는 경우 dpkg-buildpackage -uc -us대신을 사용하십시오 dpkg-buildpackage -b. 그렇지 않으면 .deb 파일이 생성되지 않습니다.
Roman Newaza


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
 cd nginx-1.9.3 /

 # 여기서는 / opt / nginx / 아래에 nginx를 설치한다고 가정합니다.
 ./configure --prefix = / opt / nginx \
     --add-module = / path / to / headers-more-nginx-module
 하다
 설치하다
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.