Mise à niveau de l'installation native de PHP sur OS X Mountain Lion

Voyons comment nous pouvons mettre à niveau manuellement l'installation native de PHP sous OS X 10.8 vers la version la plus récente (actuellement la version 5.4.5) et installer un autre logiciel utile installé pendant que nous y sommes. * Les packages AMP sont pratiques, mais rarement à jour, aussi, absorber la procédure décrite dans cet article est inestimable pour tout développeur PHP..


La théorie de la construction de la source

Si vous ne vous intéressez qu'à l'aspect pratique de l'installation de PHP, n'hésitez pas à sauter cette section, mais il pourrait vous être utile ultérieurement de savoir comment cela fonctionne et pourquoi certaines commandes sont nécessaires..

Chaque installation de logiciel à partir de la source suit essentiellement la même chaîne de commandes: Téléchargez les fichiers source, configurez, effectuez, éventuellement testez, installez.

Configurer

Le script «configure» indique à «make» ce qui va être construit. Exécuté en tapant "./configure", le script configure analyse les dépendances, vérifie que vous exécutez un système d'exploitation pris en charge, configure les fichiers nécessaires pour le système d'exploitation donné et génère enfin un fichier Make qui, lorsque "make" est appelé, dicte comment et qu'est-ce qui doit être construit.

"Configure" dit "make" ce qui va être construit

Si le script configure trouve des dépendances ou des erreurs manquantes, il effectue une sortie et arrête l'exécution, permettant ainsi à l'utilisateur de supprimer ou de contourner tout obstacle avant de poursuivre. La commande configure vient toujours en premier lors de la compilation à partir du source.

Faire

Ensuite, “make” construit ce que configure lui a dit de construire. “Make” est initialisé en tapant simplement “make”, et est en fait un utilitaire GNU qui est généralement utilisé pour gérer un ensemble de fichiers et les recompiler si nécessaire.

«Make» construit ce que configure lui a dit de construire

Pour fonctionner, cela nécessite un fichier makefile - un fichier dans lequel ses directives sont décrites et les relations entre les fichiers en question sont notées. Une fois exécuté, la commande make lit le fichier makefile et effectue les tâches..

La commande "make test" exécute la commande make mais teste également la compilation par rapport à une cible de test. Toutes les distributions sources ne prennent pas en charge "make test". Par conséquent, sauf spécification explicite dans la documentation d'installation du logiciel en cours d'installation, vous devez utiliser le "make" habituel..

La commande "make test" exécute la commande make mais teste également la compilation par rapport à une cible de test.

“Sudo make install” installe les fichiers “make” intégrés dans des dossiers prédéfinis. Il gère toutes les inclusions, met à jour et résout les chemins et déplace tout vers où il devrait être. Effectivement, l'installation est terminée et l'utilisateur n'a généralement rien d'autre à faire..

C’est en fait exactement ce que Homebrew - le gestionnaire de paquets que nous installons dans la section suivante - peut faire. Il peut exécuter le même flux, en interne. Vous ne voyez pas vraiment tout cela directement, mais plus ou moins la même chaîne est exécutée, si la "formule" soumise par le "brasseur" est faite de cette façon.

Cela facilite le processus dans son ensemble en vérifiant automatiquement les dépendances et en les installant avant de passer au package principal désigné. Ensuite, il télécharge et désarchive et exécute la chaîne configure, make, make install pour terminer l’installation..

Presque toutes les installations à partir des sources suivent les mêmes étapes: télécharger, configurer, créer, installer.

Homebrew


De la maison Homebrew

Pour que l'installation de PHP se déroule le mieux possible, vous devez installer Homebrew, un gestionnaire de paquets pour OSX, qui peut gérer de nombreuses installations à votre place. Ces installations pourraient sinon nécessiter des procédures de construction complexes et comporter des dépendances critiques heures à résoudre.

Avoir installé Homebrew vous sera bénéfique à long terme.

Avoir installé Homebrew vous sera bénéfique à long terme, et pas seulement dans le but de cet article. Il offre un moyen rapide d’installer des bibliothèques et des logiciels courants sans avoir à compiler à partir des sources..
Pour l’installer, nous devons procéder comme suit (ignorez cette section si vous avez installé Homebrew):

  1. Installez XCode via l'App Store. Une fois installé, installez les outils de ligne de commande via l'application XCode elle-même ou téléchargez-le et installez-le à partir de http://developers.apple.com. Nous avons besoin de XCode et de CLT car Homebrew en a besoin.
  2. Installez X11 à partir d'ici. C'est aussi une exigence de Homebrew. Choisissez la dernière version disponible, pas nécessairement celle qui est liée ici.
  3. Installer Homebrew à partir de GitHub.
  4. Si vous rencontrez des problèmes, vous devrez peut-être effectuer les opérations suivantes après les étapes 1 et 2:
     $ sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer $ ln -s / opt / X11 / usr / X11

    … Tiré de ce post. Cela se produit sur certaines instances de Mountain Lion pour une raison quelconque.

Une fois cela fait, lancez Brew Doctor et vérifiez que tout fonctionne (comme indiqué sur les instructions du site Web de Homebrew)..


PHP

De manière prévisible, l'installation de PHP nécessite l'installation de certaines bibliothèques. Heureusement, Homebrew est là pour gérer ces installations pour nous. Installez les éléments suivants:

 brasser installer libjpeg brasser installer pcre brasser installer libxml2 brasser installer mcrypt

Une fois cela fait, téléchargez les fichiers source PHP depuis Php.net. Décompressez l'archive, ouvrez votre terminal et basculez vers le dossier source (par exemple, cd ~ / Téléchargements / php-5.4.5 / ou à tout autre endroit où vous avez téléchargé les sources)..

Si vous envisagez de travailler avec Zend Framework 2 et souhaitez commencer avec l'exemple d'application squelette créé par Rob «Akrabat» Allen ou si vous avez l'intention de déployer votre application dans plusieurs langues, vous avez besoin de l'assistance de php-intl. Pour permettre au script de configuration de prendre en compte php-intl lors de la construction du fichier makefile, nous devons installer une autre dépendance - ICU. Téléchargez ceci depuis ICU-Project.org et exécutez:

 tar xzvf icu4c-4_8_1-src.tgz cd icu / source ./runConfigureICU MacOSX make sudo make install

Cela gérait toutes les dépendances de base que PHP pourrait souhaiter de notre part (pour le moment). Nous pouvons maintenant enfin le construire et l'installer.

L'installation

Tout d'abord, dans le dossier source non archivé de PHP, exécutez la commande de configuration suivante:

 ./ configure \ --prefix = / usr \ --mandir = / usr / share / man \ --infodir = / usr / share / info \ --sysconfdir = / private / etc \ --with-apxs2 = / usr / sbin / apxs \ --enable-cli \ --with-config-chemin-fichier = / etc \ --with-libxml-dir = / usr \ --with-openssl = / usr \ --with-kerberos = / usr \ --with-zlib = / usr \ --enable-bcmath \ --with-bz2 = / usr \ --enable-calendar \ --with-curl = / usr \ --enable-dba \ --enable -exif \ --enable-ftp \ --with-gd \ --enable-gd-native-ttf \ --with-icu-dir = / usr \ --with-iodbc = / usr \ --with-ldap = / usr \ --with-ldap-sasl = / usr \ --with-libedit = / usr \ --enable-mbstring \ --enable-mbregex \ --with-mysql = mysqlnd \ --with-mysqli = mysqlnd \ --without-pear \ --with-pdo-mysql = mysqlnd \ --with-mysql-sock = / var / mysql / mysql.sock \ --with-readline = / usr \ --enable-shmop \ --with-snmp = / usr \ --enable-soap \ --enable-sockets \ --enable-sysvmsg \ --enable-sysvsem \ --enable-sysvshm \ --with-tidy \ --enable-wddx \ --with-xmlrpc \ --with-iconv-dir = / usr \ --with-xsl = / usr \ --enable-zip \ --with-imap = / usr / local / imap-2007 \ --with-kerberos \ --with-imap-ssl \ --enable-intl \ --with-pcre-regex \ --with-pgsql = / usr \ --with-pdo-pgsql = / usr \ - -with-freetype-dir = / usr / X11 \ --with-jpeg-dir = / usr \ --with-png-dir = / usr / X11

Une fois terminé, exécutez

$ make test

"Make test" exécute make et teste les compilations pour rechercher des erreurs

Comme mentionné dans la section sur la théorie de la construction, cela exécute make et teste la compilation. Cela peut prendre un certain temps, jusqu'à 30 minutes, car chaque facette de PHP est en cours de test. Lorsque vous avez terminé, si PHP a détecté des erreurs (et le sera probablement), signalez-les aux développeurs en suivant les instructions à l'écran. Ne vous inquiétez pas, tout va bien, les erreurs détectées sont généralement sans importance..


Comme vous pouvez le constater, 11503 tests doivent être effectués. Cela va prendre du temps.

Si le PHP d'origine est déjà activé et configuré, effectuez une sauvegarde de votre fichier php.ini maintenant. Il devrait être dans /etc/php.ini

Enfin, lancez ce qui suit pour installer réellement PHP.

$ sudo make install

Il est préférable de ne pas écraser le nouveau fichier php.ini avec votre ancien si vous avez effectué une sauvegarde. Au lieu de cela, copiez manuellement les valeurs dont vous avez besoin pour ne pas compromettre votre sécurité. Ainsi, nous nous assurerons que le nouveau fichier php.ini est entièrement compatible avec la version nouvellement installée..


Configuration Apache

Presque fini! Si vous aviez déjà activé PHP sur votre machine auparavant et que le seul but de lire cet article était de mettre à jour le PHP existant, vous avez terminé - tout devrait fonctionner.

Sinon, nous devons activer PHP dans l'installation Apache native d'OSX. Puisque le fichier httpd.conf sera probablement à l’emplacement par défaut, ouvrez-le via Terminal dans TextEdit comme suit:

$ SUDO_EDITOR = "open -FWne" sudo -e /etc/apache2/httpd.conf

J'utilise la commande SUDO EDITOR ici pour ouvrir le fichier dans TextEdit, tout simplement parce que j'estime qu'il est beaucoup plus facile d'éditer des fichiers que Vim ou Nano. J'aurais aussi bien pu utiliser “sudo vim /ect/apache2/httpd.conf” pour le modifier dans vim.

Décommentez ensuite les lignes suivantes (elles ne sont pas côte à côte - utilisez la commande Rechercher pour les localiser)

 LoadModule php5_module libexec / apache2 / libphp5.so Inclure /private/etc/apache2/extra/httpd-vhosts.conf

La première ligne active l'utilisation de PHP en tant que module Apache. La deuxième ligne est là pour que le fichier principal httpd.conf (configuration d’Apache) récupère les hôtes virtuels à partir du fichier vhosts et nous évite les problèmes liés à une édition excessive dans le fichier httpd.conf, trop sensible. Cela présente l’avantage supplémentaire de vous permettre de sauvegarder un fichier vhosts quelque part en dehors de / etc, et de le sauvegarder pour d’autres machines de développement ou des réinstallations..

Une approche très pratique consiste à l’héberger sur un service en nuage tel que Google Drive ou Dropbox et à y accéder directement à partir de httpd.conf. Ainsi, lorsque vous ajoutez un nouvel hôte virtuel, il est automatiquement installé sur chacune de vos machines dès le redémarrage du serveur Apache local..


Ajout d'un Vhost et conclusion

Un hôte virtuel est un domaine imaginaire hébergé localement. Il vous permet essentiellement de tester vos projets dans le navigateur en entrant différentes URL. Par exemple, sur ma machine, je pourrais visiter http: //mactuts.tutorial et voir l'application Hello World dans laquelle cette section se termine, ou je pourrais visiter http://mw.dev pour voir la version de développement d'un projet que je suis. travaille sur. Tout simplement, une URL différente déclenche un dossier source différent et ouvre un projet différent en tant que site Web. Voici un guide rapide sur la façon d’ajouter un vhost - si vous avez déjà configuré vhosts ou si vous comprenez tout ce qui les concerne, n'hésitez pas à passer cette section..

Étape 1: Modification du fichier hosts

Premièrement, nous allons nommer notre exemple vhost "mactuts.tutorial". Pour ce faire, ajoutez une entrée dans / etc / hosts qui ressemble à ceci:

 127.0.0.1 mactuts.tutorial

Cela signifie que l’accès à l’URL http: //mactuts.tutorial dans le navigateur ira à 127.0.0.1:80 ou, en d’autres termes, au port 80 de notre serveur local (Apache)..


Ceci est un exemple de fichier hosts. Notez que j'ai également d'autres hôtes virtuels configurés sur cette machine.

Étape 2: Ajouter un vhost Apache

Ajoutez ensuite un bloc dans etc / apache2 / extra / httpd-vhosts.conf qui ressemble à ceci:

  ServerName mactuts.tutorial DocumentRoot "/ Users / USERNAME / Sites / mactuts" ServerAdmin [email protected]  Options Index FollowSymLinks AllowOverride All Ordre autoriser, refuser Autoriser de tous  

Remplacez USERNAME par votre propre nom d'utilisateur, sans les accolades. Cela indique à Apache ce qui suit: Si vous avez quelque chose sur le port 80, vérifiez son nom d’URL original. Si c'est mactuts.tutorial, configurez toutes ces options.

Étape 3: Redémarrer Apache

Ensuite, redémarrez Apache avec

 $ sudo apachectl restart

Étape 4: Créer le fichier d'index

3) Créez un dossier "/ Users / USERNAME / Sites / mactuts" (bien sûr, remplacez USERNAME par le nom de votre utilisateur OSX) et placez-y un fichier index.php avec le contenu suivant:

 

Étape 5: Vérifiez-le!

Allez à http: //mactuts.tutorial. Vous devriez voir "Hello World"!


Des alternatives

Récemment, une alternative à cette approche est apparue - installer PHP via Homebrew lui-même. Le problème, c'est qu'il n'y a pas de chaînes officielles au moment d'écrire ces lignes (début août 2012), il faut donc activer un autre robinet pour Homebrew..

En outre, la version OS X sur laquelle j'ai testé cela, Mountain Lion, n'a malheureusement pas été installée de cette manière et m'a jeté de vagues erreurs que je n'ai pas pu résoudre. Si vous vous sentez aventureux, consultez cette publication et essayez de la modifier en fonction de votre propre système d'exploitation et de la version PHP souhaitée..

Une alternative plus stable semble être disponible ici, mais les commentaires sont laxistes et il n’ya pas grand-chose à faire. Je laisse donc ces méthodes à l’expérimentation des lecteurs..

Mises à jour

Voici quelques alternatives suggérées par les commentateurs depuis la publication de l'article.

php_osx
DaftViking, un commentateur, a attiré mon attention sur une autre solution (qui semble bien fonctionner) qui inclut l'installation de PHP via php_osx..

Macports
Bien que j'encourage la suppression progressive de Macports au profit de Homebrew, il semble que Macports ait également ajouté une version stabilisée de PHP, ce qui pourrait donc constituer une autre alternative efficace. Personnellement, je n'ai pas testé cette approche, mais pour ceux qui maîtrisent Macports, des informations supplémentaires sont disponibles ici. Merci à Redditor nemeth88 pour le heads-up!


Conclusion

OS X est livré avec une configuration PHP et Apache préinstallée. Malheureusement, la version de PHP fournie est extrêmement obsolète et ne se met jamais à jour, sauf lors de l’installation d’une nouvelle version du système d’exploitation. À ce moment-là, la nouvelle version de PHP incluse est déjà obsolète. En plus de récupérer un paquet * AMP (Apache / Mysql / Php) (qui a rarement, sinon jamais, de versions à jour de PHP), que peut-on faire sauf le mettre à jour manuellement?

Dans ce tutoriel, nous avons abordé les bases de la création à partir des sources, nous avons construit et installé une nouvelle version mise à jour de PHP. Nous avons même installé Homebrew, ce qui simplifie grandement l'installation de logiciels et de bibliothèques. . Nous avons également abordé la création d’un hôte virtuel et testé notre installation pour nous assurer de son fonctionnement. J'espère que vous avez apprécié et que tout a fonctionné comme prévu. Si vous rencontrez des problèmes, n'hésitez pas à poster dans les commentaires et nous allons travailler sur les problèmes ensemble.