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 solid、動的モジュールはサポートしていません。
-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-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ます。この問題の解決方法をお勧めしますか?
ミシェルティリー

nginxパッケージを削除:apt-get remove nginx
alvosu

1
こんにちはalvosu、私はこのエラーを受け取っています:dpkg-buildpackage:error:debian / rules buildはエラー終了ステータス2を与えました。
ザビコロマー

4
@BrandonTilleyこの方法でインストールする場合、apt-get/ dpkgでアンインストールできます。また、他のパッケージを介してインストールすると、インストールされてapt-getいることnginxがわかり、インストールを要求されません。ソースから直接インストールした場合、これは取得できません。
カルロスキャンデロス

2
「dpkg-buildpackage:warning:Failed to sign .dsc and .changes file」のようなエラーが発生した場合は、dpkg-buildpackage -uc -us代わりにを使用してくださいdpkg-buildpackage -b。そうしないと、.debファイルは作成されません。
ロマンネウザ


1

extra /(サードパーティモジュール)を追加する場合は、ソースから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.