Installation d’un serveur de développement COMPLET sur MacOS X avec MacPorts

Quand on a rien à dire (ou pas le temps) on ne dit rien.

Heureusement, tout à une fin alors aujourd’hui nous parlerons de l’installation complète d’un serveur d’environnement de développement sur Mac. Ce tutoriel se base sur la dernière version de chacun des logiciels et vous expliquera step-by-step comment installer et configurer votre serveur afin d’obtenir un environnement sain en évitant le maximum de manipulations.

Pré-requis

Le système d’Apple n’ayant pas de gestionnaire de package digne de ce nom, le pré-requis indispensable est l’installation de macports. Il vous faudra télécharger le programme correspondant à votre système qui vous demandera lui-même d’installer Xcode afin de pouvoir compiler tous les binaires.

Première étape : La mise à jour de MacPort

Une fois MacPort installé, la première étape consiste en la mise à jour du programme. Pour cela, rien de bien compliqué puisqu’il vous suffira de taper la commande suivante :

sudo port selfupdate

MacPort devrait se mettre à jour ainsi que sa liste de package. Cela permettra de pouvoir mettre en place les dernières versions des différents serveurs.

Seconde étape : Installation d’Apache

Passons à l’installation d’Apache, à partir de ce moment soyez un peu patient car l’installation ne se fait pas forcément en 5 minutes alors prenez une bière (ou un coca) et profitez un peu des flocons de neige en hiver ou de votre voisine en maillot de bain en été.

sudo port install apache2
sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist

Troisième étape : Installation de MySQL

MySQL maintenant, un peu plus d’étapes de configuration mais cela devrait plutôt bien se passer.

sudo port install mysql5-server
sudo -u mysql mysql_install_db5
sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist
/opt/local/lib/mysql5/bin/mysql_secure_installation

La dernière commande vous invitera à rentrer votre identifiant et mot de passe, soyons clair, même en environnement de développement, il faut toujours un mot de passe à votre compte root. Vous pourrez au passage supprimer les tables test lorsque le script vous le demandera.

Quatrième étape : Installation de PHP

L’étape qui fait mal puisque la moins bien documenté pour MacPort depuis le changement de version. Heureusement tout devrait bien se passer pour nous. Tous les modules que vous allez installer dans la suite ne sont pas forcément indispensables mais disons que vous serez bien équipé pour la suite.

sudo port install php5 +apache2 +pear
sudo port install php5-mysql
sudo port install php5-eaccelerator
sudo port install php5-exif
sudo port install php5-gd
sudo port install php5-gettext
sudo port install php5-iconv
sudo port install php5-imagick
sudo port install php5-mbstring
sudo port install php5-mcrypt
sudo port install php5-openssl
sudo port install php5-sqlite
sudo port install php5-xmlrpc
sudo port install php5-xsl
sudo port install php5-zip

Configuration de PHP

Maintenant que tout est installé, l’étape de configuration grâce à laquelle nous allons pouvoir bientôt travailler.

cd /opt/local/etc/php5/
sudo cp php.ini-production php.ini

Pourquoi copier le fichier php.ini de production ? Tout simplement car c’est le plus restrictif et je préfère pour ma part modifier un fichier restrictif qu’un fichier de configuration trop permissif. Travaillant en plus avec Symfony, je n’ai pas trop à me soucier de ça :)

Nous allons donc éditer notre fichier php.ini. Il vous faudra rechercher la ligne suivante, j’utilise pour ma part vi dont voici les commandes principales :

Ouvrir un fichier : vi <nom du fichier>
Rechercher dans le fichier : <appuyer sur echap puis faire> /<occurrence à rechercher>
Editer un fichier : <appuyer sur la touche i>
Enregistrer un fichier : <appuyer sur echap puis faire>:w
Quitter un fichier : <appuyer sur echap puis faire>:q
Forcer un quit sur un fichier modifié : <appuyer sur echap puis faire>:q!
sudo vi /opt/local/apache2/conf/httpd.conf
<Rechercher> DirectoryIndex index.html
<Modifier par> DirectoryIndex index.php index.html
 
<Rechercher>Include conf/extra/
<Ajouter>Include conf/extra/mod_php.conf
<Enregister>
 
sudo vi /opt/local/etc/php5/php.ini
<Rechercher>mysql.default_socket
<Modifier par>mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock
 
<Rechercher>mysqli.default_socket
<Modifier par>mysqli.default_socket = /opt/local/var/run/mysql5/mysqld.sock
 
<Rechercher>pdo_mysql.default_socket
<Modifier par>pdo_mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock
 
<Rechercher>date.timezone
<Modifier par>date.timezone = Europe/Paris
 
<enregister>
sudo /opt/local/apache2/bin/apachectl -k restart

Votre environnement devrait être prêt !

Création d’un fichier phpinfo

sudo vi /opt/local/apache2/htdocs/phpinfo.php
<Ajouter><?php phpinfo(); ?>
<Enregister>

Votre fichier devrait être accessible à l’adresse http://localhost/phpinfo.php Vous pourrez à ce moment la vérifier vos différents modules et vérifier que vos drivers mysql fonctionnent correctement (ils devraient apparaitre dans la liste, recherchez simplement « pdo »).

Installation de phpMyAdmin

Afin de faciliter votre maintenance MySQL, installons phpMyAdmin.

sudo port install phpmyadmin
sudo vi /opt/local/apache2/conf/httpd.conf
 
<Rechercher>Include conf/extra/
<Ajouter>Include conf/extra/httpd-phpmyadmin.conf
 
sudo vi /opt/local/apache2/conf/extra/httpd-phpmyadmin.conf
 
<Ajouter les éléments suivants>
 
AliasMatch ^/phpmyadmin(?:/)?(/.*)?$ "/opt/local/www/phpmyadmin$1"
 
<Directory "/opt/local/www/phpmyadmin">
  Options -Indexes
  AllowOverride None
  Order allow,deny
  Allow from all
 
  LanguagePriority en de es fr ja ko pt-br ru 
  ForceLanguagePriority Prefer Fallback
</Directory>
 
<Enregister>
sudo /opt/local/apache2/bin/apachectl -k restart

Utilisations de vhosts

N’importe qui vous le dira, les vhosts, c’est le bonheur. Cette étape est cependant facultative. Nous allons donc mettre le tout en place pour en bénéficier.

sudo vi /opt/local/apache2/conf/httpd.conf
<Rechercher> Include conf/extra/
<Ajouter> Include conf/extra/httpd-vhosts.conf
<Supprimer la ligne> Include conf/extra/httpd-phpmyadmin.conf
<Enregister>
 
sudo vi /opt/local/apache2/conf/extra/httpd-vhosts.conf

Nous allons ajouter deux vhosts principaux afin de pouvoir utiliser le répertoire Sites de l’arborescence Mac. Au passage, modifions le vhost pour phpMyAdmin.

Attention, il s’agit de ma propre configuration, à vous de la personnaliser.

<VirtualHost *:80>
    ServerAdmin pocky@pockyworld.com
    DocumentRoot "/Users/Alexandre/Sites/"
    ServerName www.pockyworld.local
 
    <Directory "/Users/Alexandre/Sites/">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from All
    </Directory>
 
</VirtualHost>
 
<VirtualHost *:80>
    ServerAdmin pocky@pockyworld.com
    DocumentRoot "/opt/local/www/phpmyadmin/"
    ServerName sql.pockyworld.local
 
    <Directory "/opt/local/www/phpmyadmin">
       Options -Indexes
       AllowOverride None
       Order allow,deny
       Allow from all
 
       LanguagePriority en de es fr ja ko pt-br ru
       ForceLanguagePriority Prefer Fallback
    </Directory>
 
</VirtualHost>

N’oubliez pas de relancer Apache après avoir effectué cet ajout de vhost.

sudo /opt/local/apache2/bin/apachectl -k restart

Le petit plus : Installation de GIT

Le petit extra spécial geek fan du versioning

sudo port install git-core +svn
 
git config --global user.name "Votre nom"
git config --global user.email "Votre adresse mail"

Attention pour Git, tout n’a pas directement fonctionné du premier coup, n’hésitez pas à relancer la commande d’installation.

Conclusion

Votre environnement de travail devrait fonctionner et être idéal pour pouvoir travailler. N’oubliez pas de personnaliser votre fichier de configuration de php (le php.ini) suivant vos besoins. Celui livré par défaut dans ce tutorial n’affichera par exemple pas les erreurs PHP ce qui peut être embêtant en phase de développement :) .

Vous ne devriez pas (avec les vhosts) avoir de problème d’autorisations d’écriture dans votre répertoire Sites car il est créé par le système lors de l’installation de MacOS. Dans le cas ou vous utilisiez le répertoire par défaut (sans vhost) il vous faudra modifier les autorisations (pomme + i sur le répertoire) pour vous autoriser l’écriture de fichiers.




Theme Forest

Comments

  1. Joris novembre 23rd

    Comment Arrow

    Bien :)


  2. Charles décembre 1st

    Comment Arrow

    Bonjour Alexandre,

    J’aimerais avoir gettext sans le risque de tout réinstaller. Est-ce possible?

    J’ai utilisé l’installation par défaut de Apple (OS X 10.5: Apache 2, PHP 5.2.11 et Mysql 5.0) depuis plusieurs mois. J’ai plusieurs sites (version développement) installés sur notre petit serveur G4.

    Par conséquent, l’install d’Apache 2 et de Mysql ont été fortement personnalisé (plusieurs BD, vhosts, etc.). Je n’ose pas y toucher.

    Est-ce possible, à l’intérieur de ce setup, de recompiler seulement PHP pour y inclure Gettext?


  3. Alexandre décembre 2nd

    Comment Arrow

    Bonjour Charles,

    Je ne pense pas que macports puisse recompiler un autre apache que le sien étant donné que ce sont deux choses différentes.

    Tu peux donc essayer d’installer le serveur en parallèle et de transférer un backup du premier serveur à l’autre (c/c pour les sites et vhosts et transfert via mysqladmin pour la bdd par exemple).

    Si le problème se limite à GetText, tu peux aussi aller voir du coté des alternatives comme par exemple XLIFF fonctionnant de la même manière que getText mais avec un fichier xml


  4. Alexandre décembre 13th

    Comment Arrow

    A signaler, petite mise à jour du tuto afin d’installer php5-iconv car je me suis heurté à un petit problème suite à l’utilisation de Zend Lucene ;)


  5. @ramis juin 16th

    Comment Arrow

    Tip top. Très bon tutoriel rapide et complet pour comprendre l’avantage de macport et obtenir un serveur local prêt pour le développement.

    Merci


Add Yours

  • Author Avatar

    YOU


Comment Arrow



About Author

Alexandre

Tenancier de ce blog, je suis avant tout un fan du web et de ses technologies. Si vous voulez en savoir plus, rendez-vous sur la page à propos.