Laravel – это бесплатный гибкий PHP-фреймворк, предназначенный для построения логичной архитектуры сложных веб-проектов и приложений. Применение Laravel гарантирует быстроту создания проекта, его безопасность, хорошую производительность и функциональность. Установить Laravel по SSH на сайт можно в несколько шагов.
- Как установить Laravel
- Добавление домена в ISPmanager и cPanel
- Добавление домена в DirectAdmin
- Установка фреймворка
- Введение
- Предварительные требования
- Шаг 1 — Установка необходимых модулей PHP
- Шаг 2 — Создание базы данных для приложения
- Шаг 3 — Создание нового приложения Laravel
- Шаг 4 — Настройка Laravel
- Шаг 5 — Настройка Nginx
- Шаг 6 — Настройка главной страницы
- Заключение
Как установить Laravel
Установка Laravel 9. X требует версии PHP 8.1. Обновить консольную версию PHP можно по инструкции. Для проверки версии введите команду php -v.
При установке Laravel достаточно следовать официальной инструкции. Но прежде чем установить фреймворк, следует правильно настроить домен (в качестве основной директории используется подкаталог /public).
Добавление домена в ISPmanager и cPanel
При добавлении домена в панель, в строке «Корневая папка» укажите подкаталог «/public». Перейдите в менеджер файлов и удалите созданную панелью управления папку «public» – она будет создана в процессе установки автоматически.
Если каталог не удалить, composer при установке Laravel будет выдавать ошибку Project directory is not empty.
Добавление домена в DirectAdmin
Установка фреймворка
Авторизуйтесь на сервере через SSH, войдите в директорию домена:
composer create-project laravel/laravel .
Начнется установка Laravel.
Теперь можете перейти на главную страницу своего сайта, чтобы ознакомиться с возможностями фреймворка Laravel.
Введение
Laravel — это инфраструктура PHP с открытым исходным кодом, включающая инструменты и ресурсы для создания современных приложений PHP. Благодаря полной экосистеме с встроенными функциями популярность Laravel за последние годы быстро возросла, и многие разработчики предпочитают ее для ускорения процесса разработки.
В этом обучающем модуле мы установим и настроим новое приложение Laravel на сервере Ubuntu 20.04, используем Composer для загрузки зависимостей инфраструктуры и управления ими и используем Nginx для обслуживания приложения. После завершения этого обучающего модуля вы получите работающее демонстрационное приложение Laravel, извлекающее контент из базы данных MySQL 8.
Предварительные требования
Для прохождения этого обучающего модуля необходимо предварительно выполнить на сервере Ubuntu 20.04 следующие задачи:
Шаг 1 — Установка необходимых модулей PHP
Прежде чем выполнить установку Laravel, необходимо установить несколько модулей PHP, требующихся для инфраструктуры. Мы будем использовать apt для установки модулей PHP php-mbstring, php-xml и php-bcmath. Эти расширения PHP предоставляют дополнительную поддержку при работе с кодированием символов, кодом XML и точными математическими операциями.
Если вы впервые используете apt в этом сеансе, необходимо запустить команду update, чтобы обновить кэш диспетчера пакетов:
Теперь вы можете установить требуемые пакеты с помощью следующей команды:
php-mbstring php-xml php-bcmath
Теперь ваша система готова к установке Laravel через Composer, но перед этим нам потребуется база данных для нашего приложения.
Шаг 2 — Создание базы данных для приложения
Чтобы продемонстрировать основы установки и использования Laravel, мы создадим приложение travel list, показывающее список мест, куда хотят поехать пользователи, и места, где они уже побывали. Эти данные можно хранить в таблице places с полем для мест, которому мы присвоим имя name, а также с полем visited, где мы можем отметить места, которые пользователи посещали или не посещали. Также мы добавим поле id для уникальной идентификации каждой записи.
Чтобы подключиться к базе данных из приложения Laravel, мы создадим отдельного пользователя MySQL и предоставим этому пользователю полные права доступа к базе данных travellist.
На момент написания этого руководства собственная библиотека MySQL PHP mysqlnd не поддерживает метод аутентификации caching_sha2_authentication, используемый по умолчанию в MySQL 8. Для подключения к базе данных MySQL из кода PHP необходимо создать нового пользователя с помощью метода аутентификации mysql_native_password.
Для начала войдите в консоль MySQL как пользователь root базы данных:
Чтобы создать новую базу данных, запустите следующую команду в консоли MySQL:
CREATE DATABASE travellist
Теперь нам нужно предоставить этому пользователю разрешение для базы данных travellist:
После этого выйдите из оболочки MySQL:
Теперь вы можете проверить наличие у нового пользователя необходимых разрешений, выполнив повторный вход в консоль MySQL, на этот раз используя учетные данные вашего собственного пользователя:
Результат будет выглядеть следующим образом:
Создайте таблицу places в базе данных travellist. Из консоли MySQL запустите следующее выражение:
CREATE TABLE travellist.places INT AUTO_INCREMENT,
name VARCHAR,
visited BOOLEAN,
PRIMARY KEYid
Заполните таблицу places определенными образцами данных:
INSERT INTO travellist.places name, visited
VALUES , ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
,
Чтобы подтвердить, что данные были успешно сохранены в таблицу, запустите следующую команду:
SELECT * FROM travellist.places
Вы увидите примерно следующий вывод:
Убедившись в том, что у вас есть надлежащие данные в тестовой таблице, вы можете закрыть консоль MySQL:
Вы готовы создать приложение и настроить его для подключения к новой базе данных.
Шаг 3 — Создание нового приложения Laravel
Теперь мы создадим новое приложение Laravel, используя команду composer create-project. Эта команда Composer обычно используется для загрузки новых приложений на базе существующих инфраструктур и систем управления контентом.
В этом обучающем модуле мы будем использовать в качестве примера приложение travellist, но вы можете свободно изменить его на что-то другое. Приложение travellist отображает список мест, извлеченный с локального сервера MySQL. Оно создано для демонстрации основ конфигурации Laravel и проверки возможности подключения к базе данных.
Вначале откройте домашний каталог вашего пользователя:
Следующая команда создаст новый каталог travellist, содержащий базовое приложение Laravel с настройками по умолчанию:
create-project —prefer-dist laravel/laravel travellist
После завершения установки откройте каталог приложения и запустите команду Laravel artisan для проверки успешной установки всех компонентов:
Вывод будет выглядеть следующим образом:
Этот вывод подтверждает, что файл приложения присутствуют на месте, а инструменты командной строки Laravel работают надлежащим образом. Однако нам все равно необходимо настроить приложение для настройки базы данных и других параметров.
Шаг 4 — Настройка Laravel
Файлы конфигурации Laravel располагаются в директории config внутри корневой директории приложения. При установке Laravel с помощью Composer создается файл среды. Этот файл содержит настройки текущей среды, где выполняется приложение, и имеет приоритет перед обычными файлами конфигурации, расположенными в каталоге config. Для каждого случая установки в новую среду требуется персонализированный файл среды, где будут определены такие настройки, как параметры подключения к базе данных, параметры отладки, URL приложения и другие параметры, в зависимости от используемой приложением среды.
Предупреждение. Файл конфигурации среды содержит важную информацию о вашем сервере, включая учетные данные базы данных и ключи безопасности. В связи с этим не следует предоставлять этот файл в открытый доступ.
Теперь мы изменим файл .env для настройки конфигурации текущей среды приложения.
Откройте файл .env, используя предпочитаемый редактор командной строки. Здесь мы будем использовать nano:
Хотя в этом файле содержится много переменных конфигурации, вам не нужно настраивать их все. В следующем списке содержится обзор переменных, требующих внимания:
По умолчанию эти значения настроены для локальной среды разработки, которая использует Homestead, упакованный комплект Vagrant, который предоставляется Laravel. Мы изменим эти значения, чтобы отразить текущие настройки среды нашего приложения.
Если вы устанавливаете Laravel на систему, предназначенную для разработки или тестирования, вы можете оставить опцию APP_DEBUG включенной, чтобы получать важные данные отладки при тестировании приложения в браузере. В этом случае для переменной APP_ENV следует задать значение development или testing.
Если вы устанавливаете Laravel в производственной среде, вам необходимо будет отключить опцию APP_DEBUG, потому что она показывает конечному пользователю важные данные о вашем приложении. В этом случае для APP_ENV следует задать значение production.
Следующий файл .env содержит настройки нашего приложения-примера для разработки:
Примечание. Переменная APP_KEY содержит уникальный ключ, который был автоматически сгенерирован при установке Laravel с помощью Composer. Это значение изменять не нужно. Если вы хотите сгенерировать новый ключ безопасности, вы можете воспользоваться командой php artisan key:generate.
Измените переменные соответствующим образом. Завершив редактирование, сохраните и закройте файл для сохранения изменений. Если вы используете nano, то можете выйти, введя CTRL+X, а затем Y и Enter для подтверждения.
Теперь наше приложение Laravel настроено, но нам еще нужно настроить веб-сервер для доступа к нему через браузер. На следующем шаге мы настроим Nginx для обслуживания вашего приложения Laravel.
Шаг 5 — Настройка Nginx
Мы установили Laravel в локальную папку в домашнем каталоге удаленного пользователя. Хотя это подходит для локальной среды разработки, это не рекомендуется для веб-серверов, доступных через интернет. Мы переместим папку приложения в /var/www, где обычно хранятся веб-приложения, работающие на Nginx.
Используйте команду mv для перемещения папки приложения со всем ее содержимым в каталог /var/www/travellist:
Далее нам нужно дать пользователю веб-сервера доступ к папкам storage и cache, где Laravel хранит сгенерированные приложением файлы:
www-data.www-data /var/www/travellist/storage
www-data.www-data /var/www/travellist/bootstrap/cache
Теперь файлы приложения упорядочены, но нам еще нужно настроить Nginx для обслуживания контента. Для этого мы создадим новый файл конфигурации виртуального хоста в каталоге /etc/nginx/sites-available:
Следующий файл конфигурации содержит рекомендуемые настройки для приложений Laravel, работающих на Nginx:
Скопируйте этот текст в файл /etc/nginx/sites-available/travellist, и при необходимости измените выделенные значения для соответствия вашей конфигурации. Сохраните и закройте файл после завершения редактирования.
Чтобы активировать новый файл конфигурации виртуального хоста, создайте символическую ссылку на travellist в sites-enabled:
Примечание. Если вы ранее настраивали другой файл виртуального хоста для того же имени сервера server_name, которое использовалось в виртуальном хосте travellist, лучше отключите старую конфигурацию, удалив соответствующую ссылку из каталога /etc/nginx/sites-enabled/.
Чтобы подтвердить отсутствие ошибок синтаксиса в конфигурации, используйте команду:
Результат должен выглядеть следующим образом:
nginx: the configuration /etc/nginx/nginx.conf syntax is ok
nginx: configuration /etc/nginx/nginx.conf is successful
Чтобы применить изменения, перезагрузите Nginx с помощью следующей команды:
systemctl reload nginx
Вы увидите подобную страницу:
Это подтверждает, что ваш сервер Nginx надлежащим образом настроен для обслуживания Laravel. Теперь вы можете начать создание собственного приложения на основе созданной базовой структуры.
На следующем шаге мы изменим основной маршрут приложения для запроса базы данных через фасад Laravel DB.
Шаг 6 — Настройка главной страницы
Если вы выполнили все вышеперечисленные шаги, у вас должно быть работающее приложение Laravel и таблица базы данных places, содержащая образцы данных.
Теперь мы изменим главный маршрут приложения так, чтобы оно отправляло запрос в базу данных и выводило контент на экран приложения.
Откройте файл основного маршрута, routes/web.php:
Маршруты определяются в этом файле с использованием статического метода Route::get, который принимает путь и функцию обратного вызова в качестве аргументов.
Следующий код заменяет функцию обратного вызова основного маршрута. Она отправляет в базу данных 2 запроса, используя флаг visited для фильтрации результатов. Результаты выводятся на экран travellist, который мы создадим далее. Скопируйте следующий код в файл routes/web.php, заменив его содержимое:
Следующий шаблонг создает два списка мест на базе переменных visited и togo. Скопируйте следующий код в новый файл представления:
Сохраните и закройте файл после завершения. Откройте браузер и перезагрузите приложение. Страница будет выглядеть следующим образом:
Теперь у вас имеется работающее приложение Laravel, извлекающее содержимое из базы данных MySQL.
Заключение
В этом обучающем модуле мы настроили новое приложение Laravel поверх комплекта LEMP (Linux, Nginx, MySQL и PHP) на сервере Ubuntu 20.04. Также мы настроили маршрут по умолчанию для запроса базы данных и вывели результаты в отдельном представлении.
Теперь вы можете создавать новые маршруты и представления для любых дополнительных страниц, которые потребуются вашему приложению. Ознакомьтесь с официальной документацией Laravel, чтобы найти дополнительную информацию о маршрутах, представлениях и поддержке баз данных. Если вы развертываете приложение в производственной среде, ознакомьтесь также с разделом оптимизации, чтобы узнать о различных возможностях повышения производительности вашего приложения.
В этом руководстве мы поэтапно рассмотрим пример CRUD-приложения на Laravel 8. C RUD – это аббревиатура для «создать, прочесть, обновить, удалить» (от английских слов create, read, update, delete). Операции CRUD – это базовые функции, используемые при работе с данными и базой данных. Эта статья описывает CRUD-приложение на Laravel, которое будет выполнять все эти операции в одном месте — в таблице базы данных MySQL.
Мы объясним, как работает CRUD-операция на Laravel 8, и усовершенствуем простой и лучший способ научиться создавать, обновлять, удалять и редактировать с помощью базы данных. Прежде чем начать работать с Laravel 8 с нуля, новичок должен разбираться в таких вещах как: контроллер, маршруты, модальные окна, миграции и создание макетов тем в Laravel. Если вы все это уже знаете, давайте перейдем к примеру пошагового процесса CRUD на Laravel 8, начиная с азов.
Для начала создайте новый проект в Laravel 8, добавив следующую команду в терминал.
composer create-project —prefer-dist laravel/laravel laravelblog
Теперь вы сможете добавлять таблицы с помощью базы данных MySQL.
Теперь создайте модальное окно и миграцию, просто добавив в свой терминал указанную ниже команду, генерирующую модальное окно и миграцию, которая откроет вашу таблицу базы данных после запуска команды миграции.
php artisan make:model Post -m
Теперь вы можете увидеть, что в папке migration в вашей базе данных создан новый файл, такой же, как показано ниже. Теперь вам нужно добавить в базу данных столбцы.
Теперь, когда вы добавили столбцы, запустите следующую команду, которая сгенерирует таблицу в вашей базе данных.
Добавьте свойство fillable: Внутри вашего приложения/модального окна сгенерирован файл Post.php, в который вам нужно добавить свойства fillable.
В Laravel 8 в разделе маршрутов появились некоторые изменения: вам нужно использовать свой контроллер, а затем инициализировать класс контроллера. Откройте файл «routes / web.php» и укажите маршруты, как показано ниже.
Теперь вам нужно создать контроллер, просто добавив указанную ниже команду, и сгенерировать новый контроллер ресурсов – PostController.
php artisan make:controller PostController —resource
После выполнения данной команды вы найдете новый файл по следующему пути: «app / Http / Controllers / PostController.php». Там вы увидите уже сформированные методы, такие как показано ниже. Теперь вам нужно добавить следующие коды в ваши функции:
Теперь откройте файл PostController.php и добавьте в него приведенный ниже код.
На этом этапе, мы создаем наши файлы просмотра. Для начала создайте две папки: первая – «макет», а вторая – «записи». В папке макета создайте файл app.blade.php, а внутри папки записей создайте ещё один файл blade. Если вы не знаете, как интегрировать наши blade-файлы в Laravel, то сначала прочитайте Как интегрировать шаблон Bootstrap в админ-панели Laravel. Теперь создайте следующие blade-файлы для вашего CRUD-приложения.
Теперь давайте создадим следующие файлы и вставим в них соответствующий код.
Ну, вот мы и подошли к концу нашего пошагового руководства по работе с CRUD в Laravel 8. В рассмотренном нами CRUD-приложении мы использовали одну функцию для создания и редактирования. Давайте запустим этот пример CRUD-приложения. Примените приведенную ниже команду и посмотрите в свой браузер.
При этом пользователи не любят долгий процесс регистрации и авторизации на сайтах. Если вы подключите к своему веб-сервису опцию авторизации через аккаунт в социальной сети, большинство посетителей сайта воспользуются именно этой возможностью. Я покажу, как можно реализовать авторизацию через Gmail на основе пакетов JetStream и Socialite, шаг за шагом.
Если рассматриваемый нами фреймворк у вас еще не установлен, выполните приведенную ниже команду для инсталляции Laravel 8 и создания нового проекта:
composer create-project —prefer-dist laravel/laravel googleLogin
Следующая команда установит необходимую нам библиотеку JetStream:
composer require laravel/jetstream
Теперь мы установим составляющие системы авторизации – регистрацию, подтверждение адреса электронной почты и вход в личный кабинет. Для создания учетной записи группы пользователей понадобится дополнительный параметр. Используйте приведенную ниже команду:
php artisan jetstream:install livewire
Установим менеджер пакетов Node.js, npm:
Запустим менеджер пакетов:
Теперь запустим миграцию для создания базы данных:
Приведенная ниже команда установит пакет Socialite, который содержит API интерфейс для аутентификации через учетную запись Google. Выполните в командной строке следующую команду:
composer require laravel/socialite
Для подключения протокола авторизации Google OAuth необходимо использовать уникальный идентификатор приложения (Client ID) и секретный код (Client secret). Код и ID получают на сайте Google Developers Console в ходе создания нового проекта.
Откройте раздел Credentials, затем последовательно выберите OAuth и Create new Client ID. В результате вы увидите то же самое, что и на скриншотах, приведенных ниже.
После создания проекта и регистрации приложения скопируйте полученные идентификатор и секретный код. Внесите данные в файл конфигурации , как показано ниже.
Выполните приведенную ниже команду для создания миграции, в ходе которой в таблицу будет добавлен столбец с идентификатором и кодом авторизации Google ID:
php artisan make:migration add_google_id_column
Файл миграции должен выглядеть следующим образом:
После добавления столбца в таблицу базы нам нужно создать новый маршрут для обработки авторизации через Google. Добавьте приведенный ниже код в файл , расположенный по адресу .
После добавления маршрута нам необходимо создать метод, который будет обрабатывать ссылку на приложение в системе аутентификации Google. Для этого добавьте следующий код в файл , который расположен по адресу :
Создайте файл расположенный по адресу , внесите в него приведенный ниже код.
Все готово. Можно проверять в браузере – введите в адресную строку название вашего проекта и в конце добавьте /login.