En passant par un didacticiel Zend , je suis tombé sur la déclaration suivante:
Notez que les paramètres php_flag dans .htaccess ne fonctionnent que si vous utilisez mod_php.
Quelqu'un peut-il expliquer ce que cela signifie?
En passant par un didacticiel Zend , je suis tombé sur la déclaration suivante:
Notez que les paramètres php_flag dans .htaccess ne fonctionnent que si vous utilisez mod_php.
Quelqu'un peut-il expliquer ce que cela signifie?
Réponses:
mod_php
signifie PHP, en tant que module Apache .
Fondamentalement, lors du chargement en mod_php
tant que module Apache, il permet à Apache d'interpréter les fichiers PHP (ceux-ci sont interprétés par mod_php
) .
EDIT: Il y a (au moins) deux façons d'exécuter PHP, lorsque vous travaillez avec Apache:
mod_php
) : l'interpréteur PHP est alors en quelque sorte "intégré" dans le processus Apache: il n'y a pas de processus PHP externe - ce qui signifie qu'Apache et PHP peuvent mieux communiquer .
Et rééditez, après le commentaire : en utilisant CGI oumod_php
c'est à vous: ce n'est qu'une question de configuration de votre serveur web.
Pour savoir de quelle manière est actuellement utilisé sur votre serveur, vous pouvez vérifier la sortie de phpinfo()
: il devrait y avoir quelque chose indiquant si PHP fonctionne via mod_php
(ou mod_php5
) , ou via CGI.
Vous voudrez peut-être aussi jeter un œil à la php_sapi_name()
fonction: elle renvoie le type d'interface entre le serveur Web et PHP .
Si vous archivez les fichiers de configuration de votre Apache, lors de l'utilisation mod_php
, il devrait y avoir une LoadModule
ligne ressemblant à ceci:
LoadModule php5_module modules/libphp5.so
(Le nom du fichier, à droite, peut être différent - sous Windows, par exemple, il devrait être a .dll
)
mod_php
est de loin la configuration la plus courante.
mod_php
n'est pas du vrai PHP; c'est juste un addon Apache. Ou plutôt, je pense que vous devriez commencer la réponse avec une définition de Que signifie exactement PHP?
Cette réponse est tirée de TuxRadar :
Lorsque vous exécutez PHP via votre serveur Web, il existe deux options distinctes: l'exécuter à l'aide de CGI SAPI de PHP, ou l'exécuter en tant que module pour le serveur Web. Chacun a ses propres avantages, mais, dans l'ensemble, le module est généralement préféré.
Exécuter PHP en tant que CGI signifie que vous indiquez essentiellement à votre serveur Web l'emplacement du fichier exécutable PHP, et le serveur exécute cet exécutable, en lui donnant le script que vous avez appelé, chaque fois que vous visitez une page. Cela signifie que chaque fois que vous chargez une page, PHP doit lire php.ini et définir ses paramètres, il doit charger toutes ses extensions, puis il doit commencer à analyser le script - il y a beaucoup de travail répété.
Lorsque vous exécutez PHP en tant que module, PHP se trouve littéralement à l'intérieur de votre serveur Web - il ne démarre qu'une seule fois, ne charge ses paramètres et extensions qu'une seule fois et peut également stocker des informations entre les sessions. Par exemple, les accélérateurs PHP s'appuient sur la capacité de PHP à enregistrer les données mises en cache entre les requêtes, ce qui est impossible avec la version CGI.
L'avantage évident d'utiliser PHP en tant que module est la vitesse - vous verrez une grande augmentation de vitesse si vous convertissez de CGI en module. Beaucoup de gens, en particulier les utilisateurs de Windows, ne s'en rendent pas compte et continuent à utiliser le php.exe CGI SAPI, ce qui est dommage - le module est généralement trois à cinq fois plus rapide.
Il y a un avantage clé à utiliser la version CGI, cependant, et c'est que PHP lit ses paramètres chaque fois que vous chargez une page. Avec PHP fonctionnant en tant que module, toutes les modifications que vous apportez dans le fichier php.ini ne sont appliquées qu'après le redémarrage de votre serveur Web, ce qui rend la version CGI préférable si vous testez beaucoup de nouveaux paramètres et souhaitez voir des réponses instantanées.
Votre serveur doit avoir les modules php installés pour pouvoir analyser le code php.
Si vous êtes sur Ubuntu, vous pouvez le faire facilement avec
sudo apt-get install apache2
sudo apt-get install php5
sudo apt-get install libapache2-mod-php5
sudo /etc/init.d/apache2 restart
Sinon, vous pouvez compiler apache avec php: http://dan.drydog.com/apache2php.html
Spécifier le système d'exploitation de votre serveur aidera les autres à répondre plus spécifiquement.
Cela signifie que vous devez avoir PHP installé en tant que module dans Apache, au lieu de le démarrer en tant que script CGI.
Juste pour ajouter ces réponses, mod_php est la méthode la plus ancienne et la plus lente disponible sur le serveur HTTPD pour utiliser PHP. Cela n'est pas recommandé, sauf si vous exécutez d'anciennes versions d'Apache HTTPD et PHP. php-fpm et proxy_cgi sont les méthodes préférées.