Назад в блог

Установка и настройка Laravel с Nginx на Ubuntu 20.04

Установка и настройка Laravel с Nginx на Ubuntu 20.04

Введение

Laravel — это фреймворк для веб-приложений, который поставляется с набором встроенных инструментов и ресурсов для разработки современных приложений на PHP . Он известен своей надежностью, производительностью, эффективностью, модульностью и безопасностью. Благодаря различным встроенным функциям популярность Laravel невероятно выросла. Многие разработчики используют Laravel для оптимизации процесса веб-разработки.

В этом руководстве будет показано, как установить и настроить новое приложение Laravel на Ubuntu 20.04.

Laravel на Ubuntu

Мы будем использовать Composer, менеджер зависимостей PHP, для загрузки и управления Laravel. Чтобы установить Composer, следуйте инструкциям этого руководства. Веб-сервер Nginx будет обслуживать приложение. Мы создадим демонстрационное приложение Laravel, использующее базу данных MySQL.

Для этого руководства требуются некоторые предварительные условия. Мы предполагаем, что у вас уже есть правильно настроенный и работающий сервер Ubuntu 20.04. Для справки, вот краткое руководство по настройке сервера Ubuntu. Также требуется установить и настроить стек LEMP (Linux, Nginx, MySQL и PHP). У нас есть подробное руководство по установке и настройке стека LEMP.

Поскольку мы собираемся устанавливать различные пакеты, для этого требуются права root. В случае Ubuntu пользователь root по умолчанию отключен. Поэтому нам нужен доступ к пользователю без прав root с привилегиями sudo. Вот как предоставить права sudo другим пользователям.

Шаг 1 – Установка модулей PHP

Перед установкой Laravel нам понадобятся некоторые важные модули PHP для фреймворка. Эти модули доступны непосредственно из репозиториев пакетов Ubuntu по умолчанию. Они поддерживают такие функции, как кодирование символов, XML и точная математика.

Сначала обновите кэш APT и установите пакеты:

Шаг 2 – Создание базы данных для приложения

Чтобы продемонстрировать функциональность Laravel, мы создадим приложение со списком путешествий, которое показывает список мест, которые пользователь хотел бы посетить, и список мест, которые уже visited. Мы можем хранить эти данные в таблице places с полями name (название места) и visited (пометка как visited или nonvisited). Дополнительное поле будет содержать уникальный идентификатор для каждой записи. Чтобы связать данные с нашим приложением Laravel, мы создадим выделенного пользователя MySQL и предоставим ему полные права на базу данных travellist.

Собственная библиотека PHP для MySQL mysqlnd больше не поддерживает caching_sha2_authentication. Таким образом, нам нужно настроить нашу базу данных с методом аутентификации mysql_native_password. Войдите в оболочку MySQL как root:

Затем создайте новую базу данных с именем travellist:

После этого создайте выделенного пользователя travellist_user с подходящим паролем:

Предоставьте пользователю travellist_user полные права на базу данных travellist. Это также предотвратит создание и изменение пользователем любых других баз данных на сервере:

Выйдите из оболочки MySQL:

exit

Давайте протестируем нового пользователя. Следующая команда выполнит вход в оболочку MySQL от имени пользователя travellist_user. Флаг -p запросит пароль пользователя:

Выведите список всех доступных баз данных. Как было настроено ранее, должны отображаться только travellist и information_schema:

Затем нам нужно создать таблицу данных places. Выполните следующую инструкцию MySQL:

Давайте заполним таблицу тестовыми данными:

Давайте проверим, успешно ли сохранились данные в базе данных:

Как видим, тестовая таблица заполнена корректными данными. Теперь мы можем выйти из оболочки MySQL:

MySQL shell

Шаг 3 – Создание нового приложения Laravel

Теперь мы готовы создать новое приложение Laravel с помощью Composer. Мы будем использовать travellist в качестве демонстрационного приложения. Это приложение будет отображать список мест из базы данных MySQL, демонстрируя базовую конфигурацию Laravel. Перейдите в домашний каталог пользователя:

Следующий шаг — создание нового приложения Laravel с помощью Composer. Будет создан отдельный каталог travellist с базовым приложением Laravel с настройками по умолчанию. Выполните следующую команду:

composer create-project

После создания приложения мы можем проверить, все ли компоненты были успешно установлены:

php artisan

Вывод подтверждает, что все файлы приложения находятся на своих местах. Он также гарантирует работоспособность всех инструментов командной строки Laravel. Тем не менее, для настройки базы данных и внесения нескольких дополнительных изменений все еще требуется конфигурация приложения.

Шаг 4 – Настройка Laravel

Все конфигурационные файлы Laravel хранятся в каталоге с именем config внутри корневого каталога приложения. Кроме того, при установке Laravel с помощью Composer также создается файл окружения. Он содержит различные настройки, специфичные для текущей среды. Значения, объявленные в нем, будут иметь приоритет над значениями, заданными в обычных конфигурационных файлах в config.

Для каждой уникальной установки потребуется собственный файл окружения для определения таких значений, как настройки подключения к базе данных, URL-адрес приложения, параметры отладки и т. д. Обратите внимание, что файл окружения содержит конфиденциальную информацию, такую как учетные данные базы данных, ключи безопасности и т. д. Вот почему настоятельно рекомендуется никогда не публиковать этот файл в открытом доступе.

Откройте файл окружения в текстовом редакторе:

Вот пример кода окружения:

DB_PASSWORD=password123

Давайте разберем эти значения:

  • APP_NAME: Это поле описывает имя приложения. Это имя будет использоваться для уведомлений и сообщений.
  • APP_ENV: Текущая среда приложения.
  • APP_KEY: Этот ключ генерируется автоматически при установке Laravel через Composer. Он используется для генерации солей и хешей. Менять его не нужно.
  • APP_DEBUG: Переключатель режима отладки. Если он включен, на стороне клиента будет отображаться отладочная информация.
  • APP_URL: Базовый URL-адрес приложения. Он также используется для генерации ссылок приложения.
  • DB_DATABASE: Имя базы данных. В данном случае это будет созданная нами выделенная база данных.
  • DB_USERNAME: Имя пользователя для подключения к базе данных.
  • DB_PASSWORD: Пароль для подключения к базе данных.

После внесения изменений сохраните файл и закройте редактор.

Шаг 5 – Настройка Nginx

Мы успешно установили Laravel в локальную папку домашней директории пользователя. Эта конфигурация отлично подходит для локальной среды разработки. Однако не рекомендуется использовать ее для веб-серверов, открытых для публичного интернета.

Наш следующий шаг — перенести приложение в /var/www, так как это обычное расположение для веб-приложений, работающих на Nginx. Используйте команду mv, чтобы переместить travellist в /var/www/travellist:

Затем предоставьте пользователю права на запись в папки storage и cache. В этих папках находятся файлы, создаваемые приложением Laravel:

Файлы приложения теперь на месте. Однако нам нужно указать Nginx обслуживать этот контент. Создайте новый файл конфигурации виртуального хоста:

Вот пример рекомендуемых настроек для приложения Laravel, работающего на Nginx:

Пришло время активировать новый файл конфигурации виртуального хоста. Создайте символическую ссылку на директорию sites-enabled:

Следующая команда Nginx проверит файлы конфигурации на наличие синтаксических ошибок:

Затем перезапустите Nginx:

Теперь приложение должно быть доступно по доменному имени или IP-адресу (как определено директивой server_name):

Installing Laravel image 3

Шаг 6 – Настройка главной страницы

После настройки приложения Laravel мы можем приступить к работе над ним. Для демонстрации пришло время создать пример страницы, отображающей тестовые данные из таблицы базы данных places. Сначала откройте основной файл маршрутов в текстовом редакторе:

По умолчанию файл будет содержать некоторый контент. Здесь маршруты определяются с помощью статического метода (Route::get). Он принимает path и callback function в качестве аргументов.

Замените код на следующий:

Installing Laravel image 2

Сохраните файл и закройте редактор. Далее мы создадим макет для отображения пользователю результатов запроса к базе данных. Создайте новый файл в resource/views:

В следующем коде мы создали два списка мест в зависимости от значения visited и togo:

Installing Laravel image 1

Сохраните файл и закройте редактор. Теперь снова откройте страницу веб-приложения:

Travel list

Вуаля! Теперь у нас есть работающее приложение Laravel, использующее базу данных MySQL для хранения содержимого.

Заключение

В этом руководстве мы продемонстрировали, как настроить приложение Laravel на базе стека LEMP, работающего на сервере Ubuntu 20.04. Мы также показали, как настроить маршрут по умолчанию для запроса содержимого базы данных и отображения результатов в пользовательском представлении. Для получения дополнительной информации о Laravel ознакомьтесь с официальной документацией по представлениям, маршрутам, и поддержке баз данных.

Установка в этом руководстве выполняется на отдельной виртуальной машине. Однако вы также можете развернуть Laravel на стеках LEMP в Docker.

Приятной работы!

author

Hark Labs

Автор · CloudSigma

Preslav Dobrev — креативный дизайнер в CloudSigma, сосредоточенный на формировании последовательного корпоративного образа с помощью традиционных и инновационных маркетинговых каналов. Он умело сочетает художественное видение со стратегическим маркетингом, создавая убедительные истории бренда.

Комментарии

Комментариев пока нет. Будьте первым.