web-dev-qa-db-fra.com

Windows, XAMPP, PHP 7 et opcache

J'ai installé le dernier serveur XAMPP avec PHP 7 (mise à jour: vérifié aussi PHP 7.1)} _ (sur mon système Windows 10). Je voulais utiliser opcache , je l’ai donc activé dans php.ini

[opcache]
zend_extension=php_opcache.dll
opcache.enable=1
opcache.enable_cli=0
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000

Avec ce changement maintenant, et avec presque chaque rafraîchissement de page, j'obtiens cette erreur d'Apache:

AH00428: Parent: child process 3748 exited with status 3221226356 -- Restarting.

Donc, la page est en cours de chargement, et en cours de chargement ... dans l’attente de la reprise d’Apache. Lorsque j'éteins opcache (en définissant opcache.enable=0), Apache ne redémarre pas et tout fonctionne correctement (en omettant le sujet d'application Web le plus lent, bien sûr).

Tout fonctionne correctement lors du chargement de l'application sur XAMPP ayant PHP 5.6 avec activé opcache.

EDIT (image GIF ajoutée):
Comme vous pouvez le constater, la page s'actualise parfois comme il se doit. Mais parfois, cela rafraîchit beaucoup plus longtemps et Apache redémarre à ce moment-là.

 enter image description here

EDIT:
Pour être honnête, j’ai abandonné cette application pour travailler avec PHP sous Windows (je travaillais dessus depuis environ 10 ans avec PHP <= 5.6). Il est très difficile/impossible (pour le moment) de faire fonctionner PHP 7.x sur ce système d'exploitation (avec Opcache). Décidé d'aller avec Ubuntu et un serveur créé avec Docker . Tout est plus facile à configurer (surtout avec Docker) et fonctionne plus rapidement. Je conseille à tout le monde de faire la même chose;).

7
Krzysztof Trzos

Votre chemin php_opcache.dll semble faux , vous devez l’écrire comme ci-dessous, cela fonctionne pour moi.

[opcache]
zend_extension = "C:\xampp\php\ext\php_opcache.dll"
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=256
opcache.max_accelerated_files=2000

Plus de détails

Si votre XAMPP est livré avec PHP 5.5+ par défaut, opcache déjà inclus dans l'ensemble, vous devrez simplement l'activer. Pour activer l'extension:

  1. Ouvrez php.ini (par défaut, il devrait être situé ici: C:\xampp\php\php.ini).

  2. Ajoutez cette ligne à la fin du fichier: zend_extension = "C:\xampp\php\ext\php_opcache.dll"

  3. Redémarrez le serveur Apache.
9
Key Shang

ouvrir un fichier php.ini

  1. Remplacez le; opcache.enable = 1 par opcache.enable = 1
  2. Ajoute le chemin opcache dll à la fin du fichier zend_extension = "C:\xampp\php\ext\php_opcache.dll"
  3. Redémarrer Apache

pour plus de références, consultez cette vidéo https://www.youtube.com/watch?v=GvWrNoRDjUY

2
Kailas

Pour être honnête, n'utilisez pas xammp. Pour le moment, nous avons une pile technologique un peu meilleure, pour exécuter PHP sur des serveurs Linux. Docker https://docs.docker.com/docker-for-windows/

Vagant: https://www.vagrantup.com/

Les deux sont basés sur des systèmes Linux, où la plupart des problèmes de xammp n'auront pas lieu.

1
BlackWebWolf
ThreadStackSize 8388608 

M'a aidé dans le cas similaire. Ceci est une option httpd.

0
Sergey Matunin

Dans le cas de Xampp, il suffit de mettre les lignes ci-dessous à côté de [opcache]

zend_extension="C:\xampp\php\ext\php_opcache.dll"
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
0
Wasim Khan

Créer un répertoire avec les permissions appropriées et le configurer php.ini a fonctionné!

opcache.file_cache=d:\xampp\htdocs\opcache
0
Chetan Bhosale