Створення та запуск проекту 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 — популярний open-source фреймворк для створення веб додатків на PHP, розроблений Taylor Otwell. Він базується на архітектурі MVC (Model-View-Controller), надає багато готових можливостей для типових задач веб-розробки: автентифікація, маршрутизація, керування сесіями, кешування, робота з базою даних. Laravel славиться чистою, зрозумілою синтаксисом, багатим функціоналом та сильною спільнотою. Це ідеальний вибір для розробки сучасних та підтримуваних веб-додатків.
Основні переваги Laravel
- Елегантний синтаксис: Лаконічний, виразний код, що спрощує розробку і підвищує читабельність.
- Eloquent ORM: Потужна імплементація патерну ActiveRecord для легкої взаємодії з базою даних.
- Artisan-консоль: Зручний CLI-інструмент для міграцій, генерації коду, запуску тестів тощо.
- Blade-шаблонізатор: Проста та ефективна система шаблонів для створення динамічних інтерфейсів.
- Розвинена екосистема: Велика кількість офіційних і сторонніх пакетів, які легко підключаються через Composer.
- Активна спільнота: Багато навчальних матеріалів та рішень від розробників з усього світу.
Переваги розробки Laravel у ServBay
ServBay надає значні переваги розробникам Laravel:
- Інтегроване середовище: ServBay містить кілька версій PHP, Composer, а також бази даних та сервіси кешування без необхідності окремої інсталяції.
- Просте керування: Завдяки графічному інтерфейсу ви легко перемикаєте версії PHP, налаштовуєте конфігурацію сайтів й керуєте службами.
- Готовий веб-сервер: За замовчуванням використовується Caddy з оптимізованими налаштуваннями для популярних PHP-фреймворків, зокрема Laravel.
- Підтримка HTTPS: SSL-сертифікат для доменів з кінцівкою
.localвстановлюється автоматично, що забезпечує безпечне й наближене до продакшн-середовища тестування вашого сайту.
Створення проекту Laravel
ServBay рекомендує зберігати веб-проекти у таких папках для зручності та організованості:
- macOS:
/Applications/ServBay/www - Windows:
C:\ServBay\www
Перевірка Composer
Composer вже інтегровано у ServBay; окремо встановлювати його не потрібно. Перевірте у терміналі:
bashcomposer --version1При коректному виконанні з’явиться номер версії, що означає готовність Composer.
Створення нового Laravel-проекту
Відкрийте термінал, перейдіть до рекомендованої папки й створіть каталог проекту
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 та всі залежності.
Перехід у каталог проекту
Переконайтеся, що працюєте у кореневій папці нового Laravel-проекту:
macOS:
bashcd /Applications/ServBay/www/servbay-laravel-app1Windows:
cmdcd C:\ServBay\www\servbay-laravel-app1
Початкове налаштування
Генерація ключа застосунку
Laravel використовує ключ для захисту сесій та шифрування даних. Згенеруйте його з допомогою Artisan у кореневій папці:
Шлях до проекту:
- macOS:
/Applications/ServBay/www/servbay-laravel-app - Windows:
C:\ServBay\www\servbay-laravel-app
bashphp artisan key:generate1Команда створить і запише ключ (
APP_KEY) у файл.env.- macOS:
Налаштування змінних середовища (
.env)Laravel зберігає конфігурацію (підключення до бази, URL сайту тощо) у файлі
.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 # За замовчуванням Redis у ServBay не має пароля REDIS_PORT=6379 # Приклад налаштувань кешу/черги (Memcached) # CACHE_STORE=memcached # MEMCACHED_HOST=127.0.0.1 # MEMCACHED_PORT=112111
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): Наприклад,
8.3(залежить від версії Laravel). - Кореневий каталог сайту (Site Root):
- macOS:
/Applications/ServBay/www/servbay-laravel-app/public - Windows:
C:\ServBay\www\servbay-laravel-app\public(Важливо: Вказуйте директоріюpublicу корені Laravel-проєкту.)
- macOS:
Більш детальні кроки див. у посібнику ServBay з додавання першого сайту (шукайте англомовний варіант).
- Назва (Name):
Зберегти та застосувати налаштування
Збережіть конфігурацію. 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 інтегровані у ServBay, PHP-розширення вже встановлені.
Приклад Memcached
Налаштування
.envДодайте у файл
.envдані для підключення до Memcached:dotenvCACHE_STORE=memcached MEMCACHED_HOST=127.0.0.1 MEMCACHED_PORT=11211 # Стандартний порт Memcached у ServBay1
2
3Використання Memcached
В маршруті або контролері використайте фасад кешу Laravel для збереження та читання даних з Memcached:
Додайте у
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Додайте у
.envпараметри для Redis:dotenvCACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # За замовчуванням пароль Redis не встановлено у ServBay REDIS_PORT=6379 # Стандартний порт Redis у ServBay1
2
3
4Увага: Якщо активуєте і Redis, і Memcached, переконайтеся, що значення
CACHE_STOREвідповідає потрібному сервісу (інший закоментуйте).Використання Redis
Зверніться до Redis через фасад Redis або Cache в Laravel:
У
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. Eloquent ORM Laravel легко підключається до них.
Спочатку створіть базу даних, наприклад servbay_laravel_app, через інструменти ServBay (phpMyAdmin, Adminer, pgAdmin) або термінал.
Потім використайте міграції Laravel для створення структури:
Створення файлу міграції
В корені проекту виконайте:
bashphp artisan make:migration create_accounts_table --create=accounts1Файл буде створено у каталозі
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 migrate1За коректної конфігурації та існування бази даних, будуть створені таблиці
accountsй стандартні таблиці Laravel (users,password_reset_tokens,failed_jobsтощо).
Приклад MySQL
Конфігурація
.envдля MySQLПеревірте у
.envтакі параметри: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 # Стандартний пароль MySQL у ServBay1
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 'Account added to MySQL!'; });1
2
3
4
5
6
7
8
9
10
11Відвідайте
https://servbay-laravel-test.local/mysql-add-accountдля додавання даних.Читання даних з MySQL
Додайте інший маршрут:
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, щоб побачити дані таблиці accounts.
Приклад PostgreSQL
Конфігурація
.envдля PostgreSQLДля підключення змініть у
.env: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 # Стандартний пароль у ServBay1
2
3
4
5
6Увага: Після зміни СУБД виконайте
php artisan migrate:refreshабоphp artisan migrateдля створення структури в PostgreSQL.Запис даних (PostgreSQL)
Додайте маршрут у
routes/web.php: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 '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 легко розгорнути локальне середовище для створення та запуску проектів на Laravel. Завдяки попередній інтеграції PHP, Composer, Caddy-сервера та різних баз даних і кеш-сервісів, налаштування дуже просте. Достатньо кількох кроків, щоб створити новий проект, налаштувати веб-сервер й розпочати розробку з повноцінним тестуванням інтеграції з базами даних та кешуванням. ServBay прагне надати розробникам ефективне та зручне середовище для локальної розробки.
За появи запитань чи труднощів звертайтесь до офіційної документації ServBay або спільноти розробників.
