Installation Apache PHP Mysql sur Mac OS X Lion

Publié par Philippe VINCENT-ROYOL, le 25/07/2011 16:50 dans ezpublish; apache; php; mysql; mac osx | 15 commentaires

Mac OSX Lion est enfin disponible et il est grand temps de se mettre à jour. Ayant résintaller complètement mon macbook pro, je souhaitais conserver apache et php que fourni Apple. Chose faite :)


Apache mysql php logo

Une grande partie de ce qui suis sera traité dans le terminal.

Apache

Vous pouvez vérifier la version d'apache tout simplement avec :

httpd -v

Editer en root le fichier /etc/apache2/httpd.conf. Cherchez la ligne 

LoadModule php5_module libexec/apache2/libphp5.so

et vérifier que le dièse (#) n'existe pas. De même pour la ligne 

Include /private/etc/apache2/extra/httpd-userdir.conf 

(ceci va nous permettre d'accéder au dossier Sites de notre répertoire)

Vous pouvez sauvegarder et quitter puis relancer apache via

sudo apachectl restart

En vous rendant sur http://localhost vous devriez obtenir un superbe "It's work"

J'ai choisi de changer le User et Group d'Apache afin qu'il corresponde à mon login et groupe pour me simplifier la vie :)

MySQL

Nous allons récupérer les sources sur http://dev.mysql.com/downloads/mysql/ . Il est conseillé de récupérer Mac OS X ver. 10.6 (x86, 64-bit), DMG Archive.

L'ordre d'installation du dmg est simple : dans l'ordre

  • mysql5.5.xxx
  • MySQLstartupitem
  • MySQLPrefPane

Pour lancer MySQL rien de plus simple : rendez vous dans les Préférences Système puis dans la partie Autre cliquez sur MySQL et vous pourrez démarrer / arrêter le serveur.

Nous allons vérifier que tout fonctionne. 

Un simple 

/usr/local/mysql/bin/mysql -v

devrait suffir et vous donner la version de mysql installé. Afin d'éviter de devoir écrire le chemin complet pour accéder à mysql, nous allons éditer le fichier ~/.bash_profile

Nous rajoutons

export PATH="/usr/local/mysql/bin:$PATH"

On recharge le terminal avec les nouveaux paramètres 

source ~/.bash_profile

et vous devriez pouvoir executer 

mysql -v

Et enfin pour sécuriser mysql (configuration d'un mot de passe root entre autres)

sudo mysql_secure_installation

phpMyAdmin

Dans un premier temps, on récupère les sources sur http://www.phpmyadmin.net/home_page/downloads.php, on extrait et renomme le dossier en phpmyadmin que l'on placera dans le dossier ~/Sites

On execute,

sudo mkdir /var/mysql
sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock

afin d'éviter une erreur ayant pour code 2000, puis

mkdir ~/Sites/phpmyadmin/config
chmod o+w ~/Sites/phpmyadmin/config

Il faut se rendre après à l'url http://localhost/~username/phpmyadmin/setup/ . Cliquez sur le bouton "new server" puis dans l'onglet "Authentication" renseigné le champs "Password for config auth". Sauvez deux fois : une sur cette page puis sur l'autre. Vous pourrez tester le bon fonctionnement de la config sur la page http://localhost/~username/phpmyadmin/

Installation de la librairie mcrypt

Mcrypt n'étant pas installé par défaut avec Mac OS X Lion, il faut donc l'installer par soit même (oh joie). Il faut donc récupérer la librairie sur le site http://sourceforge.net/project/showfiles.php?group_id=87941. Attention a bien récupérer libmcrypt !

Il faut aussi récupérer les sources php correspondante à votre version. Ayant la 5.3.6 les sources sont ici http://us.php.net/get/php-5.3.6.tar.gz/from/a/mirror

Vous devez aussi avoir Xcode 4.1 pour pouvoir compiler la suite.

Petite info : j'ai déplacé les sources et extraites dans le dossier /usr/local/src/

Décompresser les deux fichiers et rendez vous dans le dossier de libmcrypt. Lancez les commandes suivantes :

MACOSX_DEPLOYMENT_TARGET=10.7 CFLAGS='-O3 -fno-common -arch i386 -arch x86_64' LDFLAGS='-O3 -arch i386 -arch x86_64' CXXFLAGS='-O3 -fno-common -arch i386 -arch x86_64' ./configure --disable-dependency-tracking
make -j6
sudo make install

Maintenant autour du dossier php-5.3.6/ext/mcrypt

/usr/bin/phpize
MACOSX_DEPLOYMENT_TARGET=10.7 CFLAGS='-O3 -fno-common -arch i386 -arch x86_64' LDFLAGS='-O3 -arch i386 -arch x86_64' CXXFLAGS='-O3 -fno-common -arch i386 -arch x86_64' ./configure --with-php-config=/Developer/SDKs/MacOSX10.7.sdk/usr/bin/php-config
make -j6
sudo make install

PHP

Si le fichier php.ini n'existe pas 

sudo cp /etc/php.ini.default /etc/php.ini

Quelques modifications à apporter :

memory_limit = 256M
display_errors = On
html_errors = On
enable_dl = On

Ne pas supprimer le point virgule devant la ligne ;extension_dir = "./"

Puis ajouter extension=mcrypt.so 

Vérifier dans le phpinfo que vous voyez bien la partie mcrypt.

XDebug

Apple a déjà préparé xdebug pour son utilisation (elle n'est pas belle la vie ?). Pour cela il vous suffit tout simplement de décommenter la ligne 

;zend_extension="/usr/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so"

en supprimant le point virgule dans le fichier /etc/php.ini.

PEAR

Pour des raisons obscures, Apple ne l'a pas installer par défaut. Pour remédier à ce problème rien de plus simple. Rendez vous dans le dossier /usr/lib/php puis un petit

sudo php install-pear-nozlib.phar

et une modification du php.ini : remplacer la ligne ;include_path = ".:/php/includes" par include_path = ".:/usr/lib/php/pear"

Un petit update du pear

sudo pear channel-update pear.php.net
sudo pecl channel-update pecl.php.net
sudo pear upgrade-all

Virtual Host

Une simple démarche aussi. Editer le fichier /etc/apapche2/httpd.conf et en fin de fichier rajouter

NameVirtualHost *:80
 Include /private/etc/apache2/other/*.conf

Vous n'aurez plus qu'à créer vos vhosts dans le dossier /private/etc/apache2/other/

Philippe VINCENT-ROYOL

Consultant et expert Technique chez eZ Systems France (http://ez.no/fr). Adepte de nouvelles technologies, photos, etc.

Commentaires

Default Avatar
escort chinoise 12/06/2013 16:17
Raisonnablement division de l'information. Je suis tombé sur une personne ? S Web en accession ville principale de dire quand je trouve en réalité voulu équilibrer vos articles du site ou blogue . Quoi qu'il en soit je? Suis capable d'être à un enregistrement dont je pénètre dans la victoire que vous avez réellement l'accessibilité persistante rapidement .
Default Avatar
guizme555 10/08/2012 15:33
Bonjourt Philippe,
Merci pour ton retour qui est exactement ce que j'avais fini par faire de moi même :) Tout fonctionne à présent. Merci encore.
Default Avatar
Philippe 10/08/2012 15:21
Hello guizme555,

De mon utilisation quotidienne, j'ai fait quelques changements. Le fait d'avoir une url du type http://localhost/~username/ ne m'interessant pas, j'ai laissé commenter la ligne "Include /private/etc/apache2/extra/httpd-userdir.conf"

Le fichier httpd-vhosts.conf est celui par défaut d'Apache. J'ai par contre fait une manière un peu "sale" pour la suite:
Dans le dossier others/ je crée mes différents VirtualHost (ex: www.toto.local www.example.local localhost). Pour le localhost afin d'être tranquil, voila la configuration:


<VirtualHost *:80>
ServerName localhost

DocumentRoot "/Users/mon_user/Sites"
DirectoryIndex index.php index.html

<Directory "/Users/mon_user/Sites">
Options Indexes FollowSymLinks Multiviews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

ErrorLog "/private/var/log/apache2/localhost-error_log"
CustomLog "/private/var/log/apache2/localhost-access_log" common

</VirtualHost>

En compartimentant bien chaque vhost, tu ne devrais plus avoir de soucis.

Philippe
Default Avatar
guizme555 27/07/2012 18:15
Bonjour et merci pour ce tutorial qui m'a bien simplifié la vie !
J'ai cependant une question / problème à soulever. J'ai écumé pas mal de forum ou autre avant de poser ma question ... Bon le problème est que je n'arrive pas à créer plusieurs vhost comme site1.local / site2.local / etc. J'ai bien decommenté ma ligne "Include /private/etc/apache2/extra/httpd-userdir.conf " dans /etc/apache2/httpd.conf et ajouter les deux lignes à la fin du même fichier. Mon fichier /etc/apache2/extra/httpd-vhosts.conf ne contient que les éléments par défauts. Bref tout est OK mais non. Chose d'autant plus surprenante, si j'essai d'aller sur monUser.local, ça fonctionne très bien alors qu'il n'existe pas de vhost pour ce même user ... Bref j'aurai besoin d'un peu d'aide si possible ! Merci par avance !
Default Avatar
Philippe 16/05/2012 14:36
bonjour à vous,

Désole pour le temps de réponse, j'ai un soucis avec le système de notifications :(

@Mallan > J'ai un dossier other dans le dossier apache (qui est inclu par default dans la conf d'apache). Tu as juste à créer un vhost du type example.conf pour qu'il soit pris en charge.
Un exemple de virtualhost simple :

<VirtualHost *:80>
AddDefaultCharset UTF-8

ServerName www.test.local
ServerAlias admin.test.local

DocumentRoot "/Users/pvr/Sites/test"
DirectoryIndex index.php index.html

<Directory "/Users/pvr/Sites/test">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>

RewriteEngine On

Include /private/etc/apache2/other/inc/ezrewriterules.conf
Include /private/etc/apache2/other/inc/modphp.conf

ErrorLog "/private/var/log/apache2/test.local-error_log"
CustomLog "/private/var/log/apache2/test.local-access_log" common

</VirtualHost>





@Flade > la commande doit être lancée dans le dossier sinon tu as cette erreur


@Florian > interessant. Je rajouterais cela dans la docuementation alors

@David > A chaque fois que tu decompresses un dossier, tu dois aller dans ce dossier afin d'executer les commandes ./configure make et sudo make install tjrs dans cet ordre.
Pour ton php-config tu dois le passer en paramètre à configure. Donc c'est bien ./configure --with-php-config=/usr/bin/php-config
Default Avatar
David 26/04/2012 00:26
Bonjour,

je suis quelque peu novice et certaines explications sont pour moi un peu trop succintes. Autoconf n'est pas installe non plus chez moi.
Pourriez vous détailler un peu plus la partie suivante:

"Quelques modifications ont été nécessaires cependant pour la partie mcrypt:
- autoconf n'était, pour moi, pas installé par défaut, téléchargement des sources ici "ftp://ftp.gnu.org/gnu/autoconf/""
+ Quelles versions choisir, quelle commande utilisee pour decompresse et dans quel repertoire ?

- et installation classique (configure, make, sudo make install)
+ on lance juste la commande configure ? Dans quel dossier ? avec des options ?
+ idem pour les autres dans cet ordre ?

"- l'emplacement de php-config a changé: which php-config donne "/usr/bin/php-config".
Et donc "./configure" à lancer avec "--with-php-config=/usr/bin/php-config"."
+ cette commande est a lancer apres celles ci-dessus ou a la place de la commande configure ci-dessus ?

Merci pour votre aide
Bonne journee
David
Default Avatar
florian 08/04/2012 21:40
Bonjour,

Je viens de passer à Lion aujourd'hui. (Lion: 10.7.3, Xcode: 4.3.2).
Excellente feuille de route pour l'installation de ces différents composants. Belle compilation de toutes ces manipulations qu'on ne fait que trop rarement pour s'en souvenir. J'ai même été agréablement surpris d'apprendre qu'on pouvait désormais configurer phpmyadmin et sécuriser mysql sans se prendre la tête. (Même si le 'setup' phpmyadmin ressemble plus à un gadget mal pluggé qu'autre chose).

Quelques modifications ont été nécessaires cependant pour la partie mcrypt:
- autoconf n'était, pour moi, pas installé par défaut, téléchargement des sources ici "ftp://ftp.gnu.org/gnu/autoconf/" et installation classique (configure, make, sudo make install)
- l'emplacement de php-config a changé: which php-config donne "/usr/bin/php-config".
Et donc "./configure" à lancer avec "--with-php-config=/usr/bin/php-config".

Voilà, si ça peut aider quelqu'un.
Default Avatar
Flade 16/03/2012 08:28
Bonjour, je trouve l'erreur au niveau" Décompresser les deux fichiers et rendez vous dans le dossier de libmcrypt. Lancez les commandes suivantes :"
command not found
jai bien déplacé les 2 dossiers sans /usr/local/src mais src n'existait pas donc je l'ai crée// je n'ai pas renommé les 2 dossiers. il faut les renommer?
il faut lancer la commande dans le dossier? ou juste comme ca avec le terminal?
Merci :)
M'avertir des nouveaux commentaires
Texte anti-spam :*

Entrez les deux mots ci-dessous, avec ou sans espace.
Les lettres ne sont pas sensibles à la casse.
Une difficulté pour lire ? Essayer un autre

Se souvenir de moi

Catégories

Popular post

About us

Bonjour et bienvenue sur le Blog ! Vous atterissez sur une nouvelle version porté par le html5 et css3. Malheureusement pour les utilisateurs d'IE des bugs peuvent encore arriver. Mais n'hésitez pas à me les remonter par mail.

Très bonne visite et à bientôt !

Twitter update

Pas de nouveaux tweets...

Flux de photos

Contact

Location: Paris
Email: vincent.royol@gmail.com
Twitter: dspe
Copyright © 2013 Pheelit.fr ! All rights reserved. W3C standard website. Valid (x)html / css
by Philippe VINCENT-ROYOL