Nginx не запустится начиная с обновления Ubuntu (16.04)

Я недавно обновил свой сервер Ubuntu до этих 16,04 выпусков. С тех пор я не могу запустить nginx сервис.

Результаты service nginx restart :

Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.

Что мои системные журналы говорит (cat /var/log/syslog) :

May 20 17:03:53: Stopped A high performance web server and a reverse proxy server.
May 20 17:03:53: Starting A high performance web server and a reverse proxy server...
May 20 17:03:53: nginx.service: Failed at step EXEC spawning /usr/sbin/nginx: No such file or directory
May 20 17:03:53: nginx.service: Control process exited, code=exited status=203
May 20 17:03:53: Failed to start A high performance web server and a reverse proxy server.
May 20 17:03:53: nginx.service: Unit entered failed state.
May 20 17:03:53: nginx.service: Failed with result 'exit-code'.

Результаты cat /lib/systemd/system/nginx.service :

# Stop dance for nginx
# =======================
#
# ExecStop sends SIGSTOP (graceful stop) to the nginx process.
# If, after 5s (--retry QUIT/5) nginx is still running, systemd takes control
# and sends SIGTERM (fast shutdown) to the main process.
# After another 5s (TimeoutStopSec=5), and if nginx is alive, systemd sends
# SIGKILL to all the remaining processes in the process group (KillMode=mixed).
#
# nginx signals reference doc:
# http://nginx.org/en/docs/control.html
#
[Unit]
Description=A high performance web server and a reverse proxy server
After=network.target

[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -q -g 'daemon on; master_process on;'
ExecStart=/usr/sbin/nginx -g 'daemon on; master_process on;'
ExecReload=/usr/sbin/nginx -g 'daemon on; master_process on;' -s reload
# Use TERM instead of QUIT to prevent Nginx from leaving stale Unix socket and failing the next start (https://trac.nginx.org/nginx/ticket/753)
ExecStop=-/sbin/start-stop-daemon --quiet --stop --retry TERM/5 --pidfile /run/nginx.pid
# Give Passenger a chance to clean up before being killed by systemd.
ExecStop=/bin/sleep 1
TimeoutStopSec=5
KillMode=mixed

[Install]
WantedBy=multi-user.target

Нет действительно никакого файла в /usr/sbin/nginx, таким образом, я попробовал apt install nginx, но вот результат:

Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 nginx : Depends: nginx-core (>= 1.10.0-0ubuntu0.16.04.4) but it is not going to be installed or
                  nginx-full (>= 1.10.0-0ubuntu0.16.04.4) but it is not going to be installed or
                  nginx-light (>= 1.10.0-0ubuntu0.16.04.4) but it is not going to be installed or
                  nginx-extras (>= 1.10.0-0ubuntu0.16.04.4) but it is not going to be installed
         Depends: nginx-core (< 1.10.0-0ubuntu0.16.04.4.1~) but it is not going to be installed or
                  nginx-full (< 1.10.0-0ubuntu0.16.04.4.1~) but it is not going to be installed or
                  nginx-light (< 1.10.0-0ubuntu0.16.04.4.1~) but it is not going to be installed or
                  nginx-extras (< 1.10.0-0ubuntu0.16.04.4.1~) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Как новичок, я довольно потерян в той путанице, и я действительно нуждаюсь в небольшом количестве помощи.

Большое спасибо в течение Вашего времени.

Обновление 1:

Результаты apt-cache policy nginx :

nginx:
  Installed: 1.12.0-1+xenial1
  Candidate: 1.12.0-1+xenial1
  Version table:
 *** 1.12.0-1+xenial1 500
        500 http://ppa.launchpad.net/nginx/stable/ubuntu xenial/main amd64 Packages
        500 http://ppa.launchpad.net/nginx/stable/ubuntu xenial/main i386 Packages
        100 /home/var/lib/dpkg/status
     1.10.0-0ubuntu0.16.04.4 500
        500 http://ubuntu.mirrors.ovh.net/ftp.ubuntu.com/ubuntu xenial-updates/main amd64 Packages
        500 http://ubuntu.mirrors.ovh.net/ftp.ubuntu.com/ubuntu xenial-updates/main i386 Packages
        500 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu xenial-security/main i386 Packages
     1.9.15-0ubuntu1 500
        500 http://ubuntu.mirrors.ovh.net/ftp.ubuntu.com/ubuntu xenial/main amd64 Packages
        500 http://ubuntu.mirrors.ovh.net/ftp.ubuntu.com/ubuntu xenial/main i386 Packages
7
задан 20 May 2017 в 08:40

1 ответ

Таким образом, у Вас есть две вещи, которые находятся в конфликте и вели, это кажется nginx двоичным файлам, уходящим так или иначе: Гостеприимная версия репозитория и PPA NGINX. Как специалист по обслуживанию обоих, позвольте мне объяснять конфликт.

В Гостеприимном, мы выпустили 1.10.0 сразу после выпуска как обновление. Это обновление продвинуло нас к 'стабильному' ответвлению, но не создало динамично-загружаемые-модули и сделанный доступный. Это происходило из-за времени, но также и конфликтов сборки, которые возникли во время тестов. Мы в конечном счете получили динамическую работу поддержки модуля в Пикантном.

В PPA, мы всегда клонировались непосредственно от Debian. Это означает, у нас всегда был 'динамический модуль Debian' поддержка, которая конфликтовала с Гостеприимными пакетами и привела к некоторой установке и конфликтам обновления.

<час>

существует маленький конфликт здесь - Вы не можете смешивание и подгонка nginx-core (который является разновидностью по умолчанию, установленной для nginx пакет в Ubuntu), и PPAs, поскольку это иногда делает вещи disappearify. Проблема здесь, затем, мы должны удалить существующий пакет Ubuntu и затем установить от PPA только.

Для разрешения этого необходимо будет сначала создать резервную копию nginx конфигураций, которые Вы хотите сохранить для своих сайтов. Таким образом, сделайте копию из Вашего/etc/nginx/sites-available/каталогом где-то в другом месте (даже в корневом каталоге Вашего пользователя, прекрасен, нам просто нужна копия конфигураций сайта). Также, нам будет нужно резервное копирование Ваших данных веб-сайта, так копия, что где-то в другом месте также (НЕ в стандарте docroot, таким образом, это не становится испорченным).

, После того как Вы делаете копию, необходимо будет удалить существующие nginx пакеты. Это может быть сделано со следующей командой:

sudo apt-get remove nginx nginx-common nginx-doc nginx-core nginx-full nginx-extras nginx-light

, После того как это завершено, работайте sudo apt-get update снова только, чтобы удостовериться, что у нас есть самые актуальные нумерации версии.

Затем установите nginx от PPA - sudo apt-get install nginx nginx-full nginx-common, должен сделать это.

Вы больше не должны становиться неудавшимися для запуска ошибок. Удостоверьтесь, что Ваши конфигурации сайта все еще на месте и не стали перезаписанными. Если они сделали, восстанавливают от резервных копий, мы взяли ранее конфигурации сайта и данных сайта. Иначе Вы все установлены.

7
ответ дан 23 November 2019 в 06:36

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

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