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

Laravel — это один из самых популярных фреймворков для разработки веб-приложений и веб-сайтов на PHP. Он объективно-ориентированный, соблюдает модель MVC, поддерживает работу с несколькими базами данных, а также имеет множество инструментов для развёртывания ваших приложений и для упрощения процесса разработки.

В этой статье мы разберём, как выполняется установка Laravel Ubuntu 18.04 с помощью утилиты composer. Это намного проще, чем скачивать исходникии и устанавливать их вручную. Но для работы фреймворка вам будет необходимо иметь установленную базу данных, например MariaDB, и веб-сервер, например Nginx или Apache. Подробнее про установку всех этих компонентов читайте в статье установка LAMP в Ubuntu  или как настроить веб-сервер на собственном компьютере.

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

Пред тем, как мы перейдём непосредственно к установке, нам нужно ещё установить несколько компонентов. Сначала поставьте Composer, если его ещё нет:

sudo apt install composer

Я предполагаю, что интерпретатор php у вас уже установлен, но дополнительно нам понадобятся такие библиотеки:

sudo apt install php-mysql php-mbstring php-tokenizer php-xml php-json php-common

Теперь можно установить Laravel. Сначала перейдите в папку, где у вас будут находится веб-сайты. По умолчанию в Ubuntu это /var/www:

cd /var/www/sites

Для установки всего необходимого достаточно выполнить одну команду:

sudo composer create-project --prefer-dist laravel/laravel laravelapp

Словосочетание laravelapp замените на название проекта и папки, в которой будет расположен ваш новый проект. Утилита автоматически скачает сам фреймворк и все его зависимости. После завершения установки вам нужно только выставить правильные права на файлы фреймворка. Их владельцем должен быть тот пользователь, от имени которого запускается веб-сервер и php. По умолчанию это www-data:

sudo chown -R www-data:www-data laravelapp

Для полноценной работы фреймворка нужна база данных. В этом примере мы настроим базу данных MariaDB. Подключитесь к базе данных и создайте новую таблицу:

sudo mysql -u root -p

> CREATE DATABASE laravel;

Затем создайте пользователя для этой базы данных и дайте ему все права на неё:

> CREATE USER `laravel_user`@`localhost` IDENTIFIED BY 'password';
> GRANT ALL ON laravel.* TO `laravel_user`@`localhost`;

Далее обновите таблицу привилегий:

> FLUSH PRIVILEGES;

По умолчанию Laravel настроен на использование  нужной нам базы данных, но вам надо указать правильные параметры доступа к ней. Откройте файл config/database.php и найдите там секцию mysql:

vi config/database.php

Синтаксис здесь очень простой. Это обычный массив php, особенность здесь в том, что программа пытается брать нужную конфигурацию из переменных окружения с помощью функции env. Если переменная окружения не задана, то берётся второй аргумент. Его вам и следует изменить. Измените имя базы данных (database), имя пользователя (username) и пароль пользователя (password). Если база данных расположена на этом же хосте, адрес хоста и порт можно оставить как есть.

Настройка веб-сервера для Laravel

Осталось проверить, как всё работает. Вы можете запустить Laravel без внешнего веб-сервера, только средствами встроенной утилиты artisan:

php artisan serve

Эта команда запускает собственный веб-сервер, который доступен по адресу 127.0.0.1:8000:

Но такой подход не очень практичен. Обычно нам необходимо запускать веб-приложения в Apache или Nginx. В Apache никаких особых настроек не нужно. Достаточно создать виртуальный хост для директории, где находится laravel и включить для него поддержку AllowOverride. Например, создайте такой файл в директории sites-available:

sudo vi /etc/apache2/sites-available/laravelapp.conf

<VirtualHost *:80>
ServerName laravelapp.ru
ServerAdmin webmaster@localhost
DocumentRoot /var/www/sites/laravelapp/public
<Directory "/var/www/sites/laravelapp/public">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

 

Здесь мы используем домен lavarelapp.ru и наши файлы расположены в директории /var/www/sites/laravelapp. Теперь нужно активировать этот сайт в apache:

sudo a2ensite laravelapp

sudo systemctl restart apache2

Домен laravelapp.ru виртуальный, он мне не принадлежит и вам, думаю, тоже, поэтому нужно добавить такую строчку в файл /etc/hosts, чтобы на локальной машине всё работало:

sudo vi /etc/hosts

127.0.01 laravelapp.ru

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

Конфигурация веб-сервера Nginx выглядит немного по-другому. Здесь не поддерживаются файлы .httaccess, поэтому нам нужно включить перенаправение всех запросов на index.php в основном конфигурационном файле:

sudo vi /etc/nginx/sites-available/laravelapp.conf

server {
listen 80;
listen [::]:80;
server_name laravelapp.ru
root /var/www/sites/laravelapp/;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
}

Дальше вам нужно активировать этот сайт и перезапустить nginx. Также отметьте, что настройки php в nginx я здесь не привожу, но они тоже должны присутствовать.

Источник

Понравилась статья? Поделиться с друзьями: