Как установить PHP 7.3 на CentOS 7 / Fedora
Андрей Васенин
Приветствую всех ИТ-специалистов! В данной статье я представляю мануал по установке PHP 7.3 в операционной системе CentOS 7 или Fedora. Седьмая ветка PHP набирает все большую популярность и имеет ряд серьезных преимуществ перед предыдущей 5-кой. Как мигрировать с 5-ой версии PHP на 7.3 мы и расскажем Вам сейчас.
Релиз PHP 7.3 содержит множество исправлений ошибок, включая ошибки сегментации / повреждения памяти, неопределенные символы и другие багфиксы. Вы можете получить подробный отчет о новшествах и исправлениях в PHP 7.3 здесь. Итак, преступим к установке.
Шаг 1. Добавьте репозиторий PHP 7.3 Remi
PHP 7.3 доступен для дистрибутивов CentOS 7 и Fedora из репозитория Remi. Поэтому нужно добавьте его в свою систему, выполнив команду:
У Вас в системе должен быть установлен пакет Yum для выполнения команды по обновлению других пакетов в системе.
Шаг 2: Отключаем репозиторий для PHP 5.4
По умолчанию в CentOS 7 включен репозиторий для PHP 5.4. Отключим этот репозиторий и включим новый для установки PHP 7.3. Для этого выполним команду:
Шаг 3: Устанавливаем PHP 7.3 на CentOS 7 / Fedora
После отключения репо для PHP 5.4, мы уже сможем установить php 7.3 на CentOS 7 или Fedora, используя следующую команду:
Внимание! В команде перечислена установка не только самого языка PHP 7.3, но и самых востребованных его расширений. Если они точно Вам не потребуются, то можно исключить их из этой команды. Кроме того, скорее всего эти пакеты уже установлены для версии PHP 5.4 и поэтому их все равно придется обновлять.
Теперь проверим, какая версия PHP установлена в нашей системе:
Шаг 4: Установка других расширений PHP 7.3
Вы можете установить любые другие расширения PHP 7.3, используя следующий синтаксис команды:
После установки проверим версию пакета:
Всё! Наслаждайтесь использованием версии PHP 7.3 и не стесняйтесь сообщать команде разработчиков о любых ошибках, с которыми вы сталкиваетесь. Команда PHP всегда открыта для диалога.
Установка и настройка PHP 7 на CentOS 7
Install PHP 7 on CentOS 7
В этом руководстве мы объясним, как установить или обновить до PHP 7.0. 7.1, 7.2 и 7.3 в системе CentOS 7. Мы также покажем вам, как интегрировать PHP с Nginx и Apache.
С помощью PHP 7 ваши приложения будут загружаться быстрее и потреблять меньше системных ресурсов. Также перед установкой конкретной версии PHP 7.x убедитесь, что она поддерживается вашим приложением.
Перед началом работы с этим учебником убедитесь, что вы вошли на свой сервер с учетной записью пользователя с привилегиями sudo или с пользователем root. Лучше всего запускать административные команды от имени пользователя sudo вместо root. Если в вашей системе нет пользователя sudo, вы можете создать его, следуя этим инструкциям.
Включение репозитория Remi
Пакеты PHP 7.x доступны в нескольких разных репозиториях. Мы будем использовать репозиторий Remi, который предоставляет более новые версии различных пакетов программного обеспечения, включая PHP.
В следующих разделах мы расскажем, как установить PHP 7.x, включив соответствующий репозиторий Remi. Если в вашей системе уже установлен PHP 5.4, yum обновятся пакеты PHP.
Установка PHP 7.3 на CentOS 7
PHP 7.3 является последней стабильной версией PHP. Большинство современных PHP-фреймворков и приложений, включая WordPress, Drupal, Joomla и Laravel, полностью поддерживают PHP 7.3.
Выполните следующие шаги, чтобы установить PHP 7.3 на CentOS 7.
Начните с включения репозитория PHP 7.3 Remi:
Установите PHP 7.3 и некоторые из наиболее распространенных модулей PHP:
Проверьте установку PHP, введя следующую команду, которая выведет версию PHP:
Установка PHP 7.2 на CentOS 7
Используйте PHP 7.2, только если вы собираетесь устанавливать такие приложения, как Magento 2, которые не совместимы с PHP 7.2.
Следующие шаги описывают, как установить PHP 7.2 CentOS 7.
Сначала включите репозиторий PHP 7.2 Remi, выполнив следующую команду:
После того, как хранилище включено, установите PHP 7.2 и несколько наиболее распространенных модулей PHP:
Проверьте установку PHP:
Установка PHP 7.1 на CentOS 7
Следуйте инструкциям ниже, чтобы установить PHP 7.1.
Включите репозиторий PHP 7.1, набрав:
Установите PHP 7.1 и несколько наиболее распространенных модулей PHP:
Чтобы проверить установку, выполните следующую команду, которая выведет версию PHP:
Настройка PHP 7.x для работы с Apache
Если вы используете Apache в качестве веб-сервера, просто перезапустите службу Apache, используя следующую команду, и все готово:
Настройка PHP 7.x для работы с Nginx
В отличие от Apache, Nginx не имеет встроенной поддержки для обработки файлов PHP, поэтому нам нужно установить отдельное приложение, такое как PHP FPM, которое будет обрабатывать файлы PHP.
Для установки пакета PHP FPM выполните следующую команду:
По умолчанию PHP FPM будет работать как пользователь apache на порту 9000. Мы изменим пользователя на nginx и переключимся с сокета TCP на сокет Unix. Для этого отредактируйте линии, выделенные желтым цветом:
Убедитесь, что /var/lib/php каталог имеет правильное владение :
После внесения изменений включите и запустите службу PHP FPM:
Затем отредактируйте директиву виртуального хоста Nginx и добавьте следующий блок местоположения, чтобы Nginx мог обрабатывать файлы PHP:
Чтобы новая конфигурация вступила в силу, перезапустите службу Nginx :
Вывод
Вы узнали, как установить PHP 7 на вашем сервере CentOS и как настроить веб-сервер для обработки файлов PHP.
Как установить PHP на VDS под CentOS
Если вы взяли VDS для размещения динамических сайтов и приложений, написанных на PHP, то вам понадобится установить этот серверный язык. Сделать это можно в автоматическом и ручном режимах. В этой статье мы изучим оба способа на примере VDS с CentOS 7.
Автоматическая установка PHP на VDS
Самый простой вариант — установить PHP на собственный VDS под CentOS при создании сервера. Например, такая возможность есть на Timeweb.
Заходим в панель управления VDS на хостинге.
Переходим на вкладку «Список VDS».
Нажимаем на кнопку «Создать сервер».
Вводим любое имя и комментарий, если он нужен.
Выбираем операционную систему и дополнительное ПО для сервера. В нашем случае это будет CentOS 7 и LAMP (Linux, Apache, MySQL, PHP, nginx).
Выбираем конфигурацию сервера.
При необходимости указываем публичную часть ключа SSH (если уже его создали) и включаем защиту от DDoS-атак.
Оплачиваем тариф и получаем на почту письмо с данными для подключения к серверу.
После установки операционной системы и дополнительного ПО мы имеем полностью готовый сервер для работы над динамическими сайтами и приложениями.
Если уже есть сервер с другой ОС и дополнительным ПО, можно выполнить переустановку. Но этот способ подходит только в том случае, если на машине ничего не настроено и не размещено. Переустановка удаляет из хранилища все файлы. Например, у меня на Timeweb есть сервер с Ubuntu 18.04 и панелью Vesta. На нем нет ничего важного, поэтому я могу переустановить ОС и ПО на CentOS 7 с LAMP.
1000 рублей в подарок на производительные VDS от Timeweb
Закажи VDS, пополни баланс на 1000 рублей, и мы добавим еще столько же. Активируй промокод community1000 в панели управления.
Ручная установка PHP на VDS с CentOS 7
Тот же набор дополнительного ПО можно поставить на сервер вручную. Это займет больше времени, но результат будет аналогичным — готовая среда для разработки сайтов и приложений на PHP.
Для установки ПО мы будем использовать консоль, доступную в панели управления VDS на Timeweb. То же самое можно сделать через терминал, подключившись к серверу по SSH.
Первый шаг — установка репозитория EPEL. Без него на CentOS слишком мало пакетов для решения нашей задачи. Чтобы установить EPEL, выполняем в консоли следующие команды:
Теперь добавим пакеты, которые нужны для настройки веб-сервера с PHP:
Во время установки появится несколько запросов — все подтверждаем.
Чтобы улучшить производительность сервера, сократив время доступа к файлам, установим утилиту Prelink — она автоматически подгружает в память наиболее используемые библиотеки. Выполняем команду:
При установке соглашаемся со всеми предложениями.
Следующий шаг — установка веб-сервера Apache. Выполняем команду:
Затем ставим MySQL:
Наконец добираемся до PHP. В 7-й версии нет даже в EPEL, поэтому придется добавить еще один репозиторий:
Затем необходимо отредактировать конфиг репозитория, чтобы он начал работать. Открываем его через редактор nano:
Находим строку enabled=0 и меняем значение на «1». Должно получиться enabled=1. Сохраняем конфиг и закрываем редактор.
И ставим последнюю версию PHP:
С установкой мы разобрались, осталось настроить все компоненты для работы с веб-сайтами и приложениями.
Настройка программного обеспечения на VDS с CentOS
Начнем с MySQL. Запустим скрипт начальной настройки.
На экране появится мастер настройки, который работает в режиме «вопрос — ответ». Сначала он запросит рутовый пароль. Так как его нет, пропускаем этот шаг. Дальше нужно указать новый рутовый пароль от баз данных, подтвердить удаление анонимного доступа и обновление привилегий. Еще один важный момент — разрешение или запрет удаленных соединений. Если порт MySQL не закрыт в файрволе, то безопаснее их запретить.
Затем переходим к настройке PHP. Изменим лимиты по умолчанию, чтобы можно было работать с большими файлами. Открываем конфиг PHP через редактор nano:
Находим указанные ниже параметры и приводим их к следующим значениям:
Если нужны еще более высокие лимиты, ставим свои значения.
Сохраняем конфиг PHP и закрываем файл.
Затем открываем конфиг Apache:
Меняем дополнительные индексные файлы
Затем отключим тестовый виртуальный хост, на котором отображается заглушка Apache. Открываем конфигурационный файл:
В этом файле нужно закомментировать все строки — поставить перед каждой знак #.
Теперь нам нужно создать свой первый виртуальный хост. Формируем конфигурационный файл:
После выполнения предыдущей команды откроется редактор nano с пустым файлом. Вставляем в него следующие строки:
Вместо domain.com нужно указать свой домен. Затем сохраняем файл и выходим из редактора обратно в консоль.
В конфиге указано, куда писать логи, но самого подкаталога не существует. Создадим его:
Теперь создадим тестовую главную страницу сайта:
Внутри файла index.php разместим три строки:
Сохраняем файл и закрываем редактор. Чтобы применить настройки, перезапустим Apache:
Страница-заглушка исчезнет, при обращении к серверу через IP-адрес браузер будет возвращать ошибку «Доступ запрещен». Зато при вводе домена в адресной строке отобразится страница конфигурации PHP. Это значит, что PHP и Apache работают.
Однако наличие такой страницы в общем доступе небезопасно. Поэтому ее нужно удалить:
Чтобы завершить настройку сервера с PHP, установим phpMyAdmin.
Открываем сайт phpmyadmin.net, кликаем правой кнопкой по Download и копируем адрес ссылки для скачивания последней версии — на момент написания это 5.0.2.
Возвращаемся в консоль и скачиваем архив:
Создаем каталог с менеджером баз данных. Придумываем ему сложное название, которое трудно подобрать. Распаковываем архив и переименовываем папку:
Чтобы попасть в phpMyAdmin, вводим в браузере адрес типа http://domain.com/catal8882. Логин — root, пароль — тот, который мы задали при настройке MySQL.
На этом настройка сервера на CentOS с PHP завершена. Теперь можно создавать на нем сайты и приложения.
🐹 CentOS 7: Установка PHP 7.4 и настройка php-fpm.sock — Fastcgi Process Manager для Nginx.
Опубликовано 2020-09-24 · Обновлено 2021-05-10
Содержание:
1. Введение.
Существует php 5.6, 7.4 или 8. Для каждой версии php существует режим работы, который гораздо важнее для производительности, чем просто версия php.
В apache существует режимы работы php-cgi — это в принципе то же самое что и php-fpm, но есть существенная разница. CGI — тоже оно, но не совсем.
Что такое CGI и чем он отличается от обычного apache по умолчанию?
Apache с mod_php исполняет php-код сам, используя при этом кучу ресурсов сервера и делая это внутри своих процессов.
Когда используется режим CGI — это значит apache не обрабатывает php сам, а запускает php-cgi для каждого php-скрипта и забирает у него результат обработки. То есть это даже несколько усложняет схему: пользователь шлёт запрос к nginx > тот обращается к apache > apache запускает скрипты через CGI и получает результат их выполнения > собирает из них html и отдаёт его nginx > тот собирает статические страницы, нужную для этой html страницы в кучу > отдает пользователю.
Еще существует режим fastcgi — это тот же CGI, но отличается от него тем, что оно позволяет apache не запускать для каждого скрипта отдельный процесс, а запустить один или несколько процессов и отдавать скрипты ему, получать от него ответ. Это немного производительнее, чем CGI, за счёт того, что операции создания процессов для операционной системы считаются довольно ресурсоемкими. в работе этой схемы задействован всё тот же apache. Fastcgi без apache в данном случае работать не может, это все равно модуль mod_fastcgi.
php-fpm — это Fastcgi Process Manager. Он представляет из себя отдельную службу, которая работает независимо от какого-либо web-сервера. Он может сам принимать запросы от web-сервера через unix-сокет или через сетевое соединение. Другими словами, вы можете держать сайты на одном сервере, а php-скрипты исполнять на другом.
Получается, что для nginx помощь apache становится уже не нужна, потому как nginx может работать с php-fpm сам, напрямую. Apache тоже может работать в таком же режиме с php-fpm, но это не имеет смысла. Php-fpm не может отдавать статические файлы или html, он может только исполнять php.
Получается такая схема: запрос пользователя > nginx > php-fpm > nginx, он собирает из ответа php и статики страницу > отдаёт пользователю. FPM в разы производительнее apache, в каком бы режиме тот ни был запущен.
2. Настройка репозиториев.
Установим YUM утилиты:
Для установки репозитория REMI в CentOS 7 требуется установить EPEL репозиторий и выполнить команду:
Нет смысла держать репозитории, которые устарели.
В базовой установке CentOS 7 установлен remi-safe репозиторий. Там содержатся копии только старых-добрых программ, которые не обновляются очень долго в угоду стабильности работы некоторых систем. Так как мы будем ставить новую версию репозитория REMI, то старую версию REMI-SAFE можно смело деактивировать.
Для активации remi надо вначале отключить remi-safe и ius репозиторий (если он у вас включен), а потом активировать remi выполнив команды:
Возможны конфликты с репозиторием IUS! Отключим IUS, если он активирован ранее:
Активируем remi:
Посмотрим какие репозитории появились в доступности у CentOS 7:
Посмотрим доступные репозитории remi:
Получится вот так, если активировать вручную:
Или вот так, если активируем репозиторий remi-php74 автоматизированно, для этого выполняем команду:
3. Установка php 7.4 и php-fpm.sock.
Теперь устанавливаем php версии 7.4.
Установим php-fpm и наиболее популярные модули, которые могут пригодится в процессе эксплуатации web-сервера.
Запускаем php-fpm и добавляем в автозагрузку.
# systemctl start php-fpm
# systemctl enable php-fpm
Проверим активность службы:
# systemctl status php-fpm
Ответ:
Проверяем, запустился ли он.
Перед этим установим сетевые утилиты для CentOS 7:
Вот что он вам покажет до того, как мы переделаем всё под свои нужды.
Все в порядке, повис на порту 9000.
4. Настройка php-fpm.sock.
Теперь переделаем всё под наши нужды. Запустим его через unix сокет.
Создадим резервную копию конфигурационного файла:
# cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf.original
Открываем файл конфигурации /etc/php-fpm.d/www.conf :
Ищем и комментируем строку:
Вместо нее, сразу под ней, добавляем несколько других:
Заодно измените пользователя, от которого будет работать php-fpm.
Вместо apache укажите nginx.
Перезапускаем php-fpm, чтобы применить настройки.
# systemctl restart php-fpm
Проверяем, стартовал ли указанный сокет.
Создаем папку session :
Более безопасно было бы для каждого сайта делать отдельную директорию для сессий и определять ее в настройках php, но это уже частный случай. В общем случае, можно оставить так.
PHP от Remi для CentOS
Версии PHP от Remi являются самыми популярными и стабильными при использовании на Web серверах. Расскажу основные моменты работы с репозиторием. Рассмотрим как сменить версию PHP. Один из самых популярных репозиториев для CentOS.
Введение
Есть замечательный человек Remi Collet, который создал репозиторий пользующийся огромной популярностью у пользователей операционной системы CentOS. Познакомится с новостями репозитория можно на блоге Remi Collet.
В статье будет рассказано про использование репозитория на системах CentOS 7 и 8.
Les RPM de Remi repository поддерживает последние версии MySQL и PHP (бэкпорты федоровских rpm). Пакеты этого репозитория необходимо использовать с осторожностью, так как они заменяют базовые пакеты.
В другой статье вы можете узнать как использовать репозиторий WebtaticEL для CentOS 7. В нем так же используются последние версии PHP, но к сожалению там нет многих удобств которые есть у Remi. Например, используя репозиторий Remi можно всегда иметь последнюю версию phpMyAdmin.
Предварительная подготовка
Перед началом использования репозитория Remi необходимо подключить репозиторий Epel созданный группой специалистов операционной системы Fedora. Пакеты из Epel репозитория никогда не конфликтуют и не переустанавливают базовые пакеты RHEL.
Установка Epel в CetnOS 7 производится командой:
Установка Epel в CetnOS 8 производится командой:
Подключение репозитория от Remi
для CentOS 7
Для установки репозитория Remi в CentOS 7 достаточно выполнить команду:
Посмотреть активные репозитории можно следующей командой:
По умолчанию установлен репозиторий remi-safe который имеет только дополнительные пакеты для базового хранилища и коллекций программного обеспечения. Например, при попытке установить phpMyAdmin будет установлена старая версии. Для установки последних версий надо активировать репозиторий remi.
Посмотрим репозитории что у нас есть в системе выполнив команду:
Надеюсь, вы заметили что есть репозитории glpi.
GLPI — это программный инструмент ITSM, который помогает вам легко планировать и управлять изменениями в ИТ структуре предприятия, эффективно решать возникающие проблемы используя систему заявок, так же позволяет вам получить контроль над ИТ-бюджетом и расходами вашей компании. В будущем я расскажу как работать с этим замечательным проектом. Кроме того, то что Remi Collet поддерживает репозиторий меня очень радует.
Перед работой с репозиториями Remi необходимо установите пакет yum-utils, что бы не получать ошибку «bash: yum-config-manager: command not found». Установим yum-utils выполнив необходимую команду:
Сейчас у нас активирован remi-safe. Для активации remi надо вначале отключить remi-safe а потом активировать remi выполнив команды:
Перед тем как определится какую версию PHP использовать я всегда смотрю на сайте Supported Versions PHP.
В списке имеющихся репозиториев нет версии php5.6, так как он входит в состав remi.repo. Для установки достаточно в команде указать remi-php56.
для CentOS 8
В 8 версии CentOS используется версия php 7.2 которая уже может удовлетворять требования множества новых сайтов, но если вам нужны версии новее подключайте Remi.
Подключаем репозиторий Remi, выполнив следующую команду:
Посмотрим список всех доступных вариантов установки php:
Из вывода выше видно что по умолчанию стоит базовая версия CentOS 7.2 и имена она будет установлена.
Установка версии PHP от Remi
для CentOS 7
Активируем репу remi-php72, для этого выполняем команду:
Устанавливаем php7.2 выполнив команду:
Лучше указывать php72 и тогда пакеты будут установлены только из репозитория remi. Например, я всегда внимательно смотрю какая версия php будет установлена в списке устанавливаемых пакетов.
Установим php-fpm и наиболее популярные модули, которые могут пригодится в процессе эксплуатации веб сервера.
Проверим установленную версию выполнив команду в консоли сервера:
для CentOS 8
Активируем репу php remi-7.2, для этого выполняем команды:
Убедимся что версия выбрана правильно:
Установим php remi-7.2 и все популярные модули следующей командой:
Файл конфигурации php.ini
Внесем необходимые изменения в файл настроек php.ini:
Настройка Php-fpm для Nginx
Для того чтобы связать nginx и php будем использовать мост php-fpm. Основной файл настройки находится по пути /etc/php-fpm.conf и там должен быть параметр include=/etc/php-fpm.d/*.conf говорящий о том где лежат настройки пулов.
Запускаем php-fpm и добавляем в автозагрузку:
Проверяем, запустился ли он.
Все в порядке, сервис работает и находится в автозагрузке.
Использовать порт или сокет решать вам, но говорят что сокет использовать лучше. Запустим php-fpm через unix сокет. Для этого переименуем конфиг /etc/php-fpm.d/www.conf, создадим новый и приводим к следующему виду:
Вы можете для каждого сайта созать свой пул и указать там все необходимые параметры. Например, для каждого сайта я создаю свой пул для гибкости настройки и благодаря этому я настраиваю корректный доступ к файлам по sftp.
Более подробно прочтите в статье SFTP настройка для веб хостинга.
Назначим каталогу /var/lib/php правильное владение:
Перезапускаем php-fpm командой:
Проверяем, стартовал ли указанный сокет.
Всё успешно настроено.
В настройках nginx для сайта необходимо указать требуемый пул. Например, прописать код fastcgi_pass unix:/run/php-fpm/www.sock; в секции location
Обновление версий PHP от Remi
Схема обновления универсальна и подойдет как для всех версий CentOS. В примере ниже расмотрен вариант обновления для версии 7.
Обновление состоит из нескольких действий:
Выполним обновление PHP до версии 7.3 в системе CentOS 7.
Останавливаем php-fpm командой:
Выводим список всех установленных пакетов php:
Произведём удаление всех выведенных пакетов необходимой командой:
Внимательно смотрим вывод команды при удалении! В выводе вы должны увидеть примерно такие строки:
предупреждение: /etc/php-fpm.d/www.conf сохранен как /etc/php-fpm.d/www.conf.rpmsave
предупреждение: /etc/php.ini сохранен как /etc/php.ini.rpmsave
Удалим старый репозиторий php7.2 и установим новый php7.3 выполнив команды:
Проверяем правильность установки нужного репозитория выполнив команду:
Устанавливаем пакеты аналогичные удаленным:
Обязательно смотрим версию и репозиторий откуда будут ставится пакеты.
Осталось проверить файлы что выдала команда при удалении старой версии php:
В заключение, запустим сервис php-fpm и проверим статус:
Из вывода видно что сервис не стартует при загрузке. Добавим сервис в автозагрузку выполнив команду:
Вывод
В статье рассказано про основные моменты работы с репозиторием Remi Collet. Репозиторий активно обновляется и мой выбор остановился на использовании именно его при работе с PHP.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Читая их я получаю информацию которая позволяет мне улучшить качество написания статей. Кроме того, оставляя комментарии вы помогаете сайту получить более высокий рейтинг у поисковых систем. Давайте общаться.
24 комментариев для статьи “ PHP от Remi для CentOS ”
Напишите как обновиться с php 7 на 8
Опишу когда буду переходить на 8 версию. Мне кажется обновление будет аналогичным что с 7.3 до 7.4.
Верните родной файл /etc/php-fpm.d/www.conf и перезапустите.
Обычно ошибки в не правельности названий или знаках.
Вот и смотрите что вы меняли и ищите там ошибку. Почему и рекомендую всегда оставлять базовый файл который можно вернуть и проверить работоспособность.
Спасибо за подробный и изрядно дополненный мануал по обновлению 7-ой версий php из репозитория remi.
Раньше стояли старенькие версии Nginx и PHP-FPM из репозитория Epel-Release. Обновился и вот проблема — на сайте в кодировке windows-1251 перестали корректно отображаться все буквы. В конфигурационном файле для данного сайта в директиве Server прописал «charset windows-1251;» как было и раньше — не помогло. Что делать?
Может проще будет сделать перекодировку базе данных? Все что неправильно отображается берется из базы данных?
Базы данных вообще нет) Просто создаю страничку index.html в кодировке windows-1251, прописываю в ней тег и текст на русском. Вешаю ее на домен, в файле этотдомен.conf в директиве Server прописываю charset windows-1251, перезапускаю Nginx и вижу кракозябы. Меняю все на UTF-8 — отображается правильно. А вот на прошлых версиях Nginx 1.12 и PHP-FPM 5.4 работало прекрасно. Может еще где что-то нужно прописать?
И еще попутный вопросик, раз уж я здесь. У меня на сервере несколько сайтов. Файл default.conf я не редактировал — в нем прописано просто «listen 80». В остальных же *.conf файлах я прописал «listen IP:80» (то есть IP своего сервера). Все работает, все открывается как положено, но — когда в строке браузера указываю просто свой IP, то открывается первый по алфавиту один из моих сайтов.
Мне это не нравится — я хочу, чтобы при обращении к серверу просто по IP открывалась стандартная заглушка Nginx из файла defaul.conf. Если в файле defaul.conf я прописываю как и везде «listen IP:80» — не помогает. Если во всех других *.conf файлах убираю IP и оставляю просто «listen 80» — сайты вообще не открываются. Подскажите, пожалуйста, как сделать, что по обращению к серверу просто по IP срабатывал default.conf?
«Меняю все на UTF-8 – отображается правильно» вот так и делайте. В кодировке windows-1251 практически никто не делает уже. Думаю можно настроить и с этой кодировкой, но тут я Вам не подскажу.
По поводу обращения по IP к серверу что бы открывалась нужная Вам страница.
В файле defaul.conf.
listen 80; — мне нравится указывать без ip
server_name localhost; — это говарит о том что когда будет запрос по ip откроется файл что указан в пути
location / <
root /usr/share/nginx/html; — вот этот путь.
index index.html index.htm;
>
Для всех других ресурсов создаются свои конфигурации по типу
location / <
root /var/www/sites/forum.mageia.org.ru/www; — это путь до нужного сайта
index index.html index.htm;
>
Грубо говоря идентификация ресурса идет по строчке server_name.
Строка «server_name localhost» в файле default.conf присутствовала по-умолчанию, я попробовал оставить везде только listen 80 — то есть без указания IP и все равно не помогло, при переходе из браузера по IP открывался один из сайтов.
В итоге я дописал IP в директиве server_name localhost через пробел и, о чудо, наконец стала срабатывать стандартная заглушка Nginx, а другие сайты продолжили нормально работать.
Надо смотреть что прописано в конфигурации того файла что открывается по ip. То что сделали работать будет, но это кривой вариант работы. Можете дать конфигурацию того сайта что открывается по ip?
Да, пожалуйста — вот мой шедевральный конфиг (полный минимализм, сайт статический с небольшими php-скриптами кое-где, SSL нет и в помине, логи отключены, все несуществующие ссылки ведут на главную с ответом 200):
server <
listen 80;
server_name mysite.ru www.mysite.ru;
root /path/to/mysite/;
index index.php;
charset utf-8;
server_name mysite.ru http://http://www.mysite.ru; — http:// лишние. Остальное вроде всё правильно.
Можно еще конфиг default.conf?
http:// там нет — это ваша форма ответа подставляет перед www. А вот мой default.conf, каким я его сделал сейчас — если убрать IP адрес из server_name, то все возвращается на круги своя и я вновь вижу открытие сайта по введению IP в адресную строку браузера:
server <
listen 80;
server_name 111.222.333.444 localhost;
location / <
return 403;
>
Хм… Оказывается надо оборачивать код в code и тогда все правильно получается. Решу со временем эту проблему.
Попробуйте такой код:
server <
listen 80;
server_name localhost;
location / <
root /usr/share/nginx/html;
index index.html index.htm;
>
>
Теперь мой default.conf выглядит вот так:
При такой конфигурации ничего не отдается ни по IP адресу, ни даже по обратной PTR-записи для данного IP адреса (домен, который хостер присваивает IP по-умолчанию). На сайт теперь можно попасть только прямо указав название домена.
Хорошо что у вас получилось что хотели.
Привет! Такой был по дефолту — не работает. В общем, пока я не добавил IP в строку server_name, продолжал открываться один из сайтов.
Сева, еще попутный вопросик появился, в access log своего сайта заметил вот такое:
У меня домен вовсе не http://www.123cha.com и никакого отношения к нему не имеет — откуда появляются такие записи в логах? Ответ моего сервера то 200, то 499 в этих случаях.
Странно как то это что по дефолту не работает. Система CentOS7 и Nginx ставили с их репозитория?
По логу не отвечу. Запись действительно странная.
CentOS ставил из образа, который сам провайдер VPS предлагает (в VMmanager просто выбрал операционку из списка и она установилась без всяких вопросов). Nginx 1.16.0 и PHP-FPM 7.3.7 по вашей инструкции — первый из официального, второй из Remi. Другого софта не ставил.
Думаете лучше было CentOS из собственного iso файла устанавливать и настраивать сеть в ручную?
Что это за шаблон установки от хостера и какого он качества для меня всегда загадка. На практике знаю что там очень часто любят вырезать некоторые вещи и добавлять какие то свои скрипты. Когда хостер позволяет устанавливать систему из своего ISO образа я всегда этим пользуюсь. Большинство статей пишут основываясь на настройках с учетом использования родного iso образа разработчика. Если хотите меньше сюрпризов работайте с образами разработчиков.
Здравствуйте! Спасибо за пошаговый мануал.
В качестве пожелания хотелось бы видеть у Вас на сайте статьи по настройке веб-сервера с применением связки apache+nginx на centOS7, где первый за бекенд отвечает, второй — за фронт.
И статью бы по настройке подобного на FreeBSD.
Подобного при беглом поиске не нашёл. В лучшем случае инфа есть но уже устарела. В современном окружении и с различием версий разных служб и приложений могут быть проблемы, где без опыта уже не обойтись 🙂








