CakeFest 2024: The Official CakePHP Conference

Utilisation de PHP embarqué antérieur à macOS Monterey

PHP est embarqué avec macOS depuis macOS X (10.0.0) et antérieur à macOS Monterey (12.0.0). Activer PHP avec le serveur Web par défaut nécessite de décommenter quelques lignes dans le fichier de configuration d'Apache httpd.conf tandis que le mode CGI et/ou CLI sont activés par défaut (accès simple via le terminal).

L'activation de PHP en suivant ces instructions permet de configurer rapidement un environnement local de développement. Il est vivement recommandé de toujours mettre à jour PHP à sa version la plus récente. Comme la plupart des programmes, les nouvelles versions sont créées pour corriger les bogues et ajouter des fonctionnalités et c'est le cas de PHP. Reportez-vous à la documentation de l'installation de macOS pour plus de détails. Les instructions suivantes sont destinées au débutant, en fournissant juste assez de détails pour mettre en place une configuration par défaut pour travailler. Tous les utilisateurs sont vivement encouragés à compiler et installer une version récente du paquet.

Le type d'installation standard utilise mod_php, et active le mod_php embarqué sur macOS pour le serveur Web Apache (le serveur Web par défaut qui est accessible via les préférences systèmes), en quelques étapes :

  1. Trouvez et ouvrez le fichier de configuration d'Apache. Par défaut, ce sera : /private/etc/apache2/httpd.conf Utiliser le programme Finder ou Spotlight pour trouver ce fichier peut s'avérer difficile, sachant que, par défaut, il appartient à l'utilisateur root.

    Note: Une façon de l'ouvrir est d'utiliser un éditeur de texte Unix dans un terminal, par exemple, nano, et sachant que le fichier est la propriété de l'utilisateur root, vous devrez utiliser la commande sudo pour l'ouvrir (en tant que root) ; aussi, vous devrez entrer la commande suivante dans votre Terminal (votre mot de passe vous sera demandé) : sudo nano /private/etc/apache2/httpd.conf Quelques commandes nano : ^w (recherche), ^o (sauvegarde), et ^x (sortie) où ^ représente la touche Ctrl.

    Note: Les versions de Mac OS X antérieures à 10.5 fournissent d'anciennes versions de PHP et d'Apache. Aussi, le fichier de configuration d'Apache sur les machines originales peut être /etc/httpd/httpd.conf.

  2. Avec un éditeur de texte, décommentez les lignes (en effaçant le caractère #) qui ressemblent aux lignes suivantes (ces 2 lignes ne se trouvent pas au même endroit) :

    # LoadModule php5_module libexec/httpd/libphp5.so
    
    # AddModule mod_php5.c
    
    Notez le chemin. Dans le futur, lorsque vous compilerez PHP, les fichiers ci-dessus doivent être remplacés ou commentés.

  3. Assurez-vous que les extensions désirées soient analysées par PHP (exemples : .php .html et .inc)

    Sachant que ce comportement a déjà été activé dans votre fichier httpd.conf (depuis Mac Panther), une fois PHP activé, les fichiers .php seront automatiquement analysés par PHP.

    <IfModule mod_php5.c>
        # If php is turned on, we respect .php and .phps files.
        AddType application/x-httpd-php .php
        AddType application/x-httpd-php-source .phps
    
        # Since most users will want index.php to work we
        # also automatically enable index.php
        <IfModule mod_dir.c>
            DirectoryIndex index.html index.php
        </IfModule>
    </IfModule>
    

    Note:

    Avant OS X 10.5 (Leopard), PHP 4 était livré par défaut plutôt que PHP 5. Ainsi, les instructions ci-dessus diffèreront juste en changeant 5 en 4. 5's to 4's.

  4. Assurez-vous que DirectoryIndex charge le fichier index par défaut. Ceci est également définit dans le fichier httpd.conf. Normalement, les fichiers index.php et index.html sont utilisés. Par défaut, index.php est activé car il est également dans la vérification de PHP ci-dessus. Ajustez-le suivant votre besoin.
  5. Définissez le chemin vers le fichier php.ini ou utilisez le chemin par défaut. Le chemin par défaut sur macOS is /usr/local/php/php.ini et un appel à la fonction phpinfo() révèlera cette information. Si aucun fichier php.ini n'est utilisé, PHP utilisera toutes les valeurs par défaut. Reportez-vous à la FAQ sur "trouver le fichier php.ini".
  6. Trouvez et définissez le DocumentRoot C'est le dossier principal pour tous les fichiers Web. Les fichiers dans ce dossier seront servis par le serveur Web, et donc, les fichiers PHP seront analysés par PHP avant de les envoyer au navigateur. Le chemin par défaut est /Library/WebServer/Documents mais peut être défini à n'importe quelle valeur dans le fichier httpd.conf. De plus, le dossier DocumentRoot pour les différentes utilisateurs est /Users/yourusername/Sites
  7. Créez un fichier phpinfo().

    La fonction phpinfo() affiche les informations sur PHP. Créez un fichier dans le DocumentRoot avec le code PHP suivant :

    <?php phpinfo(); ?>

  8. Redémarrez Apache et chargez le fichier PHP que nous venons de créer.

    Pour redémarrez, exécutez la commande sudo apachectl graceful dans un terminal ou arrêter/démarrer l'option "Personal Web Server" dans les préférences systèmes de macOS. Par défaut, le chargement de fichiers locaux dans le navigateur s'effectue via des URL comme ceci : http://localhost/info.php ou, si vous utilisez le DocumentRoot d'un dossier utilisateur, l'URL ressemblera à : http://localhost/~yourusername/info.php

CLI (ou CGI dans les anciennes versions) est nommé php et réside normalement dans /usr/bin/php. Ouvrez un terminal, lisez la section sur la ligne de commande du manuel PHP, et exécutez la commande php -v pour vérifier la version PHP de ce binaire. Un appel à la fonction phpinfo() pourra également vous révéler cette information.

add a note

User Contributed Notes 2 notes

up
43
Anonymous
15 years ago
You only have to uncomment:
#LoadModule php5_module libexec/apache2/libphp5.so

This is gone:
# AddModule mod_php5.c

The statement in 3 was changed to:
<IfModule mime_module>
#
# TypesConfig points to the file containing the list of mappings from
# filename extension to MIME-type.
#
TypesConfig /private/etc/apache2/mime.types

#
# AddType allows you to add to or override the MIME configuration
# file specified in TypesConfig for specific file types.
#
#AddType application/x-gzip .tgz
#
# AddEncoding allows you to have certain browsers uncompress
# information on the fly. Note: Not all browsers support this.
#
#AddEncoding x-compress .Z
#AddEncoding x-gzip .gz .tgz
#
# If the AddEncoding directives above are commented-out, then you
# probably should define those extensions to indicate media types:
#
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz

#
# AddHandler allows you to map certain file extensions to "handlers":
# actions unrelated to filetype. These can be either built into the server
# or added with the Action directive (see below)
#
# To use CGI scripts outside of ScriptAliased directories:
# (You will also need to add "ExecCGI" to the "Options" directive.)
#
#AddHandler cgi-script .cgi

# For type maps (negotiated resources):
#AddHandler type-map var

#
# Filters allow you to process content before it is sent to the client.
#
# To parse .shtml files for server-side includes (SSI):
# (You will also need to add "Includes" to the "Options" directive.)
#
#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml
</IfModule>

Extra MIME types can either be added to the file /private/etc/apache2/mime.types or by using an AddType directive as commented on above.
up
2
10086 at xiaoi dot me
4 years ago
setup apache + php environment on macOS 10.12.6

step 1: start httpd by apachectl
> sudo apachectl start

step 2: find httpd.conf
> sudo apachectl -t -D DUMP_INCLUDES

step 3: edit conf, eg: /opt/local/etc/apache2/httpd.conf
> sudo vim /opt/local/etc/apache2/httpd.conf

step 4: Load php module before <IfModule unixd_module>, eg:
```
LoadModule php5_module /usr/libexec/apache2/libphp5.so
<IfModule unixd_module>
```

step 5: add mod_php5.c end of httpd.conf
```
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<IfModule mod_dir.c>
DirectoryIndex index.html index.php
</IfModule>
</IfModule>
```

step 6: save and quit
step 7: restart httpd
> sudo apachectl restart

step 8: write demo.php , test configuration
```
<?php
phpinfo
();
?>
```

step 9: copy demo.php to "DocumentRoot", you can find by httpd.conf

step 10: visit demo.php

all done.
To Top