Archives de
Category: MacOS

Yosemite PHP APCu xDebug intl

Yosemite PHP APCu xDebug intl

Afin d’utiliser symfony2 avec la version de PHP fournit pas Yosemite, il faut rajouter quelques extensions.

Pour commencer il faut installer Xcode depuis l’App Store et ne pas oublié de l’exécuter afin d’accepter la licence d’utilisation.

Commençons par intl. En premier il nous faut les sources d’ici disponible a cette url : http://sourceforge.net/projects/icu/files/ICU4C/54.1/icu4c-54_1-src.tgz/download

Une fois fait, il faut les extraire, ouvrir un Terminal dans le dossier icu/source puis lancer les commandes suivantes :

./runConfigureICU MacOSXmake
sudo make install
sudo pecl install intl

Passons à APCu et Xdebug. Toujours dans le terminal lançons les commandes suivantes :

sudo pecl install apcu-beta
sudo pecl install xdebug

Dernière étape, la création et la modification du fichier php.ini

En premier lieu, copion le fichier php.ini.default

cp /etc/php.init.default /etc/php.ini

Puis modifions la valeur de « date.timezone »

Pour finir il suffit d’ajouter les lignes suivantes à la fin du fichier :

extension=/usr/lib/php/extensions/no-debug-non-zts-20121212/apcu.so
extension=/usr/lib/php/extensions/no-debug-non-zts-20121212/intl.so
zend_extension=/usr/lib/php/extensions/no-debug-non-zts-20121212/xdebug.so
xdebug.max_nesting_level=250
Connexion MySQL avec le mamp de macports

Connexion MySQL avec le mamp de macports

Pour faire suite à l’installation de mamp avec macports, j’ai voulu installer symfony2. Lors de la configuration de la base de données, je n’ai pas rencontré de problèmes particuliers. Lorsque j’ai voulu créer la base de données avec symfony j’ai eu l’erreur suivante :

Could not create database for connection named `symfony`
SQLSTATE[HY000] [2002] No such file or directory

Après quelques recherches sur le net j’ai enfin trouvé la réponse. Lors de la configuration de la base de données, la valeur de l’hôte MySQL est localhost. Or la version de MySQL installé avec macports est configurée pour avoir le fichier mysqld.sock dans le dossier suivant:

/opt/local/var/run/mysql5/

Quand a PHP, il s’attend a le trouvé dans

/tmp

Forcement, cela pose problème. Pour le résoudre un lien suffit :

ln /opt/local/var/run/mysql5/mysqld.sock /tmp/mysql.sock

Et voilà la connexion MySQL en utilisant localhost fonctionne.

Un mamp avec macports 2

Un mamp avec macports 2

Voici la suite du premier post sur l’installation d’un mamp avec macports. Il nous faut configurer mysql, php et apache.

Avant toute chose je conseil de rebooter le mac.

Commençons par mysql: lancez la commande suivante afin de définir un nouveau mot de passe root pour mysql :

/opt/local/lib/mysql5/bin/mysqladmin -u root password 'changezmoi'

Passons à PHP: je ne modifie que date.timezone pour y mettre la valeur « Europe/Paris ». Le fichier php.ini se trouve dan s/opt/local/etc/php54.

Viens enfin le tour d’apache. Le fichier httpd.conf est situé dans /opt/local/apache2/conf

Dans un premier temps cherchez le bloque « IfModule dir_module » et changez sa valeur par : « DirectoryIndex index.html index.php ».

Dans le bloque « IfModule mime_module » ajoutez : « AddType application/x-httpd-php .php »

Pour finir nous allons configurer apache pour gérer les hôtes virtuel dynamique.

Changez la directive DocumentRoot pour le répertoire de votre choix, dans mon cas /Users/aurel/Sites

Dans le deuxième block Directory apres le DocumentRoot modifier la valeur par le même que celle du DocumentRoot

Enfin à la fin ajouter le code suivant :

NameVirtualHost *:80
UseCanonicalName Off
<VirtualHost *:80>
      VirtualDocumentRoot /Users/aurel/Sites/%-2+
</VirtualHost>

Cela aura pour effet de chercher dans le repertorie /Users/aurel/Sites si un dossier sans la deniere extension existe. Par exemple, si le nom de domaine www.blog.dayo.fr.dev est redirigé vers la machie et qu’un dossier www.blog.dayo.fr existe dans le repertoire /Users/aurel/Sites alors ce contenu sera afficher.

Relancez apache avec la commande suivante :

sudo /opt/local/etc/LaunchDaemons/org.macports.apache2/apache2.wrapper restart

Et voila il ne reste plus qu’a modifier votre fichier hosts et créer les répertoire associé dans votre DocumentRoot

Un mamp avec macports 1

Un mamp avec macports 1

Suite l’installation de mamp et n’étant pas satisfait de son utilisation, je me suis décider a regarder du coté des autres solutions. Celle qui ma le plus plu est l’installation à travers le gestionnaire de paquet macports.

Concernant l’installation de macports rien de bien compliqué. Un fichier dmg a installer, vérifier que xcode est installé et dans les préférences xcode installer les « Command Line Tools ».

Créé un fichier mamp.sh et copiez le contenu suivant:

#launch with sudo
# install all softwares
port install mysql5-server
port install php54-mbstring
port install php54-intl
port install php54-apc
port install php54-posix
port install php54-xdebug
port install php54-pdo
port install php54-iconv
port install php54-mysql
port install php54-sqlite
port install php54-gd
port install php54-openssl
port install apache2
port install php54-apache2handler
port select php php54

# create init file
cp /opt/local/etc/php54/php.ini-development /opt/local/etc/php54/php.ini

# add php module to apache
cd /opt/local/apache2/modules
/opt/local/apache2/bin/apxs -a -e -n php5 mod_php54.so

# load mysql and apache at startup
port load apache2
port load mysql5-server

# start mysql
sudo -u _mysql mysql_install_db5
/opt/local/lib/mysql5/bin/mysqld_safe &

 

Une fois sauvegarder, utiliser la commande suivante : sudo mamp.sh

Ce script installe apache2, mysql et php54.

Dans le prochaine post j’expliquerais comment configurer le tous.

xdebug et MAMP

xdebug et MAMP

Suite à l’installation de MAMP, j’ai voulu installer xdebug.

Les premiers tutoriels que j’ai trouvés parlaient de précompilation avec différents outils. Rien de bien simple. Ce soir en m’y repenchant je suis tombé sur ce tuto assez simple.

Depuis 2009 certaines choses ont changé, je vais donc réexpliquer la démarche.

La première chose a faire et lancer MAMP et localiser ou ce situe le fichier php.ini ainsi que le dossier des extensions. Pour cela, allez sur http://127.0.0.1/MAMP/help.php?language=English et cherchez « php.ini » et « extension_dir » notez bien ces deux valeurs.

Le deuxième est de télécharger la librairie « PHP Remote Debugging » depuis le site du projet Komodo. La version Mac OS X la plus récente fera l’affaire. Une fois téléchargé, décompresser le fichier et allez dans le répertoire de votre version de PHP. Copiez alors le fichier « xdebug.so » dans le dossier des extensions PHP.

Éditez ensuite le fichier php.ini pour décommenter la ligne en dessous de « [xdebug] ». Le chemin sur la ligne doit être le bon ( le même que celui dans lequel vous avez copié le fichier xdebug.so.

Il suffit alors de redémarrer MAMP pour que xdebug soit pris en compte.