#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:create
Vous 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 directory
Il 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 /var
On vérifie le contenu de ce répertoire :
ls -las
Avec 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 mysql
Entrez 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 mysql
La phase importante de cette étape : entrez la commande suivante :
sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock mysql.sock
N’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 25 septembre à 12:01, par Teddy Payet
En réponse à : Un Nouveau Chapitre : Mon Admission dans un MBA en Intelligence Artificielle et Data Innovation
# Le 25 septembre à 11:20, par vY
En réponse à : Un Nouveau Chapitre : Mon Admission dans un MBA en Intelligence Artificielle et Data Innovation
# Le 21 juin à 13:49, par Teddy Payet
En réponse à : Home Assistant : Routine le matin avant l’école
# Le 21 juin à 10:47, par Teddy Payet
En réponse à : Ma domotique open source
# Le 16 juin à 17:15, par Eric
En réponse à : Ma domotique open source
# Le 7 mars à 09:43, par Jacques Pyrat
En réponse à : Un Nouveau Chapitre : Mon Admission dans un MBA en Intelligence Artificielle et Data Innovation