web-dev-qa-db-fra.com

PHP ne fonctionne pas après la mise à jour MacOS vers High Sierra

J'ai mis à jour mon mac à la dernière version de os. Lorsque j'essaie de lancer un projet PHP, le navigateur affiche le code PHP au lieu de l'interpréter. J'ai remarqué que dans le nouvel OS, php est dans la version 7.1. J'ai installé 5.6 (c'est nécessaire pour moi) en utilisant homebrew et modifie le module dans httpd.conf en:

LoadModule php5_module /usr/local/Cellar/php56/5.6.31_7/libexec/Apache2/libphp5.so

Voici le journal des erreurs Apache:

[Mar 26 sept 23: 59: 38.600410 2017] [mpm_prefork: avis] [pid 980] AH00169: attrapé SIGTERM, arrêtant [Mar 26 Septembre 23: 59: 38.622998. 2017] [noyau: avis] [pid 980] AH00060: erreur de segmentation ou équivalent erreur détectée dans le processus parent AH00557: httpd: apr_sockaddr_info_get () a échoué pour MacBook-Pro-Kamil.local AH00558: httpd: Impossible de déterminer de manière fiable le nom complet du serveur nom de domaine, en utilisant 127.0.0.1. Définissez la directive 'NomServeur' globalement pour supprimer ce message [Mar 26 Septembre 23: 59: 48.838005 2017] [mpm_prefork: avis] [pid 991] AH00163: Apache/2.4.27 (Unix) PHP/5.6.31 configuré - reprise des opérations normales [mar 26 sept 23: 59: 48.838097 2017] [noyau: avis] [pid 991] AH00094: Ligne de commande: '/ usr/sbin/httpd -D FOREGROUND'

5
kamcik

L'ajout des lignes suivantes à mon fichier httpd.conf a résolu le problème:

AddType x-httpd-php .php
AddHandler application/x-httpd-php .php .php5

Espérons que cela aide!

Edit: juste pour fournir un peu plus de détails, comme le suggère crmpicco, j’ai aussi remplacé les nouveaux fichiers High Sierra httpd.conf et httpd-vhosts.conf par ceux de mon ancien Sierra, comme suit:

mv httpd-vhosts.conf~previous httpd-vhosts.conf
mv httpd.conf~previous httpd.conf

Même après tout cela et après avoir redémarré Apache, cela ne fonctionnait toujours pas - il fallait redémarrer pour que tout soit effectif.

4
Erebus

Le processus de mise à niveau MacOS semble déplacer votre configuration Apache vers des fichiers ~previous, tout en créant de nouvelles versions. Vous avez juste besoin de les ramener. Cela a fonctionné pour moi:

mv httpd-ssl.conf~previous httpd-ssl.conf
mv httpd-vhosts.conf~previous httpd-vhosts.conf
mv httpd.conf~previous httpd.conf

Vérifiez la syntaxe.

apachectl -S

Redémarrez Apache.

apachectl restart
3
crmpicco

Utiliser PHP5.6 avec HighSierra

  1. Activer la construction du module Apache Handler partagé Assurez-vous que la dernière version de PHP56 est installée avec l'option http activée (installez/mettez à niveau/réinstallez si nécessaire)

    mise à niveau $ brew php56 --with-httpd

  2. Liaison du module dans le fichier de configuration Apache2 Ajout de l'instruction suivante dans le fichier de configuration Apache2 /etc/Apache2/httpd.conf

    LoadModule php5_module /usr/local/Cellar/php56/5.6.32_8/libexec/Apache2/libphp5.so

  3. Ajout du fichier de configuration PHP5 

    Faites une copie à partir de php7.conf

    $ cd/etc/Apache2/other; Sudo cp php7.conf php5.conf

    Remplacer php7_module par php5_module

  4. Redémarrer le serveur Apache

    $ Sudo/usr/sbin/apachectl restart

1
Raghav Tandon

Votre problème ne semble pas venir de PHP, mais du nom de domaine de votre machine. Notez que le message "Impossible de déterminer de manière fiable le nom de domaine complet du serveur, à l'aide de 127.0.0.1. Définissez la directive 'NomServeur' globalement pour supprimer ce message." Vérifiez les paramètres de domaine dans votre httpd. fichier conf. Vous devriez également vérifier que votre fichier/etc/hosts ne contient pas de conflit.

Ce guide pour installer et utiliser Apache/MySQL/PHP via Homebrew s’est révélé extrêmement utile. Cela s'applique à macOS Sierra, mais fonctionnera également avec High Sierra. Il vous montrera également comment installer plusieurs versions PHP et un moyen pratique de passer d'une version à une autre, si cela vous intéresse (ou simplement de laisser tourner une seule version PHP).

J'aime aller sur la route Homebrew par opposition à Vagrant ou MAMP car elle est plus proche d’une installation native et utilise moins de ressources. J'espère que cela pourra aider!

0
schmelding

Après avoir ajouté

LoadModule php5_module /usr/local/Cellar/php56/5.6.31_7/libexec/Apache2/libphp5.so

vous devez ajouter

<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>

à ton 

/etc/Apache2/httpd.conf

N'oublie pas

apachectl restart
0
Hermann Schwarz

Même chose ici avec MAMP et PHP 5.6: juste après avoir mis à jour High Sierra (qui est probablement une Sierra avec trop de mauvaises herbes ..) Apache2 a cessé de fonctionner. 

Après des heures, j'ai finalement résolu avec cette commande:

cp /Applications/MAMP/bin/php/php5.6.25/conf/php.ini.temp /Applications/MAMP/bin/php/php5.6.25/conf/php.ini

Et réappliqué mes modifications personnalisées dans le fichier php.ini. (dans mon cas, memory_limit et short_open_tag)

MAMP redémarré et cela a fonctionné au premier essai.

0
Enrico