การติดตั้งโมดูล Nginx ที่เป็นตัวเลือกด้วย apt-get


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หรือไม่?
เลด

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 / กฎ:

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 / การสร้างกฎให้สถานะข้อผิดพลาดออก 2. ความคิดใด ๆ ?
Xavi Colomer

4
@BrandonTilley หากคุณติดตั้งด้วยวิธีนี้คุณสามารถถอนการติดตั้งผ่านapt-get/ dpkgและแพคเกจอื่น ๆ ที่คุณติดตั้งผ่านapt-getจะรู้ว่าnginxติดตั้งแล้วและจะไม่ขอให้คุณติดตั้ง หากคุณติดตั้งโดยตรงจากแหล่งที่มาคุณจะไม่ได้รับสิ่งนี้
Carlos Campderrós

2
หากคุณมีข้อผิดพลาดเช่นนี้ "dpkg-buildpackage: คำเตือน: ไม่สามารถลงชื่อเข้าใช้และ .dsc .changes ไฟล์" ใช้แทนdpkg-buildpackage -uc -us dpkg-buildpackage -bมิฉะนั้นไฟล์. deb จะไม่ถูกสร้างขึ้น
Roman Newaza

28

ตั้งแต่บีบใน Debianและตั้งแต่ onericใน Ubuntu มีบางอย่างที่headers-more-moduleฉันต้องการ

apt-get install nginx-extras

3
Dotdeb นำเสนอแพ็คเกจ nginx-extras ที่ดี: dotdeb.org/instructions
Bergius

สำหรับรุ่น nginx-plus apt-get install nginx-extras ก็ใช้งานได้ดีเช่นกัน! ขอบคุณ
scaryguy

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 /

 # ที่นี่เราคิดว่าคุณจะติดตั้งคุณ nginx ภายใต้ / opt / nginx /
 ./configure --prefix = / opt / nginx \
     --add โมดูล = / เส้นทาง / เพื่อ / หัวมากขึ้น-Nginx โมดูล
 แต่งหน้า
 ทำการติดตั้ง
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.