Ошибка при установке Nginx на Ubuntu 16.04

Я продолжаю получать эту ошибку при попытке установить nginx. Я пытался переустановить его несколько раз, но эта ошибка продолжает высовываться, и я не могу запустить nginx.

Цените любую справку!

Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.
invoke-rc.d: initscript nginx, action "start" failed.
● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Mon 2017-03-27 21:38:51 PHT; 10ms ago
  Process: 28178 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=1/FAILURE)
  Process: 28174 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)

Mar 27 21:38:49 nico-Aspire-E5-575G nginx[28178]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Mar 27 21:38:49 nico-Aspire-E5-575G nginx[28178]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Mar 27 21:38:50 nico-Aspire-E5-575G nginx[28178]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Mar 27 21:38:50 nico-Aspire-E5-575G nginx[28178]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Mar 27 21:38:51 nico-Aspire-E5-575G nginx[28178]: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Mar 27 21:38:51 nico-Aspire-E5-575G nginx[28178]: nginx: [emerg] still could not bind()
Mar 27 21:38:51 nico-Aspire-E5-575G systemd[1]: nginx.service: Control process exited, code=exited status=1
Mar 27 21:38:51 nico-Aspire-E5-575G systemd[1]: Failed to start A high performance web server and a reverse proxy server.
Mar 27 21:38:51 nico-Aspire-E5-575G systemd[1]: nginx.service: Unit entered failed state.
Mar 27 21:38:51 nico-Aspire-E5-575G systemd[1]: nginx.service: Failed with result 'exit-code'.
dpkg: error processing package nginx-core (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of nginx:
 nginx depends on nginx-core (>= 1.10.0-0ubuntu0.16.04.4) | nginx-full (>= 1.10.0-0ubuntu0.16.04.4) | nginx-light (>= 1.10.0-0ubuntu0.16.04.4) | nginx-extras (>= 1.10.0-0ubuntu0.16.04.4); however:
  Package nginx-core is not configured yet.
  Package nginx-full is not installed.
  Package nginx-light is not installed.
  Package nginx-extras is not installed.
 nginx depends on nginx-core (<< 1.10.0-0ubuntu0.16.04.4.1~) | nginx-full (<< 1.10.0-0ubuntu0.16.04.4.1~) | nginx-light (<< 1.10.0-0ubuntu0.16.04.4.1~) | nginx-extras (<< 1.10.0-0ubuntu0.16.04.4.1~); however:
  Package nginx-core is not configured yet.
  Package nginx-full is not installed.
  Package nginx-light is not installed.
  Package nginx-extras is not installed.

dpkg: error processing package nginx (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                                                                                                          Processing triggers for systemd (229-4ubuntu16) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for ufw (0.35-0ubuntu2) ...
Errors were encountered while processing:
 nginx-core
 nginx
E: Sub-process /usr/bin/dpkg returned an error code (1)
5
задан 27 March 2017 в 06:45

4 ответа

Что-то уже работает на порте 80, поэтому когда nginx пытается запуститься, и взять тот порт он перестал работать. Проверьте для наблюдения то, что работает порте 80, и остановите его. Можно узнать то, что использует порт 80 с:

sudo netstat -lnp | grep 0.0.0.0:80

, После того как Вы находите то, что использует порт, сделайте systemctl stop, чтобы остановить его и попытаться запустить nginx снова. Следует иметь в виду, что необходимо будет отключить тот другой сервис постоянно для nginx для работы правильно.

8
ответ дан 23 November 2019 в 08:46

Похоже, что NGINX и некоторое другое приложение для сервера оба связывают для использования порта 80 в качестве их порта по умолчанию.

легкое решение состояло бы в том, чтобы изменить порт NGINX, чтобы быть чем-то еще, которое может быть сделано путем редактирования /etc/nginx/sites-available/default (или безотносительно файла конфигурации) для привязки с другим портом.

Ищут строку, которая говорит что-то вроде этого:

Listen 80;

Изменение 80 к франко-порт (например, 851):

Listen 851;

Перезапуск NGINX, и это должно запустить снова без проблемы.

Примечание, что, если Вы хотите на самом деле использовать NGINX в качестве своего веб-хоста, необходимо будет изменить конфигурацию другого веб-сервера.

2
ответ дан 23 November 2019 в 08:46

Базирующийся в сообщении об ошибке:

  Package nginx-full is not installed.
  Package nginx-light is not installed.
  Package nginx-extras is not installed.

я рекомендую Вам работать sudo apt-get install nginx-full nginx-light nginx-extras

0
ответ дан 23 November 2019 в 08:46

Путем я закончил в этой той же ситуации, был путем выбора опции по умолчанию на Debian 9 во время установки виртуальной машины на VirtualBox. Я предполагаю, что что-то подобное, возможно, произошло с OP.

(...)
Choose software to install
[ ] Desktop environment
[*] Web Server
(...)

Это установит Apache и позволит/начнет его сервис сразу же. Если Ваш дистрибутив использует systemd, можно проверить, если это так:

sudo systemctl list-units | grep apache

Который показывает:

apache2.service
      loaded active running   The Apache HTTP Server

Можно остановить сервис Apache:

sudo systemctl stop apache2.service

И также отключите de сервис, таким образом, он не перезапускает автоматически на следующей перезагрузке:

sudo systemctl disable apache2.service

После этого можно перезапустить nginx:

sudo systemctl restart nginx

Можно проверить, что это работает с браузером командной строки, таким как Lynx:

lynx 127.0.0.1

                                    Apache2 Debian Default Page: It works (p1 of 4)
   Debian Logo Apache2 Debian Default Page
   It works!

   This is the default welcome page used to test the correct operation of the
   Apache2 server after installation on Debian systems. (...)

И можно найти это странным/сбивающим с толку, что страница приветствия Apache все еще загружается nginx. Поэтому Apache создал файл HTML по умолчанию, на который nginx указывает по умолчанию: /var/www/html/index.html. Значение по умолчанию nginx файл приветствия HTML в моем случае было /var/www/html/index.nginx-debian.html. Можно измениться, какая страница по умолчанию загружается путем изменения nginx конфигурационного файла по умолчанию (и сохранения его с соответствующими полномочиями):

sudo nano /etc/nginx/sites-available/default

(...)
# Default server configuration
#
server {
      (...)
      # original index directive:
      # index index.html index.htm index.nginx-debian.html;
      # modified index directive:
      index index.htm index.nginx-debian.html;
      (...)
}

Исключением index.html от аргументов до index директива, следующий файл кандидата ищется. В моем случае index.htm не существует, таким образом, index.nginx-debian.html используется. Это изменение не вступает в силу, пока nginx не перезагружается, таким образом, можно отправить ему сигнал перезагрузки:

sudo nginx -s reload.

И теперь можно проверить значение по умолчанию nginx страница приветствия:

lynx 127.0.0.1

                                                                 Welcome to nginx!
                                 Welcome to nginx!

   If you see this page, the nginx web server is successfully installed and
   working. Further configuration is required.
   (...)
2
ответ дан 23 November 2019 в 08:46

Другие вопросы по тегам:

Похожие вопросы: