Создание и запуск проекта Laravel в ServBay
Обзор
ServBay — это мощная локальная среда для веб-разработки, созданная специально для macOS. Она объединяет множество популярных пакетов: 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: Полезные CLI-инструменты для миграции, генерации кода, запуска тестов и других задач.
- Шаблонизатор Blade: Удобный лаконичный синтаксис для построения динамических представлений.
- Развитая экосистема: Огромное количество официальных и сторонних пакетов, легко подключаемых через Composer.
- Сильная поддержка сообщества: Активные пользователи, масса обучающих материалов и готовых решений.
Преимущества работы с Laravel в ServBay
ServBay значительно упрощает жизнь Laravel-разработчику:
- Интегрированная среда: Предустановлены разные версии PHP, Composer и популярные базы данных/кеши — не требуется ручная настройка.
- Удобное управление: Через графический интерфейс ServBay можно легко переключать версии PHP, управлять сайтами и сервисами.
- Оптимизированный веб-сервер: По умолчанию используется Caddy с готовой конфигурацией для популярных PHP-фреймворков, включая Laravel.
- Поддержка HTTPS: Для доменов
.local
автоматически выпускается SSL-сертификат от ServBay User CA — удобная и безопасная локальная разработка, максимально приближенная к «боевым» условиям.
Создание проекта Laravel
Рекомендуется хранить все сайты в каталоге /Applications/ServBay/www
— это обеспечивает порядок и удобство управления.
Проверьте, что Composer установлен
Composer уже установлен вместе с ServBay — ничего дополнительно делать не нужно. Проверьте его доступность в терминале:
bashcomposer --version
1Если увидели номер версии — Composer успешно настроен.
Создайте новый проект Laravel
Откройте терминал, перейдите в каталог для сайтов и с помощью Composer создайте новый проект Laravel. Назовём папку
servbay-laravel-app
: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
7Composer скачает и установит Laravel и все зависимости.
Перейдите в каталог проекта
Убедитесь, что находитесь в корне только что созданного Laravel-проекта:
bashcd /Applications/ServBay/www/servbay-laravel-app
1
Первоначальная настройка
Генерируем ключ приложения
Laravel использует ключ приложения (APP_KEY) для защиты сессий и шифрования данных. Выполните команду из корня проекта (
/Applications/ServBay/www/servbay-laravel-app
):bashphp artisan key:generate
1Эта команда пропишет значение APP_KEY в ваш
.env
файл.Настройте переменные окружения (
.env
)Laravel хранит настройки среды в файле
.env
: данные для подключения к БД, адрес сайта и прочее. Откройте файл.env
в корне проекта и внесите необходимые правки. Удостоверьтесь, что базовые параметры указаны верно: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 # В ServBay по умолчанию 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
(адрес для браузера) - Тип сайта (Site Type):
PHP
- Версия PHP (PHP Version): выберите подходящую версию PHP, напр.,
8.3
. - Корень сайта (Site Root):
/Applications/ServBay/www/servbay-laravel-app/public
(Внимание: путь должен указывать строго на папкуpublic
вашего Laravel-проекта)
Более подробную инструкцию и дополнительные параметры смотрите в официальной документации ServBay по добавлению первого сайта (ищите англоязычную версию).
- Имя (Name):
Сохраните и примените изменения
Сохраните настройки сайта. ServBay автоматически обновит конфигурацию веб-сервера (по умолчанию Caddy). Если потребуется перезапуск, следуйте инструкции в интерфейсе.
Проверяем доступность сайта
Теперь ваш Laravel-проект должен быть доступен по указанному домену.
Откройте браузер
В адресной строке наберите настроенный домен, например,
https://servbay-laravel-test.local
.Проверьте результат
Если всё сделано верно, появится приветственная страница Laravel.
Добавление простого примера кода
Для быстрой проверки можно добавить в файл routes/web.php
простой маршрут, возвращающий "Hello ServBay!".
Откройте routes/web.php
вашего проекта и добавьте/измените следующее:
<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return 'Hello ServBay!'; // Изменить или добавить эту строку
});
// ... другие маршруты
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)
Redis и Memcached интегрированы в ServBay, требуемые PHP-расширения уже подключены.
Пример Memcached
Настройте
.env
В файле
.env
пропишите параметры для соединения с Memcached (если еще не настроены):dotenvCACHE_STORE=memcached MEMCACHED_HOST=127.0.0.1 MEMCACHED_PORT=11211 # Стандартный порт Memcached в ServBay
1
2
3Работа с Memcached
Используйте фасад Laravel Cache для взаимодействия с Memcached, например так (в
routes/web.php
):phpuse Illuminate\Support\Facades\Cache; Route::get('/memcached-test', function () { // Сохраняем данные в cache на 10 минут (600 секунд) Cache::put('servbay_memcached_key', 'Hello from Memcached on ServBay!', 600); // Получаем данные из cache $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 # В ServBay для Redis по умолчанию не требуется пароль REDIS_PORT=6379 # Стандартный порт Redis в ServBay
1
2
3
4Внимание: если конфигурируете Memcached и Redis одновременно, активируйте нужный сервис только по параметру
CACHE_STORE
(остальной закомментирован).Работа с Redis
Вы можете работать как через фасад Redis, так и через Cache (если выбрано
CACHE_STORE=redis
):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 (если 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Если настройки подключения к базе корректны и база
servbay_laravel_app
уже создана, команда создаст таблицуaccounts
и стандартные таблицы Laravel.
Пример для MySQL
Настройте
.env
для MySQLУкажите настройки подключения к MySQL:
dotenvDB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 # Стандартный порт MySQL в ServBay DB_DATABASE=servbay_laravel_app DB_USERNAME=root DB_PASSWORD=password # Пароль по умолчанию
1
2
3
4
5
6Запись тестовых данных
Добавьте маршрут в
routes/web.php
для вставки записи в таблицуaccounts
:phpuse Illuminate\Support\Facades\DB; Route::get('/mysql-add-account', function () { DB::table('accounts')->insert([ 'name' => 'ServBay Demo User', 'email' => '[email protected]', 'created_at' => now(), 'updated_at' => now(), ]); return 'Account added to 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 (если есть Account) // $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 в ServBay 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' => '[email protected]', 'created_at' => now(), 'updated_at' => now(), ]); return 'Account added to 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 вы легко организуете локальную среду на macOS для создания и запуска проектов Laravel. Предустановленные PHP, Composer, сервер Caddy, базы данных и кэш-сервисы позволяют максимально быстро развернуть и настроить проект. Пара несложных шагов — и вы уже создаёте новый сайт, настраиваете сервер и среды, интегрируете и тестируете базы и кэш.
Если у вас возникнут вопросы — обращайтесь к официальной документации ServBay или ищите помощь в сообществе.