Создание и запуск проекта Laravel в ServBay
Обзор
ServBay — это современная среда для локальной веб-разработки, доступная для macOS и Windows. Она содержит целый спектр популярных инструментов и сервисов: PHP, Node.js, Python, Go, Java, различные базы данных (MySQL, PostgreSQL, MongoDB), серверы кеширования (Redis, Memcached), а также веб-серверы (Caddy, Nginx, Apache).
Данный документ поможет вам быстро создать, настроить и запустить проект Laravel в среде ServBay. Вы сможете воспользоваться предустановленным PHP, менеджером пакетов Composer и функционалом удобного управления сайтами (ранее — "хостами") для упрощения процесса разработки.
Что такое Laravel?
Laravel — это популярный, открытый PHP-фреймворк для создания веб-приложений, разработанный Тейлором Отвеллом. Он реализует архитектуру MVC (Model-View-Controller) и предлагает множество встроенных функций, предназначенных для упрощения задач, таких как аутентификация пользователей, маршрутизация, управление сессиями, кеширование и работа с базами данных. Laravel известен своим элегантным синтаксисом, широкой функциональностью и сильной поддержкой сообщества — это отличный выбор для разработки современных и поддерживаемых веб-приложений.
Основные преимущества Laravel
- Элегантный синтаксис: Чистый, понятный и выразительный код повышает скорость разработки и читабельность.
- Eloquent ORM: Мощная реализация ActiveRecord, делающая взаимодействие с базой данных простым и удобным.
- Консоль Artisan: Полезные команды для миграций, генерации кода, тестирования и прочих задач.
- Шаблонный движок Blade: Легкая и лаконичная разметка для построения динамических представлений.
- Богатая экосистема: Множество официальных и сторонних пакетов, легко интегрируемых через Composer.
- Активное сообщество: Обилие ресурсов, инструкций и решений от разработчиков по всему миру.
Преимущества разработки Laravel в ServBay
ServBay открывает для разработчиков Laravel ряд преимуществ:
- Интегрированная среда: Уже предустановлены различные версии PHP, Composer, базы данных и кеширующие сервисы — дополнительная настройка не нужна.
- Удобное управление: В графическом интерфейсе ServBay можно быстро переключать версии PHP, управлять конфигурацией сайтов, запускать и останавливать сервисы.
- Оптимизированный веб-сервер: ServBay по умолчанию использует Caddy с оптимальной настройкой для популярных PHP-фреймворков, включая Laravel, что облегчает старт.
- Поддержка HTTPS: Для доменов вида
.local
автоматически выдаются SSL-сертификаты от ServBay User CA, а соединения по HTTPS включены, что позволяет разрабатывать в условиях, близких к боевым.
Создание проекта Laravel
Рекомендуется хранить ваши сайты в следующих папках для удобной организации:
- macOS:
/Applications/ServBay/www
- Windows:
C:\ServBay\www
Проверьте Composer
Composer уже установлен вместе с ServBay — отдельно скачивать его не нужно. Для проверки воспользуйтесь терминалом:
bashcomposer --version
1Если выводится версия Composer — инструмент готов к работе.
Создайте новый проект Laravel
Откройте терминал, перейдите в рекомендуемую директорию для сайтов ServBay и выполните команду создания проекта. Пусть папка называется
servbay-laravel-app
:macOS:
bashcd /Applications/ServBay/www # Создать папку проекта mkdir servbay-laravel-app # Войти в папку проекта cd servbay-laravel-app # Установить Laravel в текущую директорию через Composer composer create-project --prefer-dist laravel/laravel .
1
2
3
4
5
6
7Windows:
cmdcd C:\ServBay\www # Создать папку проекта mkdir servbay-laravel-app # Войти в папку проекта cd servbay-laravel-app # Установить Laravel в текущую директорию через Composer composer create-project --prefer-dist laravel/laravel .
1
2
3
4
5
6
7Composer скачает и установит Laravel вместе с зависимостями.
Перейдите в папку проекта
Убедитесь, что вы открыли корневую директорию только что созданного проекта:
macOS:
bashcd /Applications/ServBay/www/servbay-laravel-app
1Windows:
cmdcd C:\ServBay\www\servbay-laravel-app
1
Начальная настройка
Создайте ключ приложения
Ключ приложения нужен для защиты пользовательских сессий и шифрования данных. Сгенерируйте ключ через Artisan из корня проекта:
Пути к корню проекта:
- macOS:
/Applications/ServBay/www/servbay-laravel-app
- Windows:
C:\ServBay\www\servbay-laravel-app
bashphp artisan key:generate
1Эта команда установит значение
APP_KEY
в вашем.env
файле.- macOS:
Настройте переменные среды
.env
В файле
.env
, расположенном в корне проекта, находятся параметры окружения, такие как настройки БД и URL приложения. Отредактируйте его с учетом своих требований. Пример базовой конфигурации:dotenvAPP_NAME=ServBay Laravel Demo APP_ENV=local APP_KEY=base64:... # Это значение сгенерировано командой php artisan key:generate APP_DEBUG=true APP_URL=https://servbay-laravel-test.local LOG_CHANNEL=stack # Пример настройки базы данных (MySQL) DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=servbay_laravel_app # Имя базы данных DB_USERNAME=root # Пользователь по умолчанию в ServBay DB_PASSWORD=password # Пароль по умолчанию в ServBay # Пример настройки кеша/очередей (Redis) CACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # Redis без пароля по умолчанию REDIS_PORT=6379 # Пример настройки кеша/очередей (Memcached) # CACHE_STORE=memcached # MEMCACHED_HOST=127.0.0.1 # MEMCACHED_PORT=11211
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26Внимание: Подбирайте параметры (
DB_*
,REDIS_*
,MEMCACHED_*
) согласно используемым сервисам. Данные для подключения к СУБД смотрите в панели управления ServBay.
Настройка веб-сервера (добавление сайта в ServBay)
С помощью менеджера сайтов ServBay соедините ваш домен с директорией public
в вашем Laravel-проекте.
Откройте панель управления ServBay
Запустите приложение ServBay и переключитесь в панель управления.
Добавьте новый сайт
Найдите раздел "Сайты" в панели ServBay, нажмите кнопку добавления (
+
или похожий значок).Заполните данные сайта
Например:
Имя (Name):
My First Laravel Dev Site
(любое для вашего удобства)Домен (Domain):
servbay-laravel-test.local
(URL для браузера)Тип сайта (Site Type):
PHP
Версия PHP (PHP Version): выберите актуальную версию для вашего Laravel, например
8.3
.Корень сайта (Site Root):
- macOS:
/Applications/ServBay/www/servbay-laravel-app/public
- Windows:
C:\ServBay\www\servbay-laravel-app\public
(Важно: Выбирайте подпапку
public
в корне Laravel-проекта)- macOS:
Подробнее о способах и опциях — смотрите официальную документацию ServBay по добавлению сайта (ищите версию на английском).
Сохраните и примените изменения
После сохранения конфигурации ServBay автоматически обновит настройки веб-сервера (по умолчанию — Caddy). Следуйте подсказкам системы, если требуется перезапустить веб-сервер.
Проверка работы
Теперь вы можете открыть свой Laravel-сайт по выбранному домену.
Откройте браузер
Введите домен, например:
https://servbay-laravel-test.local
Проверьте результат
Если всё настроено корректно — появится приветственная страница Laravel.
Добавление простого примера кода
Для быстрой проверки функциональности можно добавить простой маршрут в routes/web.php
, чтобы выводить "Hello ServBay!".
В директории проекта найдите routes/web.php
и измените/добавьте строку:
php
<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Здесь вы регистрируете маршруты сайта.
| Они загружаются RouteServiceProvider в группу 'web' middleware.
| Создайте что-нибудь крутое!
|
*/
Route::get('/', function () {
return 'Hello ServBay!'; // Измените или добавьте эту строку
});
// ... Другие маршруты
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Сохраните файл, затем обновите страницу по адресу https://servbay-laravel-test.local
— увидите сообщение Hello ServBay!
.
Примеры интеграции базы данных
Laravel предлагает мощную работу с базами данных и ORM (Eloquent). ServBay предустановлен с MySQL, PostgreSQL, MongoDB, Redis, Memcached — готово для локальных тестов.
Пример NoSQL-базы
Redis и Memcached работают "из коробки", PHP-модули подгружены.
Memcached: пример
Настройте
.env
Добавьте параметры подключения Memcached:
dotenvCACHE_STORE=memcached MEMCACHED_HOST=127.0.0.1 MEMCACHED_PORT=11211 # Порт по умолчанию
1
2
3Использование Memcached
В роутере или контроллере Laravel используйте фасад кеша:
В
routes/web.php
добавьте:phpuse Illuminate\Support\Facades\Cache; Route::get('/memcached-test', function () { // Сохраняем данные в кэш на 10 минут (600 секунд) Cache::put('servbay_memcached_key', 'Hello from Memcached on ServBay!', 600); // Получаем данные из кэша $value = Cache::get('servbay_memcached_key'); if ($value) { return "Данные Memcached: " . $value; } else { return "Данные Memcached не найдены или срок действия истёк."; } });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Проверьте результат по адресу
https://servbay-laravel-test.local/memcached-test
.
Redis: пример
Настройте
.env
Пример настроек для Redis:
dotenvCACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # Без пароля REDIS_PORT=6379 # Порт по умолчанию
1
2
3
4Внимание: Если тестируете только Redis или Memcached, активируйте через
CACHE_STORE
только нужный сервис, остальной закомментируйте.Использование Redis
В роутере или контроллере Laravel используйте фасады Redis или Cache:
В
routes/web.php
добавьте:phpuse Illuminate\Support\Facades\Redis; // Или Cache, если CACHE_STORE=redis // use Illuminate\Support\Facades\Cache; Route::get('/redis-test', function () { // Через Redis facade Redis::set('servbay_redis_key', 'Hello from Redis on ServBay!'); $value_redis = Redis::get('servbay_redis_key'); // Или через Cache facade (если CACHE_STORE=redis) // Cache::put('servbay_redis_key', 'Hello from Redis on ServBay!', 600); // $value_cache = Cache::get('servbay_redis_key'); return "Данные Redis: " . $value_redis; });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Проверьте результат по адресу
https://servbay-laravel-test.local/redis-test
.
Пример работы с реляционными СУБД (MySQL и PostgreSQL)
В ServBay заранее установлены MySQL и PostgreSQL. Подключение Laravel через Eloquent ORM просто и возможно сразу.
Сначала создайте базу данных для проекта через любой инструмент (phpMyAdmin, Adminer, pgAdmin — доступны через панель ServBay) или в консоли. Пусть база называется servbay_laravel_app
.
Дальше выполните миграцию для создания таблицы.
Создайте миграцию
Выполните команду для создания миграции из корня проекта:
bashphp artisan make:migration create_accounts_table --create=accounts
1Файл миграции появится в
database/migrations
.Отредактируйте файл миграции
Откройте файл вида
YYYY_MM_DD_HHMMSS_create_accounts_table.php
, добавьте поля в методup
:php<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Запустить миграции. */ public function up(): void { Schema::create('accounts', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); // добавит столбцы created_at и updated_at }); } /** * Откатить миграции. */ public function down(): void { Schema::dropIfExists('accounts'); } };
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29Сохраните изменения.
Запустите миграции
В терминале:
bashphp artisan migrate
1Если база данных настроена и существует, команда создаст таблицу
accounts
, а также стандартные для Laravel:users
,password_reset_tokens
,failed_jobs
,cache
,cache_locks
,jobs
,job_batches
и др.
MySQL: пример
Настройте
.env
для MySQLУбедитесь, что ваши настройки следующие:
dotenvDB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 # стандартный порт DB_DATABASE=servbay_laravel_app DB_USERNAME=root DB_PASSWORD=password # стандартный пароль
1
2
3
4
5
6Добавьте тестовые данные
В файле
routes/web.php
:phpuse Illuminate\Support\Facades\DB; Route::get('/mysql-add-account', function () { DB::table('accounts')->insert([ 'name' => 'ServBay Demo User', 'email' => 'demo-user@servbay.test', 'created_at' => now(), 'updated_at' => now(), ]); return 'Аккаунт добавлен в MySQL!'; });
1
2
3
4
5
6
7
8
9
10
11Откройте
https://servbay-laravel-test.local/mysql-add-account
для теста.Чтение данных
В том же файле:
phpuse App\Models\Account; // если есть модель Account // или напрямую через DB facade Route::get('/mysql-accounts', function () { // Через DB facade $accounts = DB::table('accounts')->get(); // Или через Eloquent ORM (если есть модель) // $accounts = Account::all(); return $accounts; });
1
2
3
4
5
6
7
8
9
10
11
12Просмотрите по адресу
https://servbay-laravel-test.local/mysql-accounts
.
PostgreSQL: пример
Настройте
.env
для PostgreSQLДля работы с PostgreSQL, поменяйте параметры:
dotenvDB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 # стандартный порт PostgreSQL DB_DATABASE=servbay_laravel_app DB_USERNAME=root # стандартный пользователь ServBay DB_PASSWORD=password # стандартный пароль
1
2
3
4
5
6Внимание: После переключения типа базы данных — заново выполните
php artisan migrate:refresh
илиphp artisan migrate
, чтобы структура таблиц соответствовала используемой СУБД.Вставка данных (PostgreSQL)
Добавьте маршрут:
phpuse Illuminate\Support\Facades.DB; Route::get('/pgsql-add-account', function () { DB::table('accounts')->insert([ 'name' => 'ServBay PG Demo User', 'email' => 'pg-demo-user@servbay.test', 'created_at' => now(), 'updated_at' => now(), ]); return 'Аккаунт добавлен в PostgreSQL!'; });
1
2
3
4
5
6
7
8
9
10
11Откройте
https://servbay-laravel-test.local/pgsql-add-account
.Чтение данных (PostgreSQL)
В том же файле:
phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql-accounts', function () { $accounts = DB::table('accounts')->get(); return $accounts; });
1
2
3
4
5
6Откройте
https://servbay-laravel-test.local/pgsql-accounts
.
Заключение
С помощью ServBay вы с легкостью развернете локальную среду для создания и запуска Laravel-проектов. Предустановленные PHP, Composer, Caddy, базы данных и кеширующие сервисы позволяют быстро начать работу без сложных настроек. Прямо из коробки вы можете создавать новые приложения, настраивать веб-сервер, интегрировать и тестировать работу с базой данных и кешем. ServBay делает локальную разработку быстрой, простой и максимально приближенной к реальным условиям.
Если у вас возникнут вопросы — обратитесь к официальной документации ServBay или получите помощь от сообщества.