Créer et exécuter un projet Laravel avec ServBay
Introduction
ServBay est un environnement de développement web local puissant, disponible sur macOS et Windows. Il intègre de nombreux outils populaires dont PHP, Node.js, Python, Go, Java, diverses bases de données (MySQL, PostgreSQL, MongoDB), des solutions de cache (Redis, Memcached) et plusieurs serveurs web (Caddy, Nginx, Apache).
Ce guide va vous montrer comment créer, configurer et exécuter rapidement un projet Laravel dans ServBay. Nous utiliserons l’environnement PHP intégré, Composer, et les fonctionnalités avancées de gestion des sites (anciennement appelés "hôtes") pour simplifier tout le processus.
Qu’est-ce que Laravel ?
Laravel est un framework PHP open source largement utilisé, créé par Taylor Otwell. Il suit le modèle MVC (Modèle-Vue-Contrôleur) et propose de nombreuses fonctionnalités prêtes à l’emploi qui facilitent le développement web : gestion de l’authentification, routage, sessions, cache et manipulation de base de données. Laravel est reconnu pour sa syntaxe élégante, la richesse de ses outils et le dynamisme de sa communauté, ce qui en fait un choix idéal pour créer des applications web modernes et maintenables.
Principales fonctionnalités et avantages de Laravel
- Syntaxe élégante : Code clair et intuitif, facilitant la productivité et la lecture.
- Eloquent ORM : Un système ActiveRecord puissant pour simplifier les interactions avec la base de données.
- Console Artisan : Outils en ligne de commande pour les migrations, la génération de code, les tests, etc.
- Moteur de templates Blade : Syntaxe concise pour développer des vues dynamiques.
- Écosystème riche : De nombreux paquets officiels et tiers, facilement gérés grâce à Composer.
- Communauté active : Nombreuses ressources, tutoriels et solutions disponibles.
Pourquoi utiliser ServBay pour développer un projet Laravel ?
ServBay facilite considérablement le développement avec Laravel :
- Environnement intégré : ServBay inclut plusieurs versions de PHP, Composer, ainsi que les bases de données et outils de cache courants, sans installation séparée.
- Gestion simple : Gérez vos versions de PHP, configurations de sites et services via l’interface graphique intuitive.
- Serveur web préconfiguré : Caddy est utilisé par défaut, avec des configurations optimisées pour les frameworks PHP comme Laravel.
- Support HTTPS : ServBay configure automatiquement des certificats SSL (ServBay User CA) pour les domaines en
.local
, offrant un environnement sécurisé similaire à la production.
Création d’un projet Laravel
ServBay recommande de stocker vos projets web dans les répertoires suivants pour une organisation optimale :
- macOS :
/Applications/ServBay/www
- Windows :
C:\ServBay\www
Vérifier la disponibilité de Composer
Composer est inclus dans ServBay : inutile de l’installer séparément. Vérifiez via le terminal :
bashcomposer --version
1Si la commande renvoie un numéro de version, Composer est opérationnel.
Créer un nouveau projet Laravel
Ouvrez le terminal, allez dans le dossier recommandé et utilisez Composer pour initialiser le projet, nommé ici
servbay-laravel-app
:macOS :
bashcd /Applications/ServBay/www # Créer le dossier du projet mkdir servbay-laravel-app # Aller dans le dossier cd servbay-laravel-app # Installer Laravel dans le dossier courant composer create-project --prefer-dist laravel/laravel .
1
2
3
4
5
6
7Windows :
cmdcd C:\ServBay\www # Créer le dossier du projet mkdir servbay-laravel-app # Aller dans le dossier cd servbay-laravel-app # Installer Laravel dans le dossier courant composer create-project --prefer-dist laravel/laravel .
1
2
3
4
5
6
7Composer installe Laravel et toutes les dépendances.
Entrer dans le dossier du projet
Vérifiez que le terminal pointe vers la racine du projet Laravel nouvellement créé :
macOS :
bashcd /Applications/ServBay/www/servbay-laravel-app
1Windows :
cmdcd C:\ServBay\www\servbay-laravel-app
1
Configuration initiale
Générer la clé d’application
Laravel utilise une clé pour sécuriser les sessions et les données chiffrées. Dans la racine du projet, générez la clé via Artisan :
Chemins racine du projet :
- macOS :
/Applications/ServBay/www/servbay-laravel-app
- Windows :
C:\ServBay\www\servbay-laravel-app
bashphp artisan key:generate
1La variable
APP_KEY
sera ajoutée au fichier.env
.- macOS :
Configurer le fichier d’environnement (
.env
)Le fichier
.env
gère les variables d’environnement (base de données, URL de l’application, etc.). Éditez-le selon vos besoins, par exemple :dotenvAPP_NAME=ServBay Laravel Demo APP_ENV=local APP_KEY=base64:... # Généré par php artisan key:generate APP_DEBUG=true APP_URL=https://servbay-laravel-test.local LOG_CHANNEL=stack # Exemple de configuration base de données (MySQL) DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=servbay_laravel_app # Nom de la base de données DB_USERNAME=root # Utilisateur par défaut ServBay DB_PASSWORD=password # Mot de passe par défaut ServBay # Exemple de configuration cache/queue (Redis) CACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # Redis sans mot de passe par défaut REDIS_PORT=6379 # Exemple de configuration cache/queue (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
26Remarque : Adaptez les paramètres
DB_*
,REDIS_*
,MEMCACHED_*
en fonction des services utilisés. Les informations par défaut sont visibles dans le panneau ServBay.
Configuration du serveur web (ajout d’un site dans ServBay)
Utilisez le gestionnaire de sites ServBay pour que votre domaine pointe vers le dossier public
du projet Laravel.
Ouvrez le panneau de contrôle ServBay
Lancez ServBay puis ouvrez le panneau de contrôle.
Ajoutez un nouveau site
Allez dans la rubrique « Sites » du panneau. Cliquez sur le bouton d’ajout (généralement un
+
).Renseignez les informations du site
Exemple de configuration :
Nom :
My First Laravel Dev Site
(nom pour l’identification)Domaine :
servbay-laravel-test.local
(le domaine d’accès dans le navigateur)Type de site :
PHP
Version de PHP : Sélectionnez celle compatible avec Laravel, par exemple
8.3
.Racine du site :
- macOS :
/Applications/ServBay/www/servbay-laravel-app/public
- Windows :
C:\ServBay\www\servbay-laravel-app\public
(Important : doit pointer vers le dossier
public
du projet Laravel)- macOS :
Pour plus de détails, consultez la documentation officielle de ServBay sur l’ajout d’un premier site (lien en anglais).
Enregistrez et appliquez
Sauvegardez. ServBay mettra à jour sa configuration web (par défaut Caddy). Redémarrez le serveur web si nécessaire.
Vérifier l’accès au projet
Votre site Laravel devrait être accessible via le domaine configuré.
Ouvrez votre navigateur
Entrez le domaine, par exemple
https://servbay-laravel-test.local
.Affichez la page d’accueil
Si la configuration est correcte, la page d’accueil Laravel apparaît.
Ajouter un exemple de code simple
Pour une vérification rapide, ajoutez une route simple dans routes/web.php
affichant « Hello ServBay! ».
Modifiez ou ajoutez :
php
<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Ici, vous pouvez enregistrer les routes web pour votre application.
| Ces routes sont chargées par le RouteServiceProvider, au sein d’un
| groupe qui contient le middleware "web". Créez quelque chose d’extraordinaire !
|
*/
Route::get('/', function () {
return 'Hello ServBay!'; // Modifiez ou ajoutez cette ligne
});
// ... autres routes
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
Enregistrez et consultez https://servbay-laravel-test.local
. Le navigateur doit afficher Hello ServBay!
.
Exemples d’intégration de bases de données
Laravel propose une couche d’abstraction puissante et un ORM (Eloquent) pour diverses bases de données. ServBay intègre MySQL, PostgreSQL, MongoDB, Redis et Memcached, prêts pour le développement local.
Exemple NoSQL
ServBay inclut Redis et Memcached, avec les extensions PHP préinstallées.
Exemple Memcached
Configurer
.env
Ajoutez les paramètres Memcached si nécessaire :
dotenvCACHE_STORE=memcached MEMCACHED_HOST=127.0.0.1 MEMCACHED_PORT=11211 # Port par défaut Memcached sous ServBay
1
2
3Utiliser Memcached
Testez avec le facade Cache dans vos routes ou contrôleurs :
Ajoutez dans
routes/web.php
:phpuse Illuminate\Support\Facades\Cache; Route::get('/memcached-test', function () { // Stocker une donnée dans le cache pour 10 minutes (600 secondes) Cache::put('servbay_memcached_key', 'Hello from Memcached on ServBay!', 600); // Récupérer la donnée depuis le cache $value = Cache::get('servbay_memcached_key'); if ($value) { return "Donnée Memcached : " . $value; } else { return "Aucune donnée dans Memcached ou elle a expiré."; } });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Accédez à
https://servbay-laravel-test.local/memcached-test
pour tester.
Exemple Redis
Configurer
.env
Ajoutez les paramètres Redis si nécessaire :
dotenvCACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # Redis sans mot de passe par défaut sous ServBay REDIS_PORT=6379
1
2
3
4Remarque : N’activez qu’un seul cache à la fois (
CACHE_STORE
).Utiliser Redis
Utilisez le facade Redis ou Cache dans vos routes ou contrôleurs :
Ajoutez dans
routes/web.php
:phpuse Illuminate\Support\Facades\Redis; // ou utiliser Cache facade si CACHE_STORE=redis // use Illuminate\Support\Facades\Cache; Route::get('/redis-test', function () { // Utilisation de Redis facade Redis::set('servbay_redis_key', 'Hello from Redis on ServBay!'); $value_redis = Redis::get('servbay_redis_key'); // Ou via Cache (optionnel) // Cache::put('servbay_redis_key', 'Hello from Redis on ServBay!', 600); // $value_cache = Cache::get('servbay_redis_key'); return "Donnée Redis : " . $value_redis; });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Accédez à
https://servbay-laravel-test.local/redis-test
pour tester.
Exemple relationnel (MySQL & PostgreSQL)
ServBay embarque MySQL et PostgreSQL. Eloquent connecte facilement ces bases dans Laravel.
Commencez par créer la base de données servbay_laravel_app
via les outils fournis (phpMyAdmin, Adminer, pgAdmin) ou en ligne de commande.
Utilisez ensuite les migrations Laravel pour la structure des tables.
Créer un fichier de migration
Dans la racine du projet, exécutez :
bashphp artisan make:migration create_accounts_table --create=accounts
1Un nouveau fichier apparaît dans
database/migrations
.Éditer le fichier de migration
Définissez la structure de la table
accounts
dans la méthodeup
:php<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Exécute la migration. */ public function up(): void { Schema::create('accounts', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); // Ajoute les colonnes created_at et updated_at }); } /** * Annule la migration. */ 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
29Enregistrez le fichier.
Exécuter la migration
Dans la racine du projet :
bashphp artisan migrate
1Si la configuration est correcte et la base créée, la table
accounts
sera disponible, ainsi que les tables Laravel par défaut (users
,password_reset_tokens
, etc.).
Exemple MySQL
Configurer
.env
pour MySQLAjustez le fichier
.env
:dotenvDB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 # Port MySQL par défaut ServBay DB_DATABASE=servbay_laravel_app DB_USERNAME=root DB_PASSWORD=password # Mot de passe MySQL par défaut
1
2
3
4
5
6Insérer des données d’exemple
Ajoutez dans
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 'Compte ajouté dans MySQL !'; });
1
2
3
4
5
6
7
8
9
10
11Accédez à
https://servbay-laravel-test.local/mysql-add-account
pour insérer une entrée.Lire des données d’exemple
Ajoutez dans
routes/web.php
:phpuse App\Models\Account; // si le modèle Account existe // ou utiliser le facade DB directement Route::get('/mysql-accounts', function () { // Avec DB facade $accounts = DB::table('accounts')->get(); // Ou via Eloquent (si modèle Account disponible) // $accounts = Account::all(); return $accounts; });
1
2
3
4
5
6
7
8
9
10
11
12Accédez à
https://servbay-laravel-test.local/mysql-accounts
pour lister les comptes.
Exemple PostgreSQL
Configurer
.env
pour PostgreSQLModifiez le fichier
.env
:dotenvDB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 # Port PostgreSQL par défaut DB_DATABASE=servbay_laravel_app DB_USERNAME=root # Utilisateur par défaut DB_PASSWORD=password # Mot de passe par défaut
1
2
3
4
5
6Remarque : Après avoir changé de base, relancez éventuellement
php artisan migrate:refresh
ouphp artisan migrate
.Insérer des données (PostgreSQL)
Ajoutez dans
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 'Compte ajouté dans PostgreSQL !'; });
1
2
3
4
5
6
7
8
9
10
11Accédez à
https://servbay-laravel-test.local/pgsql-add-account
pour insérer une entrée.Lire des données (PostgreSQL)
Ajoutez dans
routes/web.php
:phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql-accounts', function () { $accounts = DB::table('accounts')->get(); return $accounts; });
1
2
3
4
5
6Accédez à
https://servbay-laravel-test.local/pgsql-accounts
pour lister les comptes.
Conclusion
Avec ServBay, la mise en place d’un environnement local pour développer et exécuter des projets Laravel est simple et rapide. PHP, Composer, Caddy et les bases de données/cache intégrés simplifient grandement la configuration. Il suffit de suivre quelques étapes pour créer un projet, configurer le serveur web, commencer le développement, puis tester aisément l’intégration des bases de données et caches.
En cas de question ou de problème, consultez la documentation officielle de ServBay ou la communauté pour obtenir de l’aide.