#Symfony, #MAMP et #doctrine sont dans un même bateau…

Quand on est sous MacOSX, on utilise souvent MAMP pour gérer son serveur apache et MySQL. Lorsqu’on commence à utiliser Symfony2, il faut parfois faire quelques petits réglages pour que tout se passe bien.
Préambule
Vous avez commencé à créer votre Bundle et désirez utiliser doctrine pour générer vos entités. Mais quand vous faites la commande suivante :
php console doctrine:database:createVous avez une belle erreur :
Could not create database for connection named <span class="base64" title="PGNvZGUgY2xhc3M9J3NwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lJyBkaXI9J2x0cic+c2ZfZm9ybWF0aW9uPC9jb2RlPg=="></span>
SQLSTATE[HY000] [2002] No such file or directoryIl vous faut en fait faire une passerelle de var/mysql/mysql.sock vers /Applications/MAMP/tmp/mysql/mysql.sock
Étape 1
On va se positionner dans le répertoire /var avec la commande :
cd /varOn vérifie le contenu de ce répertoire :
ls -lasAvec cette commande, vous verrez tout le contenu du répertoire, vous verrez aussi bien, les fichiers, les répertoires et aussi les fichiers cachés. Si dans les répertoires affichés, vous avez le répertoire "mysql", passez à l’étape 3.
Étape 2
Le répertoire "mysql" est inexistant. On doit le créer avec la commande suivante :
sudo mkdir mysqlEntrez votre mot de passe puis validez.
Refaites une comande ls -las. Vous devriez voir apparaître le répertoire "mysql" dans la liste.
Étape 3
On se positionne dans le répertoire "mysql" :
cd mysqlLa phase importante de cette étape : entrez la commande suivante :
sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock mysql.sockN’oubliez pas de mettre sudo. Cela va vous donner les droits du super administrateur. Sans cela, vous aurez un message vous alertant (et interdisant) car vous n’avez pas les permissions adéquates.
La commande Unix ln permet de réaliser un lien avec un autre fichier ou répertoire de 2 façons : matériel ou symbolique. En ajoutant -s, nous utiliserons le lien symbolique.
Et voilà, on a fini avec cela !
Test final
Ré-essayez la commande :
php console doctrine:database:createÇa devrait fonctionner maintenant.
Info supplémentaire
Est-ce que vous avez changé le timezone de votre php.ini ?
Si vous ne l’avez pas fait, aller dans /Applications/MAMP/bin/php/php5.4.4/conf/php.ini. Recherchez "date.timezone" (aux alentours de la ligne 549). Décommentez la ligne si nécessaire (supprimer le " ;" en début de ligne) Puis mettre "Europe/Paris".
Enregistrez votre modification. And enjoy !
Vous pouvez faire la même chose pour le fichier php.ini dans /etc/php.ini (ça sera à la ligne 998).
Derniers commentaires
# Le 5 septembre 2023 à 15:29, par tikismoke
En réponse à : Home Assistant : Routine le matin avant l’école
# Le 30 décembre 2022 à 09:55, par Teddy Payet
En réponse à : Home Assistant : Routine le matin avant l’école
# Le 14 septembre 2022 à 23:51, par spipfactory
En réponse à : Nettoyer la médiathèque
# Le 16 août 2022 à 11:21, par idem2lyon
En réponse à : Home Assistant : Routine le matin avant l’école
# Le 12 mars 2022 à 05:39, par BijouLePou
En réponse à : Je suis passé à SPIP 4.0
# Le 10 janvier 2022 à 17:41, par julien
En réponse à : Je suis passé à SPIP 4.0