Menginstal modul Nginx opsional dengan apt-get

37

Saat ini saya telah menginstal Nginx melalui instruksi di situs Nginx:

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

Saya telah mengkonfigurasi Nginx dan telah berjalan dengan baik untuk sementara waktu. Sekarang, saya ingin menambahkan beberapa modul khusus - misalnya, Modul Kemajuan Unggahan . Instruksi untuk modul ini mengatakan untuk menambah perintah --add-module=path/to/nginx_uploadprogress_moduleAnda ./configure. Namun, saya tidak menginstal Nginx dari sumber.

Apa cara terbaik untuk menangani situasi ini? Apakah mungkin untuk memberi tahu APT untuk mengkompilasi dari sumber dan meneruskan opsi ke ./configure? Bisakah saya mengkompilasi instalasi yang ada? Bagaimana dengan jalur - bagaimana cara membuat mereka cocok? Atau apakah saya harus menghapus versi yang dikelola APT dan memulai kembali?

Michelle Tilley
sumber
Apakah Anda mencari menggunakan modul yang dibutuhkan apt-cache search?
Khaled
1
nginx solid, tidak mendukung modul dinamis.
alvosu

Jawaban:

56

Instal dpkg-dev:

sudo apt-get install dpkg-dev

Tambahkan repositori:

sudo add-apt-repository ppa:nginx/stable

Edit /etc/apt/sources.list.d/nginx-stable-lucid.list, tambahkan dpkg-src:

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

Catatan: (langkah sebelumnya mungkin sudah dilakukan secara otomatis di Ubuntu> = 12,04 - juga pastikan Anda berubah luciduntuk mencerminkan versi Anda)

Sinkronisasi ulang file indeks paket:

sudo apt-get update

Dapatkan sumber:

apt-get source nginx

Membangun dependensi:

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

Paket pembuatan:

cd nginx-0.8.54 && dpkg-buildpackage -b

Instal paket:

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

sudo dpkg --install nginx-full_1.2.4-2ubuntu0ppa1~precise_amd64.deb
alvosu
sumber
1
Instruksi yang luar biasa dan terperinci. Pada akhirnya, sementara sudo dpkg --install nginx-full_0.8.54-4ppa4~lucid_i386.deb-ing, saya menerima nginx-full depends on nginx-common (= 0.8.54-4ppa4~lucid); however: Package nginx-common is not installed.Namun, sudo dpkg --install nginx-common_0.8.54-4ppa4~lucid_all.debmemberi 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. Bagaimana Anda akan merekomendasikan untuk menyelesaikan masalah ini?
Michelle Tilley
Paket Remove nginx: apt-get remove nginx
alvosu
1
Halo alvosu, saya mendapatkan kesalahan ini: dpkg-buildpackage: error: debian / rules build memberikan status keluar kesalahan 2. Ada ide?
Xavi Colomer
4
@BrandonTilley jika Anda menginstalnya dengan cara ini, Anda dapat menghapus instalannya melalui apt-get/ dpkg, dan juga paket-paket lain yang Anda instal apt-getakan tahu yang nginxsudah diinstal dan tidak akan meminta Anda untuk menginstalnya. Jika Anda menginstalnya langsung dari sumber Anda tidak akan mendapatkan ini.
Carlos Campderrós
2
Jika Anda memiliki kesalahan seperti "dpkg-buildpackage: warning: Gagal menandatangani file .dsc dan .changes", gunakan dpkg-buildpackage -uc -ussebagai ganti dpkg-buildpackage -b. Jika tidak, file deb tidak akan dibuat.
Roman Newaza
28

Sejak memeras di Debian dan sejak oneric di Ubuntu, ada beberapa (seperti yang headers-more-modulesaya butuhkan) di

apt-get install nginx-extras
Victor Sergienko
sumber
3
Dotdeb menyediakan paket nginx-ekstra yang bagus: dotdeb.org/instructions
Bergius
Untuk versi nginx-plus, apt-get install nginx-extras juga bagus! Terima kasih
scaryguy
1

Menginstal Nginx dari sumber diperlukan jika Anda ingin menambahkan ekstra / (modul pihak ketiga). Jika diinstal melalui sumber, Nginx tidak dapat digunakan sebagai layanan dan logrotate tidak dapat diatur untuk Nginx. Ikuti metode ini untuk menginstalnya dengan semua fungsi yang Anda dapatkan dari menginstal melaluiapt-get

Rohini Choudhary
sumber
0

Artikel manis yang dapat dibaca di sini akan menjelaskan informasi terperinci tentang kompilasi modul ke dalam nginx. Pada dasarnya Anda perlu mengkompilasi ulang nginx setiap kali Anda ingin memasang modul.

Juga mirip dengan metode ini juga akan berfungsi.

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

 # Di sini kami menganggap Anda akan menginstal Anda nginx di / opt / nginx /.
 ./configure --prefix = / opt / nginx \
     --add-module = / path / ke / header-more-nginx-module
 membuat
 buat instal
ElvinD
sumber