Partage
  • Partager sur Facebook
  • Partager sur Twitter

[SF5] - [Webpack] - Mise en ligne sur Heroku

Comment mettre en ligne son site Symfony utilisant Webpack sur Heroku

Sujet résolu
28 mai 2021 à 12:03:56

Bonjour,

Ce n'est pas vraiment une question, mais je souhaite partager ma solution pour mettre en ligne son site Symfony utilisant le Webpack encore sur Heroku, car je n'ai pas trouvé de doc entière et surtout à jour. Donc j'éspere que ma solution vous servira :D

Allez on commence, donc comme évoqué précédemment votre site doit tourner sur Symfony 4 ou 5 et utiliser le WebPack Encore sinon ça ne fonctionnera pas. Vous devez aussi avoir déjà créé un compte chez Heroku et avoir installé Heroku-cli

1ére étape,

Créez un projet Heroku
heroku create --region eu


2

Créez le fichier Procfile permettant de donner les 1ére instructions à heroku

echo web: heroku-php-apache2 public/ > Procfile
git add Procfile
git commit -m "Heroku Procfile"


3

heroku config:set APP_ENV=prod
heroku config:set NODE_MODULES_CACHE=false


4

Ajoutez le buildPack NodeJs obligatoire pour Webpack et php pour Symfony

heroku buildpacks:add heroku/php 
heroku buildpacks:add --index 1 heroku/nodejs 


5

Pour ne pas avoir index.php dans son url

composer require symfony/apache-pack

 Cela va créer un fichier .htaccess dans le dossier public pensez à le rendre commitable.

6

Pour que la compile NodeJs fonctionne. Ajouter dans le fichier package.json votre version de node js et npm ou yarn

"engines": {
    "node": "14.14.0",
    "npm" : "6.x"
}


7

git add *
git commit -m "add htaccess and node, npm or yarn version"
git push heroku main

 (parfois git push heroku master )

---

Et ça marche enfin normalement, vous devriez avoir une erreur 500 ou MySql pour cela JawsDB.

Si vous avez une autre erreur re-verifiez votre code et vérifiez si vous n'avez pas ajouté d'autre portion de code pour mettre en ligne votre site.

---

Sinon essayez :

heroku config:set NPM_CONFIG_PRODUCTION=false
heroku config:set YARN_PRODUCTION=false

Puis :

Dans package.json puis dans script

"heroku-postbuild": "encore production --progress"

Attention cependant car cela risque de créer des problèmes avec les "@auto-scripts" dans composer.json

Puis :

Dans Procfile

web: $(composer config bin-dir)/heroku-php-apache2

Voilà cela devrait suffire j'espère que ça vous a été utile :lol:

-
Edité par Hugox 4 juin 2021 à 12:15:46

  • Partager sur Facebook
  • Partager sur Twitter
6 juin 2021 à 14:40:22

Merci infiniment, ça m'a beaucoup aidé !
  • Partager sur Facebook
  • Partager sur Twitter

Le génie c'est 99% de transpiration et 1 % de chance.

4 avril 2022 à 14:43:49

Bonjour, pour dire merci pas la peine de déterrer le sujet, vous avez la possibilité de cliquer sur les pouces levés des messages qui vous ont aidés. 

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter