Помилка установки Nginx в Ubuntu 16.04


58
: ~ $ sudo apt-get delete nginx * && sudo apt-get install nginx-full *

Читання списків пакунків ... Готово
Побудова дерева залежності       
Читання інформації про стан ... Готово

Після цієї операції буде використано 5579 кБ додаткового дискового простору.
Ви хочете продовжити? [У / п] у
Отримайте: 1 http://in.archive.ubuntu.com/ubuntu xenial-updates / universal amd64 nginx-full-dbg amd64 1.10.0-0ubuntu0.16.04.1 [3,789 kB]
Отримано 3789 кБ за 33 секунди (112 кБ / с)                                             
Вибір раніше невибраного пакета nginx-common.
(Читання бази даних ... 189767 файлів і каталогів, які зараз встановлені.)
Підготовка до розпакування ... / nginx-common_1.10.0-0ubuntu0.16.04.1_all.deb ...
Розпакування nginx-звичайного (1.10.0-0ubuntu0.16.04.1) ...
Вибір раніше невибраного пакета nginx-full.
Підготовка до розпакування ... / nginx-full_1.10.0-0ubuntu0.16.04.1_amd64.deb ...
Розпакування nginx-full (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, помилка дії "start".

dpkg: пакет помилок обробки nginx-full (--configure):
 підпроцес, встановлений після встановлення, повернув статус виходу з помилки 1
dpkg: проблеми залежності залежать від конфігурації nginx-full-dbg:
 nginx-full-dbg залежить від nginx-full (= 1.10.0-0ubuntu0.16.04.1); проте:
  Пакет nginx-full ще не налаштований.

dpkg: пакет обробки помилок nginx-full-dbg (--configure):

 проблеми залежності - залишаючи не налаштованим
Звіт про присвоєння не написаний, оскільки повідомлення про помилку вказує на його помилку після попереднього відмови.

                          Помилки під час обробки:
 nginx-full

 nginx-full-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-full ще не налаштований. dpkg: пакет обробки помилок nginx-full-dbg (--configure): проблеми залежності - залишаючи неконфігуровані Помилки під час обробки: nginx-full nginx-full-dbg E: Підпроцес / usr / bin / dpkg повернув код помилки (1)
Мохіт

1
Чи встановлено Apache та працює на порт 80 перед тим, як встановити nginx? Змініть своє питання , щоб включити вихід , systemctl -l status nginxа також
Томас Уорд

У вас також була встановлена ​​інша версія nginx? Я бачу, що ви виконали завдання видалення, але якщо старіші конфігурації все ще існують, вони можуть порушити встановлення, якщо вони застаріли команди чи подібні вбудовані.
Thomas Ward

See "systemctl status nginx.service" and "journalctl -xe" for details.- Ви можете, будь ласка, зробити це та включити висновок у своє запитання?
Девід Фоерстер

Відповіді:


140

Перше відключення apache2 перед встановленням nginx має вирішити цю проблему:

sudo service apache2 stop

3
Ласкаво просимо до Ask Ubuntu! Рекомендую відредагувати цю відповідь, щоб розширити її конкретними деталями про те, як це зробити. (Дивіться також Як я можу написати гарну відповідь? Для загальних порад про те, які типи відповідей вважаються найціннішими на Ask Ubuntu.)
Девід Фоерстер,

Це дало мені підказку, яка мені потрібна. У моєму випадку я використовував контейнер
docker,

Я потрапив у те саме, але, знайшовши винуватця netstat -tulpn | grep :80, у моєму випадку це був Varnish, налаштований на прослуховування на порт 80. systemctl stop varnishПотім встановив Nginx, виправив це для мене. Чому пакети Debian / Ubuntu намагаються запустити себе при встановленні - це поза мною ... Я б швидше встановив, налаштував його так, як мені це подобається, а потім запустити: P
geerlingguy

Як не дивно, що NGINX не перевіряє це у своєму інсталяторі, а принаймні надає корисніше повідомлення. Apache дуже часто встановлюється в системах Linux.
машинний привид

28

Ендрю Чан дав правильну відповідь для мене. Щоб трохи розширити його відповідь, ось що ви можете зробити в командному рядку;

зупинити 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:

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тощо. У деяких випадках спостерігається деяке перефразування, як , apt full-upgradeщо дорівнює apt-get dist-upgrade. Старі двійкові файли та їхні команди ще доступні для тих, хто їх любить.
Геннінг Кокербек

@HenningKockerbeck: Дякую Я справді тоді не знав і подумав, що це помилка, але я навчився тим часом.
Девід Фоерстер

Працювало для мене, але я не можу реалізувати це в своїх скриптах оболонки для розгортання сервера, це смішно
кругленько

1

Коли я перевірив /var/log/nginx/error.log, я побачив, що інсталятор не зміг відкрити / var / cache / nginx / microcache

Список каталогів показав, що немає каталогу / var / cache / nginx, тому я створив його і встановлення вдалося.


1

У моєму випадку це був неправильно налаштований файл у / etc / nginx / sites-enable / Я назвав їх як .old файли, але це не має значення. Вони будуть прочитані і можуть перешкодити успішній установці або запуску цієї послуги. Будьте обережні з файлами в цій папці і уважно читайте свої помилки, як описано в @Taiger


0

Перед встановленням видаліть будь-які додані вручну символьні посилання /sites-enabled.


0

У моєму випадку нічого не допомогло, крім цього:

sudo fuser -k 80/tcp

service nginx start
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.