web-dev-qa-db-fra.com

Lors du déplacement d'un site PHP à charge équilibrée d'Apache vers Nginx, comment le code doit-il être modifié?

Lorsque vous passez à Nginx avec plusieurs serveurs php-fpm à partir d'une configuration Varnish + plusieurs Apache2/mod_php plus traditionnelle:

Devons-nous nous attendre à réécrire des parties de notre logiciel? Je viens de découvrir que de nombreuses fonctions Apache_* fonctionnent désormais sans Apache (à partir de PHP 5.4).

Les applications ont-elles les mêmes variables $GLOBALS, $_GET, $_POST, $_FILES? Que diriez-vous de $_SERVER['REQUEST_URI'] etc?

Quelque chose d'autre que nous devrions rechercher?

3
frodeborli

PHP fonctionnant sous Nginx devrait avoir les mêmes variables globales que lors de l'exécution sous Apache.

Voici un rapport de quelqu'un qui l'a testé . Ils pensaient au départ que certains manquaient, mais ont découvert que PHP ne les crée que comme ils sont utilisés dans certains cas.

1
Stephen Ostermiller

Votre code PHP n'aura pas besoin d'être identique à PHP pour renseigner les superglobales qui vous intéressent en fonction du lien de PHP vers le logiciel du serveur Web. La technologie sous-jacente ne devrait avoir que des conséquences minimes sur votre codage, sauf dans les cas où il existe une différence entre Linux et Windows, car il existe quelques différences mineures entre les fonctions d’accès aux fichiers et certaines extensions PHP qui ne sont disponibles que sur un seul système d’exploitation. autre.

1
Chris Rutherfurd