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 :
-
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.
-
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.
-
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.
-
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.
-
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".
-
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
-
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 :
-
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.
Anonymous ¶16 years ago
You only have to uncomment:#LoadModule php5_module libexec/apache2/libphp5.soThis is gone:# AddModule mod_php5.cThe 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.
10086 at xiaoi dot me ¶6 years ago
setup apache + php environment on macOS 10.12.6step 1: start httpd by apachectl > sudo apachectl startstep 2: find httpd.conf > sudo apachectl -t -D DUMP_INCLUDESstep 3: edit conf, eg: /opt/local/etc/apache2/httpd.conf > sudo vim /opt/local/etc/apache2/httpd.confstep 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 quitstep 7: restart httpd > sudo apachectl restartstep 8: write demo.php , test configuration```<?php phpinfo();?>```step 9: copy demo.php to "DocumentRoot", you can find by httpd.confstep 10: visit demo.phpall done.