Створення та запуск проєкту 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-фреймворк з відкритим кодом, створений Taylor Otwell. Він базується на архітектурному патерні MVC (Model-View-Controller) й має чимало функцій "з коробки", які спрощують типові завдання веб-розробки, такі як автентифікація, маршрутизація, керування сесіями, кешування та робота з базами даних. Laravel славиться елегантним синтаксисом, багатим функціоналом і сильною спільнотою, що робить його ідеальним вибором для створення сучасних та підтримуваних веб-додатків.
Основні можливості та переваги Laravel
- Елегантний синтаксис. Код чистий, виразний, що підвищує ефективність розробки та полегшує читання.
- Eloquent ORM. Потужна реалізація патерна ActiveRecord, що робить роботу з базою даних простою й інтуїтивно зрозумілою.
- Консоль Artisan. Містить безліч корисних CLI-інструментів для міграцій, генерації коду, тестування тощо.
- Шаблонізатор Blade. Пропонує лаконічний синтаксис для динамічного побудови представлень.
- Багата екосистема. Величезна кількість офіційних і сторонніх пакетів легко інтегруються через Composer.
- Потужна підтримка спільноти. Активна спільнота надає багато ресурсів, гайдів та рішень.
Переваги розробки проєктів Laravel із ServBay
ServBay відкриває нові можливості для розробників Laravel:
- Інтегроване середовище. ServBay попередньо встановлює кілька версій PHP, Composer та популярні бази даних і кеш-сервіси — не потрібно нічого додатково встановлювати й налаштовувати.
- Зручне управління. За допомогою графічного інтерфейсу легко перемикати версії PHP, керувати сайтами й запускати/зупиняти сервіси.
- Попередньо налаштований веб-сервер. ServBay за замовчуванням використовує Caddy із оптимізованою конфігурацією для основних PHP-фреймворків, включно з Laravel, спрощуючи налаштування сервера.
- Підтримка HTTPS. Для доменів на
.local
ServBay автоматично видає SSL-сертифікати власного центру сертифікації, забезпечуючи безпечне середовище, ближче до продакшн.
Створення проєкту Laravel
Рекомендується зберігати сайти ServBay у каталозі /Applications/ServBay/www
— це допоможе підтримувати порядок і єдину структуру.
Переконайтеся, що Composer встановлений
Composer вже входить до складу ServBay, вам не треба його встановлювати окремо. У терміналі переконайтесь, що Composer доступний:
bashcomposer --version
1Якщо команда вивела номер версії — Composer готовий до роботи.
Створіть новий проєкт Laravel
Відкрийте термінал, перейдіть до рекомендованого каталогу сайтів і створіть новий проєкт Laravel через Composer. Назвемо директорію проєкту
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 використовує ключ застосунка для захисту сесій і шифрування даних. У кореневій папці проєкту (
/Applications/ServBay/www/servbay-laravel-app
) виконайте команду Artisan для генерації ключа:bashphp artisan key:generate
1Ключ буде згенеровано й встановлено у вашому
.env
файлі (APP_KEY
).Налаштування змінних середовища (
.env
)Laravel зберігає налаштування середовища у файлі
.env
: підключення до бази даних, 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 # В 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 вкажіть домен для проєкту Laravel у папці public
.
Відкрийте панель управління ServBay
Запустіть програму ServBay та відкрийте головну панель.
Додайте новий сайт
Перейдіть у розділ «Веб-сайти». Натисніть кнопку додавання (зазвичай позначено
+
або подібною піктограмою), щоб створити новий сайт.Заповніть параметри сайту
Приклад конфігурації:
- Назва (Name):
My First Laravel Dev Site
(будь-яке ім'я для зручності) - Домен (Domain):
servbay-laravel-test.local
(домен, за яким відкриватимете сайт) - Тип сайту (Site Type):
PHP
- Версія PHP (PHP Version): виберіть відповідну до вашої версії Laravel, наприклад,
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
<?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-базами
ServBay стандартно містить Redis і Memcached, а всі необхідні PHP-розширення встановлені.
Приклад Memcached
Налаштуйте
.env
Додайте або перевірте параметри підключення до Memcached у
.env
:dotenvCACHE_STORE=memcached MEMCACHED_HOST=127.0.0.1 MEMCACHED_PORT=11211 # Стандартний порт Memcached у ServBay
1
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
Додайте або перевірте параметри Redis у
.env
: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, у
.env
у поліCACHE_STORE
активуйте лише той сервіс, який хочете протестувати (інший закоментуйте).Використання Redis
У маршруті чи контролері використайте фасад Redis або Cache для взаємодії з Redis.
Приклад у
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
через інструмент управління базами (phpMyAdmin, Adminer, pgAdmin — доступно з ServBay) або через командний рядок.
Потім використайте механізм міграції Laravel для створення таблиць.
Створіть файли міграцій
Згенеруйте нову міграцію у корені проєкту:
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Збережіть.
Запустіть міграції
Виконайте команду Artisan — будуть створені всі потрібні таблиці:
bashphp artisan migrate
1Якщо база
servbay_laravel_app
існує і підключення вірне, буде створено таблицюaccounts
та деякі стандартні таблиці Laravel (users
,password_reset_tokens
,failed_jobs
,cache
,cache_locks
,jobs
,job_batches
тощо).
Приклад для 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 # Стандартний пароль MySQL для ServBay
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
, щоб записати дані.Читання тестових даних
У
routes/web.php
додайте маршрут для отримання даних зaccounts
:phpuse App\Models\Account; // якщо ви створили модель Account // або використайте DB facade Route::get('/mysql-accounts', function () { // Через DB facade $accounts = DB::table('accounts')->get(); // або через Eloquent ORM (якщо створена модель 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, відкоригуйте вміст
.env
:dotenvDB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 # Стандартний порт PostgreSQL у ServBay DB_DATABASE=servbay_laravel_app DB_USERNAME=root # Стандартний користувач для PostgreSQL у ServBay DB_PASSWORD=password # Стандартний пароль для PostgreSQL у ServBay
1
2
3
4
5
6Увага: Після зміни БД може знадобитися повторно виконати міграції
php artisan migrate:refresh
абоphp artisan migrate
.Додавання тестового запису (PostgreSQL)
Додайте маршрут для вставки запису у таблицю
accounts
: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)
Додайте маршрут для виведення всіх записів з
accounts
: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 на macOS. Попередньо інтегровані PHP, Composer, Caddy та різноманітні бази даних і кеш-сервіси істотно спрощують налаштування. За кілька нескладних кроків ви створюєте новий проєкт Laravel, налаштовуєте веб-сервер і переходите до повноцінної розробки з можливістю легкої інтеграції й тестування баз даних і кешей. ServBay — це зручний та ефективний інструмент для розробників.
У разі труднощів зверніться до офіційної документації ServBay або отримайте допомогу в спільноті.