112 votes

Qu'est-ce que mod_php?

En parcourant un tutoriel 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?

166voto

Pascal MARTIN Points 195780

mod_php signifie que PHP, comme un module Apache.

En gros, lors du chargement d' mod_php comme module Apache, il permet à Apache pour interpréter les fichiers PHP (ceux-ci sont interprétés par mod_php).


EDIT : Il y a (au moins) deux façons de PHP avec Apache :

  • À l'aide de CGI : un processus PHP est lancé par Apache, et c'est ce processus PHP qui interprète le code PHP -- pas Apache
  • À l'aide de PHP en tant que module Apache (appelés mod_php) : le PHP est alors une sorte de "intégré" à l'intérieur du processus Apache : il n'y a aucun processus PHP -- ce qui signifie que Apache et PHP peuvent communiquer mieux.


Et re-edit, après le commentaire : l'utilisation de scripts CGI ou mod_php est de vous : c'est seulement une question de configuration de votre serveur web.

Pour savoir ce qui est actuellement utilisé sur votre serveur, vous pouvez vérifier la sortie de l' phpinfo() : il devrait y avoir quelque chose indiquant si PHP est en cours d'exécution via mod_php (ou mod_php5), ou par l'intermédiaire de CGI.

Vous pouvez également prendre un coup d'oeil à l' php_sapi_name() fonction : renvoie le type de l'interface entre le serveur web et PHP.


Si vous vérifiez dans vos fichiers de configuration d'Apache, lors de l'utilisation d' mod_php, il devrait y avoir un LoadModule ligne ressemblant à ceci :

LoadModule php5_module        modules/libphp5.so

(Le nom de fichier, sur la droite, peut être différent-sur Windows, par exemple, il devrait être un .dll)

61voto

SpikETidE Points 1178

Cette réponse est la prise de TuxRadar:

Lors de l'exécution de PHP par le biais de votre serveur web, il y a deux options distinctes: cours d'exécution à l'aide de PHP, CGI, SAPI, ou comme un module pour le serveur web. Chacun ont leurs propres avantages, mais, dans l'ensemble, le module est généralement préféré.

L'exécution de PHP comme CGI signifie que, fondamentalement, vous dites à votre serveur web à l'emplacement de l'exécutable PHP fichier, le serveur exécute le fichier 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 a besoin de lire php.ini et définir ses paramètres, il doit charger toutes ses extensions, et puis elle a besoin pour commencer à travailler de l'analyse du script il y a beaucoup de travail répété.

Lorsque vous exécutez PHP en tant que module, PHP, littéralement, se trouve à l'intérieur de votre serveur web, il commence seulement une fois, les charges de ses paramètres et les extensions qu'une seule fois, et peut également stocker des informations à travers des sessions. Par exemple, PHP accélérateurs de compter sur PHP le fait de pouvoir sauvegarder les données mises en cache à travers les demandes, ce qui est impossible à l'aide de la version CGI.

L'avantage évident de l'utilisation de PHP en tant que module est la vitesse d'accès, vous verrez un gros boost de vitesse si vous convertissez de CGI à un module. Beaucoup de gens, en particulier les utilisateurs de Windows, ne se rendent pas compte de cela, et portent sur l'utilisation de l'php.exe SAPI CGI, qui est une honte - le module est généralement de trois à cinq fois plus rapide.

Il est l'un des principaux avantages de l'utilisation de la version CGI, si, et c'est que PHP lit ses paramètres à chaque fois que vous chargez une page. Avec PHP fonctionnant comme un module, tous les changements que vous faites dans le php.fichier ini ne pas un coup de pied jusqu'à ce que vous redémarrez votre serveur web, ce qui rend la version CGI préférable si vous êtes tester un grand nombre de nouveaux paramètres et vous voulez voir des réponses instantanées.

13voto

cdated Points 456

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 votre système d'exploitation serveur aidera les autres à répondre plus précisément.

5voto

Ondrej Slinták Points 9922

Cela signifie que PHP doit être installé en tant que module dans Apache, au lieu de le démarrer en tant que script CGI.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X