Фреймворк 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

Установка Laravel в Ubuntu

Об успешной установке будут свидетельствовать следующие строки в терминале:

Установка Laravel в Ubuntu

Установка через Composer

Чтобы работать с Laravel потребуется предварительно установить Composer, поскольку фреймворк управляет с его помощью своими зависимостями:

sudo apt install composer

Установка Laravel в Ubuntu

После установки появится сообщение об автоматической настройке следующих пакетов:

Установка Laravel в Ubuntu

Теперь можно переходить непосредственно к установке фреймворка. Сначала необходимо загрузить его установщик через Composer:

composer global require laravel/installer

Установка Laravel в Ubuntu

В некоторых случаях выполнение этой команды может занять определенное время.

Установка Laravel в Ubuntu

Далее, обязательно нужно поместить общесистемный каталог 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 в Ubuntu

Работа на локальном сервере

После того, как Laravel установлен, следует убедиться в его работоспособности с помощью скрипта командной строки artisan (Artisan CLI). Для этого надо активировать встроенный в PHP локальный сервер с помощью команды:

php artisan serve

Установка Laravel в Ubuntu

После ее ввода станет доступен локальный сервер по адресу http://localhost:8000. Перейдя по нему, можно увидеть заставку-приветствие «You have arrived» («Вы прибыли»).

Установка Laravel в Ubuntu - 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;
}