Фреймворк Laravel пользуется популярностью за счет ряда факторов:
- он объектно-ориентированный;
- соблюдается модель MVC;
- доступна поддержка нескольких баз данных.
Кроме того, в нем доступна масса инструментов для развертывания приложений и упрощения веб-разработки. Рассмотрим, как выглядит установка Laravel на Ubuntu.
Подготовка к установке
Чтобы запустить на веб-сервере Laravel, в Ubuntu необходимо удовлетворить ряд зависимостей. Все необходимые для работы компоненты имеются в наличии на виртуальной машине Laravel Homestead. Поэтому разработчики рекомендуют использовать именно ее для запуска на локальной машине.
Тем не менее, развертывать и тестировать приложения в основном придется на веб-серверах с Linux, а не на Homestead. Чтобы установить Laravel на таком веб-сервере, на нем должны быть установлена версия PHP >= 7.2.0 и следующие расширения PHP:
- BCMath PHP Extension;
- Ctype PHP Extension;
- JSON PHP Extension;
- Mbstring PHP Extension;
- OpenSSL PHP Extension;
- PDO PHP Extension;
- Tokenizer PHP Extension;
- XML PHP Extension.
В Ubuntu эти зависимости можно установить при помощи команды в терминале:
sudo apt install php php-mysql php-mbstring php-tokenizer php-xml php-json php-common
Об успешной установке будут свидетельствовать следующие строки в терминале:
Установка через Composer
Чтобы работать с Laravel потребуется предварительно установить Composer, поскольку фреймворк управляет с его помощью своими зависимостями:
sudo apt install composer
После установки появится сообщение об автоматической настройке следующих пакетов:
Теперь можно переходить непосредственно к установке фреймворка. Сначала необходимо загрузить его установщик через Composer:
composer global require laravel/installer
В некоторых случаях выполнение этой команды может занять определенное время.
Далее, обязательно нужно поместить общесистемный каталог bin от Composer в свой каталог $PATH. Это позволит Ubuntu распознать исполняемый файл Laravel.
Этот каталог расположен в разных местах, в зависимости от дистрибутива. В Ubuntu он располагается по следующему пути:
$HOME/.config/composer/vendor/bin
Пользователи других дистрибутивов могут поискать здесь:
$HOME/.composer/vendor/bin
Использование Laravel Installer
Запустить установщик Laravel в Composer можно следующей командой в терминале:
composer global about
После ее выполнения отобразится список, где фреймворк будет расположен в первых рядах.
Далее достаточно ввести команду laravel new, после чего свежий фреймворк Laravel будет установлен в заранее указанном каталоге. К примеру, данная команда позволит создать папку под названием blog, где будут находиться Laravel со всеми установленными зависимостями:
laravel new blog
Запуск фреймворка через Composer Create-Project
В Composer поддерживается возможность установки Laravel через команду сomposer create-project:
composer create-project --prefer-dist laravel/laravel blog
Эту команду необходимо выполнять, предварительно перейдя в папку, где будет храниться будущий сайт. Например, на локальном сервере Apache по умолчанию это каталог: cd /var/www/.
Работа на локальном сервере
После того, как Laravel установлен, следует убедиться в его работоспособности с помощью скрипта командной строки artisan (Artisan CLI). Для этого надо активировать встроенный в PHP локальный сервер с помощью команды:
php artisan serve
После ее ввода станет доступен локальный сервер по адресу http://localhost:8000. Перейдя по нему, можно увидеть заставку-приветствие «You have arrived» («Вы прибыли»).
Чтобы увидеть полный список команд для artisan, введите:
php artisan list
Последующая настройка
Публичная директория
Когда Laravel будет успешно установлен, сразу же потребуется настроить перенаправление файлов приложения в общедоступную папку /public. Файл index.php в этом каталоге используется как фронт-контроллер для всех HTTP-запросов, поступающих в создаваемое приложение.
Файлы настроек
Конфигурационные файлы — это PHP-скрипты, хранящиеся в application/config и вложенных подпапках.
Сами файлы представляет собой набор пар ключ массива => значение, где «ключ» — имя отдельной опции.
Права на доступ
В большинстве случаев, при настройке Laravel будет нужно отредактировать права доступа к директории /var/www, где по умолчанию хранятся веб-приложения. В противном случае фреймворк не сможет нормально функционировать.
Как получить права доступа
1. Добавить себя в группу владельцев веб-сервера www-data:
sudo usermod -a -G www-data $USER
Если пользователь вошел с root правами, этот пункт опускается.
2. Изменить права владельца на Laravel-проект командой:
sudo chgrp -R www-data /var/www/html/project
3. Даются права на запись в папку-хранилище storage:
sudo chmod -R 775 /var/www/html/project/storage
Для пользователя root (помимо первого пункта) из алгоритма исключается команда sudo.
Ключ приложения
Еще одна необходимая вещь, которую обязательно стоит сделать, когда Laravel установлен на хостинге – создать ключ приложения. При отсутствии установленного ключа приложения сеансы пользователей и другая конфиденциальная информация не будут защищены.
Он представляет собой случайно сгенерированную строку в 32 символа. Если для установки использовался Composer или установщик Laravel, ключ автоматически создается указанной командой:
php artisan key:generate
После создания ключ следует вписать как параметр в файл окружения .env. Если такой файл первоначально существовал в Laravel с расширением .env.example, то следует обязательно изменить расширение на .env.
Дополнительная настройка
Laravel сразу же после установки почти не нуждается в более подробном конфигурировании. Однако при желании можно ознакомиться с файлом конфигурации config/app.php и его документацией.
В нем указано несколько параметров, включая часовой пояс и локализацию, которые можно изменить с учетом особенностей разрабатываемого приложения.
Настройка веб-сервера
Настройка общедоступной директории
После установки и настройки Laravel нужно обязательно указать встроенную во фреймворк папку public в качестве корневого каталога веб-сервера. К этой общедоступной папке будут идти все входящие обращения из Сети. Обрабатывать входящие HTTP-запросы будет расположенный в public файл фронт-контроллер index.php.
Настройка веб-адресов
Apache
В установленном Laravel по умолчанию присутствует файл public/.htaccess. Он используется для того, чтобы URL-адреса отображались без указания фронт-контроллера index.php. Если Laravel установлен на веб-сервере Apache, для этого следует активировать модуль mod_rewrite. Тогда веб-сервер будет учитывать опции файла .htaccess.
Возможно, включенный в Laravel файл .htaccess не сможет заработать на установленном сервере. Тогда решить проблему может созданный аналогичный файл со следующим кодом:
Options +FollowSymLinks -Indexes RewriteEngine On RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L]
Nginx
Пользователям Nginx потребуется добавить еще одну директиву в конфигурации сайта. Она направит все запросы на фронт-контроллер index.php:
location / { try_files $uri $uri/ /index.php?$query_string; }