web-dev-qa-db-fra.com

Comment installer PHP Opcache sur MacOS High Sierra?

J'utilise Apache standard et PHP 7.1 (pas Homebrew) fourni avec Mac High Sierra. Cependant, il semble que Opcache ne soit pas activé sur cette version même si cela devrait venir en standard avec PHP 7. Il est même répertorié dans phpinfo() sous "Module Authors", mais aucune section ne montre qu'il est réellement installé. L'appel de opcache_get_status donne une erreur fatale.

J'ai installé l'extension via Homebrew et lié le fichier opcache.so. Il semble fonctionner sur la CLI mais pas dans Apache. Pour une raison quelconque, la CLI et le Web utilisent des fichiers ini différents:

  • /usr/local/etc/php/7.1/php.ini Pour CLI
  • /etc/php.ini Pour le Web

La CLI analyse les fichiers d'addition, y compris /usr/local/etc/php/7.1/conf.d/ext-opcache.ini Et php -i Affiche Opcache. Mais phpinfo() dans le navigateur ne fonctionne pas - aucun fichier ini supplémentaire n'est analysé.

Je l'ai actuellement dans /etc/php.ini:

[opcache]
zend_extension="/usr/local/opt/php71-opcache/opcache.so"
opcache.enable=1

Mais toujours rien. J'ai suivi exactement le même processus pour xdebug et cela a bien fonctionné. Qu'est-ce que je rate?


Je me demande s'il serait plus facile d'utiliser la version Homebrew de PHP. Mais je ne semble pas avoir le fichier .so Requis. Divers tutoriels disent de mettre cela dans le httpd.conf D'Apache:

LoadModule php7_module /usr/local/opt/php71/libexec/Apache2/libphp7.so

Mais le répertoire libexec n'existe pas. Il y a lib mais ni ce répertoire ni aucun autre répertoire n'a de fichier .so.

12
DisgruntledGoat

Pour moi, cela a fonctionné par ces étapes:

  1. Chercher extension_dir dans la page "phpinfo ()", j'ai un chemin /usr/lib/php/extensions/no-debug-non-zts-20160303
  2. En exécutant ls -lh /usr/lib/php/extensions/no-debug-non-zts-20160303, J'ai trouvé "opcache.so", je suppose qu'il est installé lors de la mise à niveau vers "High Sierra"
  3. Créez "/etc/php.ini" (en copiant "/etc/php.ini.default"), et modifiez:
[opcache]
zend_extension = opcache.so
opcache.enable = 1
  1. Redémarrez Apache, le module "opcache" est activé

MODIFIER/CONCLUSION

Puisque "opcache extension" est installé par défaut sur Mac OS High Sierra, la solution d'activation d'opcahe sur Mac OS High Sierra est:

  • Créez "/etc/php.ini" si vous n'en avez pas, copiez simplement la configuration par défaut: Sudo cp /etc/php.ini.default /etc/php.ini
  • Ajouter zend_extension = opcache.so à /etc/php.ini et activez "opcache":

la section oppache de php.ini ressemble à ceci:

[opcache]
zend_extension = opcache.so
opcache.enable = 1
15
kite.js.org