Apache, MySQL, PHP natif sur macOS

apache

Bien qu’il soit possible d’utiliser des solutions packagées pour un AMP sur Mac, il est possible et assez simple d’utiliser ce qui est déjà inclus dans OSX pour développer sur son Mac. En effet, Apache et PHP sont disponibles dans l’OS de la marque à la pomme. Il suffit de tout paramétrer correctement pour y avoir accès.

Attention, ce tutoriel nécessite l’utilisation sommaire de la ligne de commande. Je pars du principe que vous savez un minimum l’utiliser.

Apache & PHP

OSX El Capitan inclus Apache 2.4.16, ainsi que PHP 5.5.27, voici comment les activer.

Quelques commandes pour commencer (celles-ci sont à entrer dans votre terminal)

Pour démarrer Apache :

Pour arrêter Apache :

Pour relancer Apache :

Une fois Apache lancé, rendez-vous sur : http://localhost pour vérifier qu’il fonctionne bien. Vous devriez être accueilli par ceci :

apache_itworks

De base, le répertoire de stockage des fichiers lisibles par Apache se trouve dans

Pas très pratique, car il nécessite, pour y écrire, des droits d’administration, ce qui fait que vous, simple utilisateur, ne serez pas aussi libre que ça, et devrez entrer votre mot de passe root toutes les 2s. La solution consiste à utiliser un répertoire accessible pour l’utilisateur, typiquement dans son dossier d’accueil, OSX utilise le dossier Sites. Créez ce dossier dans l’explorateur.

Pour ce faire, il suffit d’autoriser Apache à lire et exécuter du code dans ce répertoire.
Direction le terminal :

Puis copiez le code suivant, en modifiant votre « username » pour correspondre au nom de votre dossier d’accueil.

Les permissions du fichier devraient être les suivantes :

Si vous devez les changer :

Ouvrez maintenant le fichier httpd.conf

Et vérifiez que les modules suivants sont décommentés :

Enlevez aussi le check devant la ligne :

pour qu’elle ressemble à :

Sauvegardez vos changements et modifications.

Ouvrez après le fichier suivant : 

et décommentez :

Sauvegardez vos changements et redémarrez Apache pour que ces paramètres soient pris en compte.

Vous pouvez maintenant vous rendre sur : http://localhost/~votre_nom/

Vous devriez voir : 

apache_userdir

Permettre le rewriting d’url et les modifications via .htaccess

Direction httpd.conf

Et changez la ligne suivante pour qu’elle ressemble à ceci : 

apache_allowoverride

Décommentez aussi la ligne (normalement fait plus haut): 

Pour vérifier que PHP fonctionne, créez un fichier phpinfo.php dans votre répertoire

avec pour contenu :

Puis, rendez-vous dans votre navigateur :

Vous devriez voir ceci : 

apache_php_elcapitan

MYSQL

MySql n’est pas intégré dans OSX nativement, il convient donc de le télécharger depuis le site de MysqL.

mysql_el_capitan

Choisissez la version la plus à jour en DMG, cliquez sur « download« , puis sur la page suivante « No thanks, just start my download », tout en bas de la page.

no_thanks_mysql

Installez Mysql puis démarrez le depuis le panneau apparu dans les préférences système. 

mysql_el_capitan_preference_panel

Ou via le terminal : 

Pour trouver la version de Mysql depuis le terminal, tapez :

Dernière étape, définissez le mot de passe root pour mysql à l’aide de la commande suivante : 

Attention ! il faut utiliser les ‘quotes’ ici.

Voilà ! Tout est en place ! Pour vous connecter et gérer vos bases Mysql je ne peux que vous conseiller l’excellent et très gratuit SequelPro.

Bon développement !

[ecko_link url= »http://coolestguidesontheplanet.com/get-apache-mysql-php-and-phpmyadmin-working-on-osx-10-11-el-capitan/ »]Source de l’article[/ecko_link]

Auteur : Matthieu Bousendorfer

Matthieu Bousendorfer aka edenpulse — Directeur Artistique, Paris. Geek & minimal design addict.

21 pensées sur “Apache, MySQL, PHP natif sur macOS”

    1. Il n’y a pas d’erreurs dans le tuto.
      Tu définis bien dans le fichier /etc/apache2/users/username.conf le répertoire /Users/ChDUP/Sites
      As-tu crée le répertoire /Users/ChDUP/Sites à l’aide de la commande sudo ? Si oui, supprimes le et récrée le normalement.

      1. En fait ce répertoire existait déjà.
        Pour être précis, j’utilisais le répertoire /Users/ChDUP/Sites/apache sur Yosemite
        Mais le fonctionnement était différent, http://localhost m’amenait directement dans ce répertoire
        (je ne sais plus quel tuto j’avais suivi à l’époque mais j’aimerai bien retrouver ce comportement)

        Je viens de réessayer en créant un dossier apache dans /Users/ChDUP/ par le finder
        J’ai suivi ton tuto en remplaçant Sites par apache
        Même erreur au final

  1. Tu dois avoir réglé dans ce cas des paramètres différents, notamment au niveau du fichier /etc/hosts qui peut provoquer ce genre de soucis. Ou avoir défini des vhosts… Si tu as une redirection de faite ton erreur est normale, car il va chercher des fichiers qui n’existent pas.
    Sans plus d’infos sur le tutoriel que tu as suivi, je ne pourrais pas t’aider. La configuration apache est une chose assez complexe, et comporte beaucoup d’éléments. Comme je l’explique dans mon article, http://localhost/ va classiquement chercher les fichiers dans /Library/WebServer/Documents/
    Pour utiliser /Users/ChDUP/Sites/apache, il faut que tu mettes dans ton fichier /etc/apache2/users/username.conf
    le répertoire suivant :
    Directory « /Users/ChDUP/Sites/apache »
    N’oublies pas de redémarrer apache entre les changements effectués.
    Puis te rendre dans ton navigateur sur : http://localhost/~ChDUP/Sites/apache

    1. En fait j’avais suivi le tuto de grafikart
      http://www.grafikart.fr/tutoriels/mac-os/yosemite-apache-php-mysql-524

      J’ai modifié mon chemin de DocumentRoot dans httpd.conf pour le faire pointer vers ChDUP/Sites/apache et du coup mon http://localhost pointe directement vers ce dossier maintenant, et ça fonctionne
      Quelques modifs dans bash_profile pour refaire fonctionner mysql et tout est ok maintenant

      grand merci !

      juste une chose : quand je vais dans les préférences systèmes, MySQL, le service est toujours actif
      J’ai beau faire « stop MySQL Server », ça ne l’éteint pas
      une idée la-dessus ?

  2. Bonjour,

    super et merci pour le tuto
    je ne comprends pas bien pourquoi le php n’arrive pas à se lancer (le test échoue) pourtant les instructions précédentes sont bonnes, j’ai bien vérifié que libphp est bien décoché

    avez-vous une piste pour m’orienter vers un prb?
    D’avance merci

  3. Bonjour,
    Je ne suis pas un spécialiste mais il me semble qu’il y a une erreur dans votre tuto :
    Pour arrêter Apache :
    sudo apachectl stop et non pas
    sudo apachectl start

  4. je ne comprends pas j’ai tout paramètre normalement pour configurer le fichier confond de phpmyadmin avec le root et le mot de passe de mysql et j’ai invariablement la meme erreur : #1045 – Access denied for user ‘root’@’localhost’ (using password: YES)

    1. J’ai le même problème que toi et aucunes solutions proposées ailleurs ne fonctionnent.
      Sequel Pro me retourne cette erreur de connexion quand je tente de me connecter avec le mot de passe générer par MySQL à l’installation:
      « Your password has expired. To log in you must change it using a client that supports expired passwords. »
      Ma config: El Capitan + MySQL 5.7.10
      Quelqu’un a une idée?

    2. Problème résolu avec cette commande:

      sudo /usr/local/mysql/bin/mysqladmin -u root -p password « mot de passe »
      Le mot de passe, sans les guillemets, est celui qui est généré par MySQL à l’installation.
      Puis à l’invitation « Enter password: », tu rentres ton mot de passe définitif.

      Tu as confirmation que l’accès root est correct quand MySQL te renvoi ce message:
      « [Warning] Using a password on the command line interface can be insecure.
      Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety. »

      Enjoy!

  5. Bonjour et merci pour ce tuto.
    De mon côté j’ai un problème qui ne découle pas de votre tuto, je tiens à le préciser.
    Mon « localtest » ne fonctionne plus.
    Lorsque je réalise dans le terminal un « apachectl configtest », j’ai le message suivant:
    httpd: Syntax error on line 527 of /private/etc/apache2/httpd.conf: Syntax error on line 8 of /private/etc/apache2/other/+php-osx.conf: Cannot load /usr/local/php5/libphp5.so into server: dlopen(/usr/local/php5/libphp5.so, 10): Symbol not found: _unixd_config\n Referenced from: /usr/local/php5/libphp5.so\n Expected in: /usr/sbin/httpd\n in /usr/local/php5/libphp5.so
    TOKYO:~ tokyo$

    Je vois bien des erreurs de syntaxes. Pouvez-vous m’aider à réparer ces erreurs ou m’aider à réinstaller apache. Merci d’avance.

  6. Bonjour,

    Je suis débutant dans la gestion de Apache. J’ai suivi votre tuto à la lettre. Apache se lance bien (« It works! »).
    Mais ensuite impossible d’accéder à http://localhost/~sommer.j

    J’ai repassé plusieurs fois les étapes, sans succès. Pouvez-vous m’aiguiller svp ?

    Merci d’avance

  7. Bonjour,

    Un tout grand merci pour ce tuto ( pas encore fini j’attaque my sql) Pour info j’ai cherché une soluce supplémentaire car j’avais Forbidden error 403 sur localhost/~mynameuser.

    Il faut alors ajouter dans le httpd.conf sous les lignes user =www et group=www les lignes
    user= mynameuser ( votre nom d’utilisateur)
    group= staff

    petite info : pour être sûr de l’orthographe de votre nom d’utilisateur tapez dans terminal whoami

    Encore merci pour ce tuto je continue…

  8. Bonjour, j’ai bien suivi le suivi le tuto (nickel au passage !). j’ai réussi une première connexion à MySQL sans problème. Je me reconnecte aujourd’hui et j’ai un « access denied » pour mon utilisateur root. Help?

Laisser un commentaire