ข้อผิดพลาดในการติดตั้ง Nginx ใน Ubuntu 16.04


57
: ~ $ sudo apt-get เอา nginx * && sudo apt-get ติดตั้ง nginx-full *

กำลังอ่านรายการแพ็กเกจ ... เสร็จแล้ว
อาคารต้นไม้พึ่งพา       
กำลังอ่านข้อมูลสถานะ ... เสร็จแล้ว

หลังจากการดำเนินการนี้จะใช้พื้นที่ดิสก์เพิ่มเติม 5,579 kB
คุณต้องการที่จะดำเนินการต่อไป? [Y / n] y
รับ: 1 http://in.archive.ubuntu.com/ubuntu xenial-updates / universe amd64 nginx-full-dbg amd64 1.10.0-0ubuntu0.16.04.1 [3,789 kB]
ดึงข้อมูลแล้ว 3,789 kB ใน 33s (112 kB / s)                                             
การเลือกแพ็กเกจที่ไม่ได้เลือกก่อนหน้านี้ nginx-common
(กำลังอ่านฐานข้อมูล ... 189767 ไฟล์และไดเรกทอรีที่ติดตั้งอยู่ในปัจจุบัน)
กำลังเตรียมที่จะแกะ ... / nginx-common_1.10.0-0ubuntu0.16.04.1_all.deb ...
การเปิด nginx-common (1.10.0-0ubuntu0.16.04.1) ...
การเลือกแพ็กเกจที่ไม่ได้เลือกก่อนหน้านี้ nginx-full
กำลังเตรียมที่จะแกะ ... / nginx-full_1.10.0-0ubuntu0.16.04.1_amd64.deb ...
แกะออก nginx เต็ม (1.10.0-0ubuntu0.16.04.1) ...
การเลือกแพ็กเกจที่ไม่ได้เลือกก่อนหน้านี้ nginx-full-dbg
กำลังเตรียมที่จะแกะ ... / nginx-full-dbg_1.10.0-0ubuntu0.16.04.1_amd64.deb ...
กำลังคลาย nginx-full-dbg (1.10.0-0ubuntu0.16.04.1) ...
กำลังประมวลผลทริกเกอร์สำหรับ ufw (0.35-0ubuntu1) ...
ปรับปรุงกฎสำหรับโปรไฟล์ 'Apache Full'
ปรับปรุงกฎสำหรับโปรไฟล์ 'Nginx HTTP'

กำลังประมวลผลทริกเกอร์สำหรับ systemd (229-4ubuntu4) ...
การประมวลผลทริกเกอร์สำหรับ ureadahead (0.100.0-19) ...
กำลังประมวลผลทริกเกอร์สำหรับ man-db (2.7.5-1) ...
การตั้งค่า nginx-common (1.10.0-0ubuntu0.16.04.1) ...
กำลังตั้งค่า nginx-full (1.10.0-0ubuntu0.16.04.1) ...
งานสำหรับ nginx.service ล้มเหลวเนื่องจากกระบวนการควบคุมออกโดยมีรหัสข้อผิดพลาด ดูที่ "systemctl status nginx.service" และ "journalctl -xe" สำหรับรายละเอียด

invoke-rc.d: initscript nginx, การกระทำ "เริ่มต้น" ล้มเหลว

dpkg: ข้อผิดพลาดในการประมวลผลแพคเกจ nginx เต็ม (- กำหนดค่า):
 กระบวนการย่อยที่ติดตั้งสคริปต์หลังการติดตั้งส่งคืนสถานะข้อผิดพลาดออก 1
dpkg: ปัญหาการพึ่งพาป้องกันการกำหนดค่าของ nginx-full-dbg:
 nginx-full-dbg ขึ้นอยู่กับ nginx-full (= 1.10.0-0ubuntu0.16.04.1); แต่:
  แพ็คเกจ nginx-full ยังไม่ได้กำหนดค่า

dpkg: แพคเกจการประมวลผลข้อผิดพลาด nginx-full-dbg (- กำหนดค่า):

 ปัญหาการพึ่งพา - ปล่อยไม่ได้กำหนดค่า
ไม่มีการเขียนรายงาน apport เนื่องจากข้อความแสดงข้อผิดพลาดระบุว่ามีข้อผิดพลาดในการติดตามจากความล้มเหลวก่อนหน้า

                          พบข้อผิดพลาดขณะประมวลผล:
 Nginx เต็มรูปแบบ

 Nginx เต็ม-DBG

E: กระบวนการย่อย / usr / bin / dpkg ส่งคืนรหัสข้อผิดพลาด (1)

ลองapt-get -f installโดยไม่ใช้แพ็คเกจใด ๆ
Motte001

ตรวจสอบแล้วข้อผิดพลาดเดียวกัน !! โปรดดู:: ~ $ sudo apt-get -f ติดตั้ง nginx-full-dbg ขึ้นอยู่กับ nginx-full (= 1.10.0-0ubuntu0.16.04.1); อย่างไรก็ตาม: แพคเกจ nginx- เต็มยังไม่ได้กำหนดค่า dpkg: แพ็กเกจการประมวลผลข้อผิดพลาด nginx-full-dbg (--configure): ปัญหาการพึ่งพา - พบข้อผิดพลาดที่ไม่ได้กำหนดค่าขณะที่กำลังประมวลผล: nginx-full nginx-full-dbg E: กระบวนการย่อย / usr / bin / dpkg ส่งคืนรหัสข้อผิดพลาด (1)
Mohit

1
คุณติดตั้ง Apache และทำงานบนพอร์ต 80 ก่อนติดตั้ง nginx หรือไม่? แก้ไขคำถามของคุณเพื่อรวมผลลัพธ์systemctl -l status nginxเช่นกัน
Thomas Ward

คุณได้ติดตั้ง nginx รุ่นอื่นด้วยหรือไม่ ฉันเห็นคุณรันงานลบ แต่ถ้าการกำหนดค่าแบบเก่ายังคงอยู่รอบ ๆ พวกเขาอาจหยุดการติดตั้งหากพวกเขามีคำสั่งที่ไม่สนับสนุนหรือคล้ายกับ inlcuded
Thomas Ward

See "systemctl status nginx.service" and "journalctl -xe" for details.- คุณได้โปรดทำอย่างนั้นและรวมเอาท์พุทในคำถามของคุณ?
David Foerster

คำตอบ:


139

การปิด apache2 ก่อนที่จะติดตั้ง nginx ควรแก้ไขปัญหานี้:

sudo service apache2 stop

3
ยินดีต้อนรับสู่ถาม Ubuntu! ฉันขอแนะนำให้แก้ไขคำตอบนี้เพื่อขยายด้วยรายละเอียดเฉพาะเกี่ยวกับวิธีการทำเช่นนี้ (ดูเพิ่มเติมฉันจะเขียนคำตอบที่ดีได้อย่างไรสำหรับคำแนะนำทั่วไปเกี่ยวกับคำตอบประเภทใดที่ถือว่ามีค่ามากที่สุดใน Ask Ubuntu)
David Foerster

สิ่งนี้ให้คำแนะนำที่ฉันต้องการ ในกรณีของฉันฉันกำลังใช้คอนเทนเนอร์นักเทียบท่าซึ่งใช้เซิร์ฟเวอร์ nginx อีกเครื่อง
mithril_knight

ฉันพบสิ่งเดียวกัน แต่การค้นหาผู้กระทำผิดnetstat -tulpn | grep :80ในกรณีของฉันมันวานิชกำหนดค่าให้ฟังบนพอร์ต 80 systemctl stop varnishแล้วติดตั้ง Nginx แก้ไขให้ฉัน ทำไมแพ็คเกจ Debian / Ubuntu พยายามที่จะเริ่มต้นตัวเองในการติดตั้งอยู่นอกเหนือฉัน ... ฉันค่อนข้างจะติดตั้งกำหนดค่าว่าฉันชอบมันแล้วเริ่มมัน: P
geerlingguy

28

Andrew Chan ให้คำตอบที่ถูกต้องสำหรับฉัน เพื่อขยายคำตอบของเขาเล็กน้อยนี่คือสิ่งที่คุณสามารถทำได้ใน commandline;

หยุด apache2

sudo systemctl stop apache2.service

ป้องกัน apache2 เพื่อเริ่มต้นในการบูต

sudo systemctl disable apache2.service

ติดตั้ง nginx อีกครั้ง

sudo apt-get install nginx


1
ฉันขอแนะนำให้คุณไม่ปิดการใช้งาน Apache2 ในการบู๊ตหากคุณต้องการ - มีหลายกรณีที่คุณไม่จำเป็นต้องปิดการใช้งาน Apache หากคุณตั้งค่าให้ฟังจากพอร์ตอื่น หลังจากทำสิ่งนี้ด้วยตนเองสำหรับการตั้งค่าบางอย่างฉันสามารถพูดได้จากประสบการณ์บางอย่าง (ฉันยังทำงานมากในแพ็คเกจ nginx ซึ่งเป็นที่มาของประสบการณ์นี้)
Thomas Ward

7

ฉันเพิ่งมีปัญหานี้ แต่วิธีแก้ไขแตกต่างกันเล็กน้อย

เมื่อฉันแก้ไขเว็บไซต์ที่ตั้งค่าผิดพลาดอย่างง่ายฉันก็สามารถอัปเดต nginx ได้

ตรวจสอบบันทึกข้อผิดพลาด nginx ของคุณ :

sudo cat /var/log/nginx/error.log|less

จากนั้นลองอีกครั้ง:

sudo apt-get update;sudo apt-get upgrade

บันทึก FTW ในกรณีของฉัน 80 พอร์ตมีการใช้งานแล้วซึ่งเป็นสาเหตุของข้อผิดพลาด
xliiv

6

ในกรณีของฉันข้อผิดพลาดคือเซิร์ฟเวอร์ปิดใช้งาน IPv6 วิธีการแก้:

แก้ไข/etc/nginx/sites-enabled/defaultและแสดงความคิดเห็น IPv6 out:

listen [::]:80 default_server;

ติดตั้ง nginx อีกครั้ง:

apt purge nginx
apt autoremove
apt install nginx

@DavidFoerster ด้วยฉลาด 1.0 ไบนารีใหม่ได้รับการแนะนำที่เก็บรวบรวมหลายคุ้นเคยคำสั่ง (ย่อย) ที่มีการกระจายในหมู่apt-get, apt-cacheและอื่น ๆ ยกตัวอย่างเช่นapt updateเท่ากับapt-get update, apt search some-nameเท่ากับapt-cache search some-nameและอื่น ๆ ในบางกรณีมีการ rewording บางอย่างเช่นที่เท่ากับapt full-upgrade apt-get dist-upgradeไบนารีเก่าและคำสั่งของพวกเขายังคงพร้อมใช้งานสำหรับผู้ที่ชื่นชอบพวกเขาเช่นกัน
Henning Kockerbeck

@ HenningKockerbeck: ขอบคุณ ตอนนั้นฉันไม่รู้จริง ๆ และคิดว่ามันเป็นตัวพิมพ์ผิด แต่ฉันก็รู้ตัวเองในเวลานั้น
David Foerster

ทำงานให้ฉัน แต่ฉันไม่สามารถใช้สิ่งนี้ในเชลล์สคริปต์สำหรับการปรับใช้เซิร์ฟเวอร์นั่นคือวงเวียนที่น่าขัน ...
Menasheh

1

เมื่อฉันตรวจสอบ /var/log/nginx/error.log ฉันเห็นว่าตัวติดตั้งไม่สามารถเปิด / var / cache / nginx / microcache

รายชื่อไดเรกทอรีแสดงให้เห็นว่าไม่มีไดเรกทอรี / var / cache / nginx ดังนั้นฉันจึงสร้างและติดตั้งสำเร็จ


1

ในกรณีของฉันมันเป็นไฟล์ที่กำหนดค่าผิดพลาดใน / etc / nginx / sites-enabled / I ตั้งชื่อให้เป็นไฟล์. old แต่มันไม่สำคัญ พวกเขาจะถูกอ่านและอาจประสบความสำเร็จในการติดตั้งหรือเริ่มบริการนั้น ระวังไฟล์ในโฟลเดอร์นั้นและอ่านข้อผิดพลาดของคุณอย่างระมัดระวังตามที่ discipled โดย @Taiger


0

ก่อนการติดตั้งเอา symlinks ใด ๆ /sites-enabledเพิ่มด้วยตนเองจาก


0

ในกรณีของฉันไม่มีอะไรช่วยเลยยกเว้นสิ่งนี้:

sudo fuser -k 80/tcp

service nginx start
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.