Deux façons de déployer
Vous avez besoin d'une application Laravel, d'un dépôt Git et d'un compte cdn.com.tr. Il existe deux voies, et vous pouvez choisir l'une ou l'autre. La plateforme PHP managée exécute votre application Laravel sur un environnement d'exécution PHP 8 moderne avec une base de données managée, Redis, du SSL automatique et un WAF — aucun Dockerfile à écrire. La voie conteneur vous donne le contrôle total : vous fournissez un Dockerfile, et la plateforme construit et exécute le conteneur comme une container app managée. Les deux se trouvent derrière l'edge du CDN. Ce guide détaille la voie conteneur et renvoie vers la plateforme managée là où c'est plus simple.
Configuration et secrets
Ne figez jamais votre .env dans l'image et ne commitez jamais de secrets dans Git. Définissez plutôt votre configuration Laravel comme variables d'environnement (et secrets) sur la plateforme, afin que la même image tourne en toute sécurité en production. Au minimum, vous définirez la clé d'application, l'environnement, et vos connexions à la base de données et à Redis managés.
Valeurs d'environnement à définir sur la plateforme
APP_ENV=production
APP_KEY=base64:... # php artisan key:generate --show
APP_DEBUG=false
APP_URL=https://app.example.com
DB_CONNECTION=mysql
DB_HOST=<managed-db-host>
DB_DATABASE=<db>
DB_USERNAME=<user>
DB_PASSWORD=<secret>
CACHE_STORE=redis
SESSION_DRIVER=redis
REDIS_HOST=<managed-redis-host>
Ajoutez un Dockerfile
Ajoutez un Dockerfile à la racine de votre dépôt. Cet exemple installe les dépendances Composer et sert l'application sur le port 8000. Le serveur intégré de Laravel garde l'exemple simple ; pour un trafic élevé, remplacez la dernière ligne par Laravel Octane (FrankenPHP ou Swoole), ou utilisez plutôt la plateforme PHP managée.
Dockerfile
FROM php:8.2-cli
# Extensions PHP généralement nécessaires à Laravel
RUN apt-get update && apt-get install -y libzip-dev \
&& docker-php-ext-install pdo_mysql zip opcache
# Composer
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
WORKDIR /app
COPY . .
RUN composer install --no-dev --optimize-autoloader --no-interaction
EXPOSE 8000
CMD ["php", "artisan", "serve", "--host=0.0.0.0", "--port=8000"]
Déployer depuis Git
Dans le panneau cdn.com.tr, créez une container app et connectez votre dépôt Git. La plateforme lit votre Dockerfile, construit l'image et exécute le conteneur. Ensuite, déployer revient simplement à pousser vers votre branche — chaque push construit une nouvelle image et la déploie sans interruption.
Livrer un changement
git add .
git commit -m "Add invoices page"
git push origin main
# cdn.com.tr construit l'image et la déploie automatiquement
Base de données managée, Redis et migrations
Attachez une base de données managée et Redis avec une commande cdnctl chacun — elles câblent la connexion dans votre app sous forme de variables d'environnement, si bien que les valeurs .env de l'étape 2 sont définies pour vous. Redis donne à Laravel un cache et un stockage de session rapides ; la base de données managée est sauvegardée et accessible depuis l'app. Exécutez ensuite vos migrations dessus dans le cadre du déploiement pour que le schéma reste synchronisé.
cdnctl accounts use <account_uuid>
cdnctl container addons enable-database --app <app_uuid> --url-scheme mysql
cdnctl container addons enable-redis --app <app_uuid> --env-prefix REDIS
# exécuter les migrations sur la base de données managée
php artisan migrate --force
Domaine, HTTPS et l'edge
Pointez votre domaine vers l'app et cdn.com.tr délivre et renouvelle le SSL automatiquement. Votre application Laravel tourne désormais derrière l'edge du CDN : les ressources statiques sont mises en cache et servies près des visiteurs, un WAF filtre le trafic malveillant, et les pics sont absorbés en périphérie. Si vous préférez ne pas du tout gérer de Dockerfile, la plateforme PHP managée vous donne le même résultat — environnement d'exécution PHP 8, base de données et Redis managés, HTTPS et WAF automatiques — sans construire d'image.
Bien adapté pour
Exécutez Laravel avec une base de données et Redis managés, du HTTPS automatique et un WAF, déployé directement depuis Git.
Faites passer une ancienne application PHP à PHP 8 sur la plateforme managée, derrière le CDN et le WAF, sans la réarchitecturer.
Servez les routes API Laravel comme un conteneur managé avec healthchecks, secrets et routage en périphérie devant.
FAQ déploiement Laravel
Ai-je besoin de Docker, ou puis-je utiliser la plateforme managée ?
Les deux sont possibles. La plateforme PHP managée exécute Laravel sans Dockerfile — vous obtenez un environnement d'exécution PHP 8 avec une base de données managée, Redis, HTTPS et un WAF. La voie conteneur est pour les équipes qui veulent le contrôle total sur l'image ; les deux tournent derrière l'edge.
Où tournent les queues et le scheduler ?
Exécutez le scheduler et les workers de queue de Laravel comme des jobs planifiés ou de longue durée aux côtés de l'app, pointés vers le même Redis/base de données managés. Gardez les secrets dans des variables d'environnement pour que chaque processus partage une seule configuration.
Comment fonctionnent les migrations de base de données au déploiement ?
Exécutez « php artisan migrate --force » sur la base de données managée dans le cadre de votre déploiement. Comme une build échouée laisse la version précédente continuer à servir, vous avancez en toute sécurité et votre schéma reste synchronisé avec le code.