Nginx команда не найдена debian
В этой статье я объясню, как настроить Nginx сервер для поддержки PHP на операционной системе Debian/Ubuntu. Мы разберемся в структуре конфигурационного файла, узнаем как работает Nginx и его модули. PHP-FPM — это менеджер процессов FastCGI (FCGI) в PHP, обычно используемый для высоконагруженных сайтов. Этот метод интеграции PHP использует Nginx. PHP-FPM 7.4 является последней стабильной версией, доступной для установки. По этой инструкции вы также можете установить PHP-FPM 7.3, PHP-FPM 7.2, PHP-FPM 7.1, PHP-FPM 7.0.
Эта инструкция была выполнена на операционных системах: Debian 10, Debian 9, Ubuntu 20.10, Ubuntu 20.04, Ubuntu 19.10.
Структура конфигурационного файла
Обычно главный конфигурационный файл nginx.conf расположен в директории /etc/nginx. В нем можно выделить блочные и простые директивы, которые относятся к определенному модулю Nginx. Блочные директивы также могут называться контекстом, если внутри фигурных скобок находятся другие директивы. Давайте рассмотрим конфигурационный файл по умолчанию (я удалил закомментированные части):
В этом файле прописаны глобальные настройки (базовые, SSL, логирование, Gzip), которые можно будет переопределить для конкретного виртуального хоста, которые подгружаются в самом конце:
Главный конфигурационный файл nginx.conf подключает все конфигурационные файлы и объединяет их в один, который запрашивается при запуске сервера. Этот файл нужно редактировать только в том случае, если вам необходимы другие глобальные настройки. Для начала, вы можете оставить его без изменений.
Виртуальные хосты
Конфигурационные файлы, которые описывают ваши домены, должны находиться в директории /etc/nginx/sites-available, а директория /etc/nginx/sites-enabled должна содержать символьные ссылки на активные виртуальные хосты. Каждый конфигурационный файл наследует директивы из главного конфигурационного файла nginx.conf и, при необходимости, они могут быть переопределены для конкретного виртуального хоста. Давайте рассмотрим конфигурацию сервера по умолчанию /etc/nginx/sites-available/default (я удалил закомментированные части):
Установка PHP-FPM
Перед любой установкой программного обеспечения рекомендуется обновить список пакетов репозитория, выполнив команду в терминале:
Установим PHP-FPM, выполнив команду в терминале:
Настройка Nginx для поддержки PHP-FPM
Перед тем как настроить Nginx для работы с обработчиком PHP, узнаем его версию, выполнив команду в терминале:
Если PHP еще не установлен, то будет отображаться ошибка:
Отредактируем файл конфигурации сервера /etc/nginx/sites-available/default, добавив поддержку PHP-FPM:
Сохраняем изменения и закрываем файл. Проверим конфигурацию на валидность, выполнив команду в терминале:
Теперь применим изменения конфигурации, выполнив команду в терминале:
Тестирование Nginx с поддержкой PHP-FPM
Давайте проверим, что Nginx корректно передает файлы с расширением .php нашему обработчику PHP. Создадим тестовый файл, который будет возвращать информацию о нашем сервере, выполнив команду в терминале:
Давайте убедимся, что Nginx сервер корректно отображает содержимое, сгенерированное PHP скриптом, открыв данную страницу в браузере:
или для локального хоста
Если вы правильно настроили Nginx для поддержки PHP-FPM, то отобразится похожая страница:
После проверки в целях безопасности вам необходимо удалить этот файл, выполнив команду в терминале:
Конечно, сначала может быть сложно запомнить все команды и рекомендации по управлению сервером Nginx. Это руководство предназначено для тех, кто работает с Nginx. Оно охватывает некоторые основные команды управления сервисами, а также советы по диагностике и решению некоторых распространенных проблем.
Каждый раздел может использоваться независимо от других, поэтому вы можете пропустить разделы, которые вам не нужны. Все условные значения в командах выделены красным; вместо этих значений вы можете подставить свои данные.
Каждый раздел предлагает ссылки на другие руководства, с которыми можно проконсультироваться.
Примечание: Предполагается, что вы работаете с версией Nginx, установленной из репозитория по умолчанию в Debian-подобном дистрибутиве. Некоторые из команд и директив, описанных в этом руководстве, отсутствуют в других дистрибутивах или в версиях Nginx, установленных из других источников.
Установка Nginx
Обновите индекс пакетов, а затем установите Nginx:
sudo apt-get update
sudo apt-get install nginx
Проверка состояния Nginx
Чтобы проверить состояние веб-сервера на текущей машине, введите:
sudo systemctl status nginx
Автозагрузка Nginx
По умолчанию сервис Nginx запускается автоматически. Если вы хотите изменить это поведение, введите:
sudo systemctl disable nginx
Чтобы снова добавить Nginx в автозагрузку, введите:
sudo systemctl enable nginx
Управление сервисом Nginx
Чтобы остановить сервер Nginx, введите следующую команду:
sudo systemctl stop nginx
Чтобы запустить сервер Nginx, введите:
sudo systemctl start nginx
Чтобы остановить сервис и запустить его снова, введите:
sudo systemctl restart nginx
Если вы изменили конфигурацию, вы можете перезагрузить Nginx в текущей сессии. Введите следующую команду:
sudo systemctl reload nginx
Создание корневого каталога для статического контента
При создании сайтов на Nginx разработчики часто используют виртуальные хосты (или блоки server) – это хосты, которые обслуживают отдельные сайты или домены. Для этого нужно создать document root, каталог верхнего уровня, который Nginx проверяет при обслуживании контента.
Команды в приведенном ниже блоке создадут новый корневой каталог, передадут права на него пользователю sudo и изменят права доступа к каждому подкаталогу в подкаталога в /var/www/.
В данном случае корневой каталог предлагает глобальные права на чтение и исполнение. Чтобы выбрать другие права доступа, замените 775 и укажите требуемые права.
Помните, что права доступа должны меняться в соответствии с ситуацией.
Создание корневого каталога для динамических файлов
Если ваш сайт использует динамические модули типа PHP-FPM, вам может понадобиться передать права на некоторые файлы группе www-data. Если группе нужно право на запись в каталоге, передайте группе права собственности на каталог.
Включение и отключение конфигурационных файлов
Чтобы включить виртуальный хост, нужно создать симлинк из каталога sites-available в каталог sites-enabled, который Nginx читает во время запуска.
Для этого введите комнаду:
После этого нужно перезагрузить Nginx, чтобы настройки обновились.
Устранение неполадок с хэш-таблицей
Nginx использует хэш-таблицы, чтобы быстро обрабатывать статические данные (имена серверов, MIME-типы). Если вы добавили несколько имен серверов, есть вероятность, что заданного размера хэша имени сервера будет не хватать, и при внесении изменений вы увидите ошибку server_names_hash_bucket_size. Ее можно устранить, отредактировав одно значение в файле /etc/nginx/nginx.conf.
Откройте этот файл:
sudo nano /etc/nginx/nginx.conf
Это увеличит размер хэш-таблиц имен серверов Nginx и позволит сервису обрабатывать все имена серверов, которые вы добавили. Сохраните и закройте файл, а затем перезапустите Nginx, чтобы обновить настройки.
Тестирование конфигурации
Каждый раз, когда вы вносите изменения в конфигурационные файлы Nginx, обязательно выполните следующую команду, чтобы проверить наличие синтаксических ошибок:
Если в конфигурации есть ошибки, вывод команды укажет, где именно они обнаружены. Если же в конфигурационных файлах нет синтаксических ошибок, вы увидите примерно такой вывод:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Если ошибок нет, вы можете перезагрузить сервис:
sudo systemctl restart nginx
Важные файлы и каталоги Nginx
Контент
Конфигурация сервера
- /etc/nginx/: конфигурационный каталог Nginx (здесь хранятся все конфигурационные файлы веб-сервера).
- /etc/nginx/nginx.conf: главный конфигурационный файл веб-сервера, в котором находятся все глобальные параметры.
- /etc/nginx/sites-available/default: виртуальный хост Nginx по умолчанию. Другие виртуальные хосты также должны храниться в каталоге sites-available (но они не будут работать без симлинка в sites-enabled).
- /etc/nginx/sites-enabled/: здесь хранятся файлы включенных виртуальных хостов. При запуске или перезагрузке Nginx читает конфигурационные файлы и ссылки в этом каталоге, чтобы собрать полную конфигурацию.
- /var/log/nginx/access.log: это лог, который регистрирует все запросы Nginx (если в конфигурации веб-сервера не сказано другого).
- /var/log/nginx/error.log: это лог ошибок.
Чтобы получить доступ к логам systemd процесса Nginx, запустите эту команду:
sudo journalctl -u nginx
Заключение
Данный мануал перечислил общие процедуры по поддержке сервера Nginx. Чтобы узнать больше о работе с Nginx, ознакомьтесь со следующими руководствами:
Nginx – один из самых популярных веб-серверов в мире, его используют многие крупные интернет-порталы. Его можно использовать не только в качестве веб-сервера, но и как обратный прокси. Nginx обладает массой преимуществ, например, в сравнении с Apache он потребляет меньше ресурсов.
Из этой статьи вы узнаете, как установить nginx на сервер с ОС Debian 10.
Требования
Для выполнения дальнейших действий у вас должен быть создан пользователь с sudo привилегиями (под которым вам нужно авторизоваться), а также работать файрвол.
Шаг 1: установка nginx
Nginx доступен в стандартных репозиториях Debian, так что его можно установить прямо оттуда, используя пакетный менеджер apt.
Нужно выполнить стандартные действия - сначала обновить локальный индекс пакетов:
А затем уже установить сам nginx:
Далее нужно нажать Enter, чтобы подтвердить то, что вы хотите начать установку. После этого на ваш сервер установится nginx и все необходимые зависимости.
Шаг 2: настройка файрвола
Теперь нужно внести несколько изменений в файрвол.
Введите команду ниже для того, чтобы просмотреть все доступные профили приложений на вашем сервере:
Вы увидите список профилей приложений:
Для nginx доступны 3 профиля:
Для этого нужно выполнить команду:
Затем проверьте состояние UFW:
Шаг 3: проверка работы веб-сервера
После завершения процесса установки Debian 10 запустит nginx. То есть веб-сервер будет уже работать.
Это можно проверить следующей командой:
Вы увидите вывод:
Это значит, что сервис успешно запущен. И лучший способ убедиться в этом - это загрузить начальную страницу nginx, перейдя по IP-адресу вашего сервера. Если вы его не знаете, то введите команду:
В выводе вы увидите несколько строк - попробуйте в строке браузера каждую из них.
После ввода IP-адреса сервера вы должны увидеть:
Если страница отобразилась, значит, сервер работает корректно.
Шаг 4: работа с nginx
Наконец, несколько основных команд, которые позволяют управлять nginx.
Заново запустить после остановки:
Остановить и запустить:
Если вы вносите изменения в настройки, можно перезагрузить nginx без остановки процессов и обрыва соединений:
По умолчанию nginx будет запускаться вместе с сервером. Выключить эту настройку можно командой:
на голом впс я ставлю nginx+apache. и уже выполнил давно команду:
apt-get install nginx
он дал ошибки, и после этого не ставятся пакеты, например этот:
я нигде не нашел и все советы в рунете становятся нерабочими с этой ошибкой.
Job for nginx.service failed. See 'systemctl status nginx.service' and 'journalctl -xn' for details.
иглиш. ду ю спик ит?
стандартный съем блокировки не работает:
ноя 14 14:25:38 11350 nginx[28626]: nginx: [emerg] bind() to 55.55.55.55:80 failed (98: Address alread
дясять к одному, у тебя там уже апач запущен или что-то подобное
-xn даёт несколько последних строк
без дополнительных фильтров выводится лог любых сервисов
тебе нужно что-то вроде
также см. man systemctl на предмет list-unit-files
а ман я не стал читать долго
И nginx с ним не может поделить 80 порт
Вообще-то можно сказать, что это косяк мейнтейнера, в дебиане вообще принято сразу после установки запускать ненастроенный сервис. Мечта хакира.
Но никто не мешает остановиться и включить голову
раз nginx хочет 80 порт, останови апач, и пусть nginx получит свой 80 порт, чтобы скрипт установки отработал. А потом останавливай и настраивай как захочешь
Проверяю souces.list
sudo vi /etc/apt/sources.list
Restarting networking failed because the control process exited with error code.
При попытке перезапустить сеть
andrei@debian:/etc/network$ sudo /etc/init.d/networking restart
[. ] Restarting networking (via systemctl): networking.serviceJob for networking.service failed because the control process exited with error code. See "systemctl status networking.service" and "journalctl -xe" for details.
Оказалось, что при редактировании /etc/network/interfaces перепутал в названии интерфейса wlp1s0 l и 1 и написал вместо wlp 1 s0 wlp l s0
Failed to start A high performance web server and a reverse proxy server
При попытке установить Nginx в Debian 10
sudo apt install nginx
); however: Package nginx-full is not configured yet. Package nginx-light is not installed. Package nginx-extras is not installed. nginx depends on nginx-full (>= 1.14.2-2+deb10u1) | nginx-light (>= 1.14.2-2+deb10u1) | nginx-extras (>= 1.14.2-2+deb10u1); however: Package nginx-full is not configured yet. Package nginx-light is not installed. Package nginx-extras is not installed. dpkg: error processing package nginx (--configure): dependency problems - leaving unconfigured Processing triggers for man-db (2.8.5-2) . Processing triggers for systemd (241-7
deb10u4) . Errors were encountered while processing: nginx-full nginx E: Sub-process /usr/bin/dpkg returned an error code (1)
systemctl status nginx.service
● 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 Thu 2020-06-18 21:42:54 EEST; 5min ago Docs: man:nginx(8) Process: 15224 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Process: 15225 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=1/FAILURE)
sudo journalctl -xe
Из логов можно сделать вывод, что порт 80, который нужен Nginx уже занят. Я так подозреваю, что Apache. Поэтому нужно удалить или отключить Apache и поставить Nginx
Читайте также: