Configurations applicables et requises
N’étant pas très motivé pour passer à Lion (X.7), j’ai du faire évoluer mon environnement de travail :
Mac OS X.6.8
Intel
64 bits
MAMP 1.8
Les pré-requis de Symfony2 sont les suivants :
OK Checking that PHP version is at least 5.3.2 (5.3.6 installed)
OK Checking that the "date.timezone" setting is set
OK Checking that app/cache/ directory is writable
OK Checking that the app/logs/ directory is writable
OK Checking that the json_encode() is available
OK Checking that the SQLite3 or PDO_SQLite extension is available
OK Checking that the session_start() is available
OK Checking that the ctype_alpha() is available
OK Checking that the APC version is at least 3.0.17
OK Checking that the PHP-XML module is installed
OK Checking that the libxml version is at least 2.6.21
OK Checking that the token_get_all() function is available
OK Checking that the mb_strlen() function is available
OK Checking that the iconv() function is available
OK Checking that the utf8_decode() is available
OK Checking that the posix_isatty() is available
OK Checking that the intl extension is available
OK Checking that the intl ICU version is at least 4+
OK Checking that a PHP accelerator is installed
OK Checking that php.ini has short_open_tag set to off
OK Checking that php.ini has magic_quotes_gpc set to off
OK Checking that php.ini has register_globals set to off
OK Checking that php.ini has session.auto_start set to off
OK Checking that PDO is installed
OK Checking that PDO has some drivers installed : sqlite, sqlite2, pgsql, mysql

Problème #1 : l’extension intl
Il y a 99% de chances pour que l’extension intl vous pose problème. Elle n’est pas installée Symfony2 refusera de bootstrapper sans elle.
Solution compliquée qui prend 3h20 et qui ne marche pas
szemian a rédigé un tutoriel très complet sur son blog : Compiling intl extension for MAMP
Malheureusement chez moi ça ne marche pas, en fait pour être honnête ça a bousillé mon installation de PHP, 3 tests sur 82 ne passent plus au make :
En prime j’ai eu droit à ce joli message lors de la recompilation, qui m’a gentiment rabaissé à mon état de n00b bêta-testeur :
Pour ceux que ça intéresse, le rapport est là :
Solution de facilité : MAMP2 + Moodle4Mac
En parcourant les forums j’ai pris connaissance du package pour MAMP permettant d’utiliser Moodle : Moodle4Mac. Ce dernier inclut la librairie intl. Par contre, il requiert MAMP2...
Après passage à la caisse, MAMP2 installé, il a suffit d’installer Moodle4Mac. Et hourra, ça marche.
Problème réglé.

Problème #2 : PHP-CLI
Symfony use et abuse des outils en ligne de commande. Il faut donc utiliser la version command-line (CLI) de PHP. Par défaut, OS X utilise la version de PHP livrée avec le système.
Comment connaître la version de PHP utilisée par la ligne de commande ?
Ça, c’est le résultat auquel vous devez arriver... par défaut c’est la 5.2 sans Zend et ni l’eAccelerator (qui sont gracefuly installés par MAMP). Vous allez donc devoir setter le chemin du php.ini pour qu’il aille chercher celui de MAMP.
Comment savoir quel est le php.ini utilisé par PHP CLI ?
Comment en changer ?
Ne pas oublier de changer le Path :
Et y saisir :
Reloader votre environnement :
Et voilà, le PHP d’Apache et le PHP de la ligne de commande sont synchronisés, Symfony2 passe enfin tous les tests à la fois dans le navigateur et en CLI.


Bonjour,
Je développe actuellement un site en symfony2 et j’ai été confronté à ce problème de php-intl. Après recherches, je suis tombé sur votre tutoriel. Je souhaiterai le compléter avec une autre solution qui fonctionne parfaitement pour moi, et est plus économique que d’acheter MAMP PRO. J’ai suivi un autre lien me permettant d’installer apache2/php5.3.8/mysql sans passer par MAMP : http://justinhileman.info/article/r...
Aucun problème lors de l’installation, simplement quelques recherches de configuration pour mysql et apache.
Depuis, tout roule :)
Pour infos :
n’oubliez pas de modifier le fichier /.bash_profile ou /.bash_rc
le serveur mysql se démarre grâce à la commande "mysql.server start"
le serveur apache se démarre grâce à la commande "sudo apachectl start"
au besoin, créez un fichier /etc/my.cnf pour augmenter la mémoire mysql
En espérant que ça puisse en aider d’autres
Répondre à ce message
Merci pour votre contribution !
Germain
Répondre à ce message