Настройка Nginx php fpm ubuntu
Обновлено: 21.11.2024
В этом информативном материале я покажу вам, как настроить Nginx с PHP FPM на вашем сервере Ubuntu 16.04 или Ubuntu 18.04. Мы рассмотрим обе операционные системы в одном руководстве. Это связано с тем, что метод настройки этого стека одинаков в обеих операционных системах.
Nginx с PHP-FPM на сервере Ubuntu — очень мощный стек. Если вы собираетесь разместить свой веб-сайт WordPress на сервере, который мы только собираемся настроить, вам это понравится. Стек, который мы собираемся настроить, представляет собой стек LEMP на стероидах. При правильной системе кэширования эта настройка будет обрабатывать гораздо больше трафика, чем вы можете ожидать, особенно в случае с блогами.
В этом руководстве мы немного обсудим виртуальные хосты. Если вы ничего не знаете о виртуальных хостах, я рекомендую вам ознакомиться с нашим руководством по виртуальным хостам Nginx. Итак, как будет работать наш стек? Это просто. Сервер Nginx будет обрабатывать запросы и передавать все файлы .php, необходимые для обслуживания запроса, процессору PHP.
Процессор PHP, который мы собираемся здесь использовать, называется FPM. FPM означает быстрый менеджер процессов. Он будет обрабатывать файлы PHP, необходимые нашему веб-серверу для обработки запросов, и вернет обработанный результат. Затем наш веб-сервер Nginx вернет полностью отрендеренную страницу в браузер пользователя.
Предпосылки
Чтобы следовать этому руководству, необходимо выполнить некоторые предварительные условия. Список не такой большой, вам просто нужен чистый сервер Ubuntu. И вам также нужен root-доступ к серверу. Ничего страшного, если у вас нет доступа к серверу в качестве фактического пользователя root, но вы должны иметь привилегии root на сервере.
Нам нужны привилегии root или sudo, потому что мы должны установить новые пакеты/программное обеспечение на сервер. И нам также нужно отредактировать некоторые файлы конфигурации, которые может редактировать только пользователь с привилегиями sudo. Итак, если вы четко определились с предварительными условиями, продолжайте следовать руководству.
Первая задача, которую нам нужно выполнить, — это установить Nginx на наш сервер. Итак, мы начнем с установки Nginx на сервер Ubuntu. Приступим к настройке нашего стека.
Установите Nginx в Ubuntu
Это самая простая задача, которую мы собираемся выполнить в этом руководстве. Это потому, что Nginx очень легко установить на Ubuntu. Нам просто нужно выполнить несколько команд, и все. На этом этапе нам даже не нужно редактировать какой-либо файл конфигурации.
Итак, выполните следующий набор команд, чтобы установить Nginx на свой сервер.
Это может занять около 30–40 секунд в зависимости от количества ядер ЦП, доступных на вашем сервере. После этого проверьте установку, посетив общедоступный IP-адрес сервера в браузере. Вы должны увидеть страницу, похожую на следующую картинку.
Если вы видите похожую страницу, вы выполнили первое задание. Теперь пришло время установить PHP на наш сервер. Установить PHP тоже несложно. Для этого может потребоваться запуск нескольких команд и добавление репозиториев, но ручная настройка не требуется.
Установите PHP в Ubuntu
Как я уже сказал, установить PHP в Ubuntu несложно. Однако существует множество версий PHP, доступных для использования. Если вашему приложению для бесперебойной работы требуется определенная версия PHP, вам придется установить эту конкретную версию PHP на свой сервер. Это тоже просто, вам просто нужно заменить номер версии PHP в следующих командах.
В этой демонстрации мы установим PHP 7.2 на наш сервер. Если вы используете PHP версии 5.6 или ниже в своем приложении, я рекомендую вам обновить код для поддержки PHP 7.0 или выше. Когда вы будете готовы, выполните следующие команды, чтобы установить PHP 7.2 на ваш сервер Ubuntu.
Если вы хотите установить любую другую версию PHP, кроме 7.2, замените 7.2 версией, которую вы хотите установить на свой сервер. Установка PHP займет некоторое время. После установки проверьте установку, выполнив следующую команду на своем сервере.
Команда вернет версию PHP, установленную на вашем сервере. Он также покажет некоторую дополнительную информацию об установке PHP. Результат должен выглядеть следующим образом.
Если вы видите вывод, как в приведенном выше примере, PHP успешно установлен на сервере.
Настройка Nginx с помощью PHP-FPM
Сейчас сервер Nginx и PHP могут работать на сервере по отдельности. Но наша цель — настроить Nginx на использование PHP для обработки PHP-файлов. Это тоже легко! Это не требует от нас установки чего-либо дополнительного на наш сервер. Но нам нужно отредактировать файлы нашего виртуального хоста, чтобы указать Nginx передавать файлы .php в FPM для обработки.
В этой демонстрации мы отредактируем наш файл Nginx по умолчанию. Однако вы можете редактировать файлы виртуального хоста на своем сервере в соответствии с вашими требованиями.Чтобы открыть файл виртуального хоста Nginx по умолчанию в режиме редактирования, выполните следующую команду.
В файле конфигурации найдите строку, содержащую директиву index. По умолчанию это должно выглядеть так.
Добавьте index.php перед index.html и после директивы index. Обновленная строка должна выглядеть следующим образом.
Теперь прокрутите немного вниз, и вы найдете раздел, посвященный PHP. По умолчанию этот раздел выглядит так.
Как видите, сейчас весь раздел закомментирован. Мы должны раскомментировать некоторые строки в этом разделе. Чтобы дать вам представление о том, какие строки раскомментировать, посмотрите, как это должно выглядеть при обновлении для передачи файлов PHP в FPM.
Осторожно раскомментируйте строки, чтобы убедиться, что блок местоположения завершен и вы отправляете запросы в сокет PHP. Сокеты Unix работают быстро. Вот почему мы используем сокет PHP-FPM для передачи запросов в FPM. После обновления файла конфигурации нажмите CTRL+X, затем Y, а затем клавишу Enter, чтобы сохранить конфигурацию.
Последний шаг, который необходимо выполнить в этой задаче, — перезапустить сервер Nginx. Мы должны перезапустить сервер Nginx, чтобы изменения вступили в силу. Выполните следующую команду, чтобы перезапустить сервер Nginx.
После этого наш сервер Nginx и PHP могут работать вместе. Если вы столкнулись с проблемой перезапуска сервера Nginx, возможно, это связано с какой-то ошибкой в отредактированном вами файле конфигурации. Убедитесь, что все правильно отредактировано, и попробуйте снова перезапустить сервер.
Наша основная задача по настройке Nginx с PHP-FPM выполнена. Теперь пришло время протестировать нашу конфигурацию.
Протестируйте конфигурацию
Если все, что мы сделали, правильно, наши PHP-файлы должны быть интерпретированы сервером, прежде чем возвращать вывод в браузер. Именно так мы собираемся протестировать конфигурацию.
Выполните следующую команду, чтобы создать тестовый PHP-файл в корне документа нашего сайта Nginx по умолчанию.
Теперь в браузере попробуйте получить доступ к этому тестовому файлу. Вы можете получить к нему доступ, используя следующий шаблон URL.
Если вы видите страницу со всей информацией о вашей установке PHP, поздравляем! Вы успешно настроили Nginx с PHP-FPM на своем сервере Ubuntu. Страница должна выглядеть так, как показано на следующем изображении.
Если вы видите похожую страницу, ваша задача выполнена! Вы успешно настроили Nginx с PHP FPM на своем сервере.
Теперь вы можете установить MySQL или другие базы данных на свой сервер Ubuntu в соответствии с вашими требованиями.
Вывод. Вот как вы можете настроить Nginx с PHP-FPM на сервере Ubuntu 16.04 или Ubuntu 18.04. Это один из лучших стеков, которые вы можете настроить для размещения своих PHP-приложений. Это особенно просто в Ubuntu, так как она поставляется почти со всем программным обеспечением, которое нам нужно установить на наш сервер. Если вы хотите настроить Apache с помощью PHP-FPM, следуйте нашему руководству.
Сообщите нам, если вам нужна помощь в настройке этого стека на вашем сервере. Вы можете использовать раздел комментариев ниже или связаться с нашей службой поддержки, мы будем рады помочь!
Программный стек LEMP — это группа программ, которые можно использовать для обслуживания динамических веб-страниц и веб-приложений, написанных на PHP. Это аббревиатура, описывающая операционную систему Linux с веб-сервером Nginx (произносится как «Engine-X»). Базовые данные хранятся в базе данных MySQL, а динамическая обработка выполняется PHP.
В этом руководстве показано, как установить стек LEMP на сервер Ubuntu 20.04. Операционная система Ubuntu отвечает первому требованию. Мы опишем, как настроить и запустить остальные компоненты.
Предпосылки
Для выполнения этого руководства вам потребуется доступ к серверу Ubuntu 20.04 в качестве обычного пользователя sudo без полномочий root и включенный брандмауэр на вашем сервере. Чтобы настроить это, вы можете следовать нашему руководству по первоначальной настройке сервера для Ubuntu 20.04.
Шаг 1. Установка веб-сервера Nginx
Чтобы отображать веб-страницы для посетителей нашего сайта, мы собираемся использовать высокопроизводительный веб-сервер Nginx. Мы будем использовать диспетчер пакетов apt для получения этого программного обеспечения.
Поскольку мы впервые используем apt для этого сеанса, начните с обновления индекса пакетов вашего сервера. После этого вы можете использовать apt install для установки Nginx:
При появлении запроса введите Y, чтобы подтвердить, что вы хотите установить Nginx. После завершения установки веб-сервер Nginx будет активен и будет работать на вашем сервере Ubuntu 20.04.
Если у вас включен брандмауэр ufw, как рекомендовано в нашем руководстве по первоначальной настройке сервера, вам необходимо разрешить подключения к Nginx. Nginx регистрирует несколько разных профилей приложений UFW при установке. Чтобы проверить, какие профили UFW доступны, выполните:
Включите это, набрав:
Вы можете проверить изменение, запустив:
Добавив новое правило брандмауэра, вы можете проверить, запущен ли сервер, обратившись к доменному имени вашего сервера или общедоступному IP-адресу в веб-браузере.
Если у вас нет доменного имени, указывающего на ваш сервер, и вы не знаете общедоступный IP-адрес вашего сервера, вы можете найти его, выполнив следующую команду:
Это распечатает несколько IP-адресов. Вы можете попробовать каждый из них по очереди в веб-браузере.
В качестве альтернативы вы можете проверить, какой IP-адрес доступен для просмотра из других мест в Интернете:
Введите полученный адрес в веб-браузере, и вы перейдете на целевую страницу Nginx по умолчанию:
Шаг 2 — Установка MySQL
Теперь, когда у вас есть запущенный и работающий веб-сервер, вам необходимо установить систему базы данных, чтобы иметь возможность хранить и управлять данными для вашего сайта. MySQL — это популярная система управления базами данных, используемая в средах PHP.
При появлении запроса подтвердите установку, введя Y , а затем ENTER .
По завершении установки рекомендуется запустить сценарий безопасности, который предварительно устанавливается вместе с MySQL. Этот сценарий удалит некоторые небезопасные настройки по умолчанию и заблокирует доступ к вашей системе баз данных. Запустите интерактивный скрипт, выполнив:
Появится вопрос, хотите ли вы настроить ПРОВЕРКУ ПАРОЛЯ .
Примечание. Включение этой функции требует решения. Если этот параметр включен, пароли, не соответствующие указанным критериям, будут отклонены MySQL с ошибкой. Безопасно оставить проверку отключенной, но вы всегда должны использовать надежные уникальные пароли для учетных данных базы данных.
Ответьте Y, если да, или что-то еще, чтобы продолжить без включения.
Если вы ответите «да», вам будет предложено выбрать уровень проверки пароля. Имейте в виду, что если вы введете 2 для самого сильного уровня, вы получите ошибки при попытке установить любой пароль, который не содержит цифр, прописных и строчных букв и специальных символов или который основан на общеупотребительных словарных словах.
Независимо от того, выбрали ли вы установку VALIDATE PASSWORD PLUGIN, ваш сервер затем попросит вас выбрать и подтвердить пароль для пользователя root MySQL. Не следует путать с системным корнем. Пользователь root базы данных является администратором с полными привилегиями в системе базы данных. Несмотря на то, что метод аутентификации по умолчанию для пользователя root MySQL не требует использования пароля, даже если он установлен, вы должны определить здесь надежный пароль в качестве дополнительной меры безопасности. Мы поговорим об этом чуть позже.
Если вы включили проверку пароля, вам будет показана надежность пароля root, который вы только что ввели, и ваш сервер спросит, хотите ли вы продолжить использование этого пароля. Если вас устраивает текущий пароль, введите Y вместо «да» в ответ на приглашение:
Чтобы ответить на остальные вопросы, нажмите Y и клавишу ВВОД при каждом запросе. Это удалит некоторых анонимных пользователей и тестовую базу данных, отключит удаленный вход в систему root и загрузит эти новые правила, чтобы MySQL немедленно учитывал внесенные вами изменения.
Когда вы закончите, проверьте, можете ли вы войти в консоль MySQL, набрав:
Это позволит подключиться к серверу MySQL в качестве пользователя root административной базы данных, что подразумевается использованием sudo при выполнении этой команды. Вы должны увидеть такой вывод:
Чтобы выйти из консоли MySQL, введите:
Обратите внимание, что вам не нужно вводить пароль для подключения в качестве пользователя root, даже если вы определили его при запуске скрипта mysql_secure_installation. Это связано с тем, что метод аутентификации по умолчанию для административного пользователя MySQL — это unix_socket, а не пароль. Хотя на первый взгляд это может показаться проблемой безопасности, это делает сервер базы данных более безопасным, поскольку единственными пользователями, которым разрешено входить в систему в качестве пользователя root MySQL, являются системные пользователи с привилегиями sudo, подключающиеся из консоли или через приложение, работающее с одинаковые привилегии. На практике это означает, что вы не сможете использовать администратора базы данных root для подключения из вашего PHP-приложения. Установка пароля для корневой учетной записи MySQL служит защитой на случай, если метод аутентификации по умолчанию будет изменен с unix_socket на пароль .
Для повышения безопасности лучше иметь выделенные учетные записи пользователей с менее широкими правами, настроенными для каждой базы данных, особенно если вы планируете разместить несколько баз данных на своем сервере.
Примечание. На момент написания этой статьи нативная PHP-библиотека MySQL mysqlnd не поддерживала caching_sha2_authentication — метод аутентификации по умолчанию для MySQL 8.По этой причине при создании пользователей базы данных для PHP-приложений в MySQL 8 вам необходимо убедиться, что вместо этого они настроены на использование mysql_native_password. Мы покажем, как это сделать, на шаге 6.
Теперь ваш сервер MySQL установлен и защищен. Далее мы установим PHP, последний компонент в стеке LEMP.
Шаг 3. Установка PHP
У вас установлен Nginx для обслуживания вашего контента и MySQL для хранения и управления вашими данными. Теперь вы можете установить PHP для обработки кода и создания динамического содержимого для веб-сервера.
В то время как Apache встраивает интерпретатор PHP в каждый запрос, Nginx требует внешней программы для обработки PHP и работы в качестве моста между самим интерпретатором PHP и веб-сервером. Это позволяет повысить общую производительность большинства веб-сайтов на основе PHP, но требует дополнительной настройки. Вам нужно будет установить php-fpm , что означает «менеджер процессов PHP fastCGI», и указать Nginx передавать запросы PHP этому программному обеспечению для обработки. Кроме того, вам понадобится php-mysql, модуль PHP, который позволяет PHP взаимодействовать с базами данных на основе MySQL. Базовые пакеты PHP будут автоматически установлены как зависимости.
Чтобы установить пакеты php-fpm и php-mysql, выполните:
При появлении запроса введите Y и ENTER, чтобы подтвердить установку.
Теперь у вас установлены компоненты PHP. Далее вы настроите Nginx для их использования.
Шаг 4. Настройка Nginx для использования процессора PHP
При использовании веб-сервера Nginx мы можем создавать блоки сервера (аналогично виртуальным хостам в Apache), чтобы инкапсулировать детали конфигурации и размещать более одного домена на одном сервере. В этом руководстве мы будем использовать your_domain в качестве примера доменного имени. Чтобы узнать больше о настройке доменного имени в DigitalOcean, ознакомьтесь с нашим введением в DigitalOcean DNS.
В Ubuntu 20.04 в Nginx по умолчанию включен один серверный блок, и он настроен на обслуживание документов из каталога /var/www/html . Хотя это хорошо работает для одного сайта, управлять им может быть сложно, если вы размещаете несколько сайтов. Вместо изменения /var/www/html мы создадим структуру каталогов внутри /var/www для веб-сайта your_domain, оставив /var/www/html в качестве каталога по умолчанию, который будет обслуживаться, если запрос клиента не соответствуют любым другим сайтам.
Создайте корневой веб-каталог для домена your_domain следующим образом:
Затем назначьте владельца каталога с помощью переменной среды $USER, которая будет ссылаться на вашего текущего системного пользователя:
Затем откройте новый файл конфигурации в каталоге, доступном для сайтов Nginx, с помощью предпочитаемого вами редактора командной строки. Здесь мы будем использовать nano :
Это создаст новый пустой файл. Вставьте следующую базовую конфигурацию:
Вот что делает каждая из этих директив и блоков местоположения:
После редактирования сохраните и закройте файл. Если вы используете nano , вы можете сделать это, нажав CTRL+X, а затем y и ENTER для подтверждения.
Активируйте свою конфигурацию, связавшись с файлом конфигурации из каталога с поддержкой сайтов Nginx:
Затем отсоедините файл конфигурации по умолчанию от каталога /sites-enabled/:
Примечание. Если вам когда-нибудь понадобится восстановить конфигурацию по умолчанию, вы можете сделать это, заново создав символическую ссылку, например так:
Это укажет Nginx использовать конфигурацию при следующей перезагрузке. Вы можете проверить свою конфигурацию на наличие синтаксических ошибок, набрав:
Если сообщается о каких-либо ошибках, вернитесь к файлу конфигурации, чтобы просмотреть его содержимое, прежде чем продолжить.
Когда будете готовы, перезагрузите Nginx, чтобы применить изменения:
Ваш новый веб-сайт теперь активен, но корневая папка /var/www/ your_domain по-прежнему пуста. Создайте файл index.html в этом месте, чтобы мы могли проверить, работает ли ваш новый серверный блок должным образом:
Включите в этот файл следующее содержимое:
Теперь перейдите в браузер и получите доступ к доменному имени или IP-адресу вашего сервера, как указано в директиве server_name в файле конфигурации вашего блока сервера:
Вы увидите страницу, подобную этой:
Если вы видите эту страницу, это означает, что ваш серверный блок Nginx работает должным образом.
Вы можете оставить этот файл в качестве временной целевой страницы для вашего приложения, пока вы не замените его файлом index.php. Сделав это, не забудьте удалить или переименовать файл index.html из корня документа, так как по умолчанию он будет иметь приоритет над файлом index.php.
Теперь ваш стек LEMP полностью настроен. На следующем шаге мы создадим PHP-скрипт, чтобы проверить, действительно ли Nginx может обрабатывать файлы .php на вашем вновь настроенном веб-сайте.
Шаг 5. Тестирование PHP с помощью Nginx
Теперь ваш стек LEMP должен быть полностью настроен. Вы можете протестировать его, чтобы убедиться, что Nginx может правильно передавать файлы .php на ваш процессор PHP.
Это можно сделать, создав тестовый PHP-файл в корне документа. Откройте новый файл с именем info.php в корне документа в текстовом редакторе:
Введите или вставьте следующие строки в новый файл. Это действительный код PHP, который вернет информацию о вашем сервере:
Когда вы закончите, сохраните и закройте файл, нажав CTRL + X, а затем y и ENTER для подтверждения.
Теперь вы можете получить доступ к этой странице в своем веб-браузере, посетив доменное имя или общедоступный IP-адрес, который вы установили в файле конфигурации Nginx, а затем /info.php :
Вы увидите веб-страницу с подробной информацией о вашем сервере:
После проверки соответствующей информации о вашем сервере PHP на этой странице лучше всего удалить созданный вами файл, поскольку он содержит конфиденциальную информацию о вашей среде PHP и вашем сервере Ubuntu. Вы можете использовать rm для удаления этого файла:
Вы всегда можете восстановить этот файл, если он понадобится позже.
Шаг 6 — Тестирование подключения к базе данных из PHP (необязательно)
Если вы хотите проверить, может ли PHP подключаться к MySQL и выполнять запросы к базе данных, вы можете создать тестовую таблицу с фиктивными данными и запросить ее содержимое из скрипта PHP. Прежде чем мы сможем это сделать, нам нужно создать тестовую базу данных и правильно настроить нового пользователя MySQL для доступа к ней.
На момент написания этой статьи нативная PHP-библиотека MySQL mysqlnd не поддерживает caching_sha2_authentication, метод аутентификации по умолчанию для MySQL 8. Нам потребуется создать нового пользователя с методом аутентификации mysql_native_password, чтобы иметь возможность подключиться к базе данных MySQL из PHP.
Мы создадим базу данных с именем example_database и пользователя с именем example_user, но вы можете заменить эти имена другими значениями.
Сначала подключитесь к консоли MySQL, используя учетную запись root:
Чтобы создать новую базу данных, выполните следующую команду из консоли MySQL:
Теперь вы можете создать нового пользователя и предоставить ему полные права доступа к пользовательской базе данных, которую вы только что создали.
Следующая команда создает нового пользователя с именем example_user , используя mysql_native_password в качестве метода аутентификации по умолчанию. Мы определяем пароль этого пользователя как password , но вы должны заменить это значение безопасным паролем по своему выбору.
Теперь нам нужно дать этому пользователю разрешение на доступ к базе данных example_database:
Это даст пользователю example_user полные права доступа к базе данных example_database, но запретит этому пользователю создавать или изменять другие базы данных на вашем сервере.
Теперь выйдите из оболочки MySQL с помощью:
Вы можете проверить, есть ли у нового пользователя надлежащие разрешения, снова войдя в консоль MySQL, на этот раз используя учетные данные пользователя:
Обратите внимание на флаг -p в этой команде, который запрашивает пароль, используемый при создании пользователя example_user. После входа в консоль MySQL подтвердите, что у вас есть доступ к базе данных example_database:
Это даст вам следующий результат:
Далее мы создадим тестовую таблицу с именем todo_list. В консоли MySQL выполните следующую инструкцию:
Вставьте несколько строк содержимого в тестовую таблицу. Вы можете повторить следующую команду несколько раз, используя разные значения:
Чтобы убедиться, что данные успешно сохранены в вашей таблице, выполните:
Вы увидите следующий вывод:
Убедившись, что в тестовой таблице есть достоверные данные, вы можете выйти из консоли MySQL:
Теперь вы можете создать сценарий PHP, который будет подключаться к MySQL и запрашивать ваш контент. Создайте новый файл PHP в пользовательском корневом веб-каталоге, используя предпочитаемый вами редактор. Для этого мы будем использовать nano:
Следующий PHP-скрипт подключается к базе данных MySQL и запрашивает содержимое таблицы todo_list, отображая результаты в виде списка. Если есть проблема с подключением к базе данных, будет выдано исключение. Скопируйте этот контент в свой скрипт todo_list.php:
Сохраните и закройте файл, когда закончите редактирование.
Теперь вы можете получить доступ к этой странице в веб-браузере, посетив доменное имя или общедоступный IP-адрес, настроенный для вашего веб-сайта, а затем /todo_list.php :
Вы должны увидеть страницу, подобную этой, показывающую контент, который вы вставили в свою тестовую таблицу:
Это означает, что ваша среда PHP готова к подключению и взаимодействию с вашим сервером MySQL.
Заключение
В этом руководстве мы создали гибкую основу для обслуживания веб-сайтов и приложений PHP для ваших посетителей, используя Nginx в качестве веб-сервера и MySQL в качестве системы базы данных.
Хотите узнать больше?Присоединяйтесь к сообществу DigitalOcean!
Присоединяйтесь к нашему сообществу DigitalOcean, насчитывающему более миллиона разработчиков, бесплатно! Получайте помощь и делитесь знаниями в нашем разделе "Вопросы и ответы", находите руководства и инструменты, которые помогут вам расти как разработчику и масштабировать свой проект или бизнес, а также подписывайтесь на интересующие вас темы.
В этом руководстве мы рассмотрим шаги по установке PHP 7.4 в Ubuntu 20.04 и настройке php-fpm для обслуживания этого трафика с помощью Nginx.
PHP — это язык сценариев общего назначения. Он в основном популярен для веб-разработки. Его можно использовать для разработки динамических и интерактивных веб-сайтов. Это был один из первых серверных языков, который можно было встраивать в HTML, что упрощало добавление функций к веб-страницам без необходимости обращаться к внешним файлам для получения данных. PHP — один из самых простых языков программирования для изучения.
Он интегрирован с рядом популярных баз данных, включая MySQL, PostgreSQL, Oracle, Sybase, Informix и Microsoft SQL Server. Многие популярные CMS и фреймворки, такие как WordPress, Magento и Laravel, написаны на PHP.
На момент написания этой статьи репозитории Ubuntu 20.04 по умолчанию включали версию PHP 7.4.
Предпосылки
Чтобы следовать этому руководству, убедитесь, что у вас есть следующее:
- Обновлен сервер Ubuntu 20.04, подключенный к Интернету.
- Корневой доступ к серверу или пользователю с доступом sudo
- Вам должно быть удобно использовать терминал Linux для выполнения команд.
Шаги по установке и настройке PHP в Ubuntu 20.04
- Убедитесь, что сервер обновлен
- Установите php 7.4 на сервер
- Установка Nginx
- Настройте Nginx для обслуживания php-файла
1. Убедитесь, что сервер обновлен
Прежде чем продолжить, убедитесь, что наш сервер обновлен. Используйте эти команды для 1. обновления репозиториев сервера, 2. обновления пакетов сервера до последних выпусков:
2. Установите php 7.4 на сервер
Поскольку репозитории по умолчанию содержат php версии 7.4, давайте установим его с помощью этой команды:
Подтвердите установленную версию командой php -v :
В этой настройке мы намерены обслуживать php-файлы с помощью Nginx. Nginx не имеет встроенной поддержки обработки файлов PHP. Мы будем использовать PHP-FPM («менеджер процессов fastCGI») для обработки файлов PHP.
Nginx не будет работать, если Apache установлен и запущен. Поскольку мы будем использовать Nginx, воспользуемся этой командой для удаления apache, если он установлен в нашей системе:
Теперь давайте установим php-fpm с помощью этой команды:
После завершения установки служба FPM запустится автоматически. Сервис добавляется в systemd как php7.4-fpm. Чтобы проверить статус службы, запустите:
Вы должны увидеть вывод, как показано выше.
3. Установка Nginx
Теперь, когда в системе установлены PHP и php-fpm, нам нужно установить nginx. Nginx позволит нам настроить виртуальный хост, который мы можем использовать для обслуживания трафика из домена.
Установите nginx с помощью этой команды:
После завершения установки Nginx будет запущен по умолчанию. Убедитесь, что он работает должным образом, проверив его статус. Вы должны увидеть такой вывод:
Чтобы убедиться, что Nginx действительно запущен и доступен, используйте следующую команду:
Где server_ip — это IP-адрес вашего сервера. Если по какой-либо причине вы не знаете общедоступный IP-адрес вашего сервера, используйте это для проверки:
Вы должны увидеть страницу Nginx по умолчанию.
4. Настройте Nginx для обслуживания php-файла
Теперь, когда Nginx настроен и работает на нашем сервере, давайте заставим его обслуживать php-файлы. В этом примере мы настроим Nginx для обслуживания информационной страницы php.
Подтвердите правильность разрешения домена на сервер с помощью команды dig:
Теперь нам нужно выполнить следующие шаги, чтобы наш простой скрипт заработал:
Добавить этот контент:
Сохраните и закройте файл.
Добавить этот контент:
Подтвердите правильность конфигурации nginx с помощью этой команды:
Теперь вам нужно перезапустить nginx и php-fpm с помощью этих команд:
Подтвердите, что сервисы появились:
Вы должны увидеть, что службы успешно перезапущены!
Если все пойдет хорошо, вы должны увидеть страницу с информацией о php, как показано на снимке экрана ниже:
Citizix — страница информации о PHP 7.4
Вот и все! До этого момента мы могли установить php 7.4 в Ubuntu 20.04 и обслуживать простой файл с помощью Nginx.
PHP — один из самых популярных серверных языков сценариев, используемых для создания динамических страниц.Многие популярные CMS написаны на PHP, включая WordPress, Laravel, Magento и многие другие.
Версия PHP 7.4 была официально выпущена 28 ноября 2019 г. с рядом новых функций. В нем также мало несовместимостей, поэтому вам следует соблюдать осторожность перед обновлением с предыдущей версии.
В этом руководстве мы покажем вам, как установить PHP7.4 с Nginx на сервер Ubuntu 20.04.
Оглавление
Предпосылки
- VPS Ubuntu 20.04 (мы будем использовать наш план SSD 2 VPS)
- Доступ к учетной записи пользователя root (или доступ к учетной записи администратора с привилегиями root)
Войти на сервер и обновить пакеты ОС сервера
Сначала войдите на свой сервер Ubuntu 20.04 через SSH как пользователь root:
Вам нужно будет заменить «IP_Address» и «Port_number» соответствующим IP-адресом вашего сервера и номером порта SSH. Кроме того, при необходимости замените «root» именем пользователя учетной записи администратора.
Перед началом необходимо убедиться, что все пакеты ОС Ubuntu, установленные на сервере, обновлены. Вы можете сделать это, выполнив следующие команды:
Установите Nginx
По умолчанию последняя версия Nginx доступна в стандартном репозитории Ubuntu 20.04. Вы можете установить его с помощью следующей команды:
После установки Nginx запустите службу Nginx и включите ее запуск при перезагрузке системы с помощью следующей команды:
Вы также можете проверить установленную версию Nginx с помощью следующей команды:
Вы должны получить следующий результат:
Установите PHP7.4
По умолчанию Ubuntu 20.04 поставляется с PHP 7.4 в исходных репозиториях. Вы можете легко установить его, просто выполнив следующую команду:
После установки PHP проверьте установленную версию с помощью следующей команды:
Вы должны получить следующий результат:
Конфигурации PHP, относящиеся к Nginx, хранятся в файле /etc/php/7.4/fpm/php.ini. Вы можете изменить его для повышения производительности.
Установите PHP7.4-FPM и другие расширения
Nginx не содержит встроенной обработки PHP. Поэтому вам нужно будет установить PHP-FPM для обработки файлов PHP. FPM — это альтернативная реализация PHP FastCGI с некоторыми дополнительными функциями, полезными для высоконагруженных сайтов.
Вы можете установить PHP7.4-FPM с другими необходимыми расширениями, выполнив следующую команду:
После установки всех пакетов запустите службу PHP7.4-FPM и включите ее запуск при перезагрузке системы:
Настройка Nginx для обработки файлов PHP
Далее вам нужно будет настроить Nginx для обработки файлов PHP.
Для этого создайте новый файл конфигурации виртуального хоста Nginx с помощью следующей команды:
Добавьте следующие строки:
Сохраните и закройте файл, затем включите файл конфигурации виртуального хоста Nginx с помощью следующей команды:
Затем проверьте Nginx на наличие синтаксической ошибки с помощью следующей команды:
Вы должны получить следующий результат:
Наконец, перезапустите службу Nginx, чтобы применить изменения конфигурации:
Затем создайте файл info.php для проверки версии PHP:
Добавьте следующий код:
Сохраните и закройте файл, когда закончите.
Проверить PHP
На данный момент Nginx настроен на обработку файлов PHP. Пришло время проверить это.
На приведенной выше странице вы можете проверить версию PHP7.4, установленные расширения PHP, параметры конфигурации PHP и т. д.
Конечно, вам не нужно делать ничего из этого, если вы используете одну из наших услуг хостинга Nginx VPS, и в этом случае вы можете просто попросить наших опытных администраторов Linux настроить это для вас. Они доступны круглосуточно и без выходных и немедленно обработают ваш запрос.
ПС. Если вам понравился этот пост, поделитесь им с друзьями в социальных сетях, используя кнопки слева, или просто оставьте ответ ниже. Спасибо.
Читайте также: