Pourquoi PHP est-il si fréquemment utilisé sur les serveurs Web? [fermé]

14

Mon serveur web utilise PHP comme le font 76,9% des serveurs web selon W3Techs:

http://w3techs.com/technologies/overview/programming_language/all

La raison pour laquelle j'utilise PHP est une inertie née du fait que tout le monde l'utilise sur des serveurs Web. Qu'est-ce qui rend PHP si omniprésent sur les serveurs Web?

(Notez que cette question est similaire à la question suivante mais la prend dans une direction différente: pourquoi Java n'est-il pas utilisé pour le développement d'applications Web modernes? )

Deets McGeets
la source
4
Je l'ai toujours supposé car il est facile à installer sur Apache et presque tous les serveurs Web sont Apache.
maple_shaft
14
PHP est le langage qui prouve que si presque tout le monde peut programmer, presque tous ne devraient pas. C'est le Visual Basic de la génération Web.
Paul Tomblin
2
Je veux argumenter un autre point - PHP a de bonnes abstractions pour les sites Web - il est compatible avec le cache, il a un cycle de demande / réponse immuable, il ne vous oblige pas à gérer la gestion des ressources, il ne vous oblige pas à gérer les structures de données, son la nature dynamique fonctionne bien avec les bases de données et il a une tonne de fonctions intégrées, donc les packages sont plus rares et le déploiement est facile. Je n'aime pas PHP, mais c'est très facile de le défendre - je ne suis pas convaincu mais c'est facile à faire.
Benjamin Gruenbaum

Réponses:

41

PHP est un langage spécialement conçu pour la programmation Web avec une intégration intégrée avec la base de données open source la plus populaire MySQL.

  • Facile à démarrer: En tant que débutant, il est facile de commencer avec PHP. L'utilisateur n'a qu'à ajouter quelques balises PHP avec par exemple une boucle for dans ses fichiers HTML existants, puis la télécharger sur le serveur et voir le résultat ou un message d'erreur. Le typage dynamique et les tableaux associatifs facilitent également l'utilisation de PHP.

  • Facile à utiliser: par rapport à la plupart des solutions comme par exemple Java, PHP n'a pas besoin d'être compilé, il suffit donc d'écrire le script puis de le télécharger sur le serveur puis de mettre à jour le navigateur.

  • Support de base de données intégré: PHP a (principalement) un support intégré pour les bases de données les plus populaires comme par exemple MySQL, ce qui signifie qu'il est facile de commencer à utiliser des bases de données, aucun pilote supplémentaire n'a besoin d'être installé, juste pour utiliser les fonctions mysql. L'outil d'administration Web facile à utiliser PHPMyAdmin (sorti en 1998) est également important pour le succès de PHP en combinaison avec MySQL.

  • Ancien langage (depuis 1995) avec une grande base d'utilisateurs: PHP est devenu populaire au début (1995) car il a été conçu pour la programmation Web. Depuis lors, la base d'utilisateurs a augmenté et maintenant il existe de nombreux frameworks et bibliothèques orientés web disponibles. Quelques exemples sont les systèmes de blogg et les plateformes de e-shopping.

  • Hébergement bon marché: Depuis PHP existe depuis longtemps et fonctionne bien sur Linux et Windows, et de nombreux serveurs Web le prennent en charge. Il n'y a aucun problème à trouver un hébergement avec PHP pré-installé.

Jonas
la source
1
marquez ceci comme réponse, vous n'avez pas besoin d'aller plus loin: P. Nice answer @Jonas
Pankaj Upadhyay
La plupart des points ici sont également valables pour l'ASP classique. Oh, et aussi tout simplement JSP.
Adriano Carneiro du
4
@Adrian: 1) PHP a été publié avant JSP et ASP. 2) Il est plus facile d'utiliser MySQL avec PHP car vous n'avez pas à gérer ODBC ou JDBC et les pilotes 3) ASP n'était pas facile et répandu sur Linux (hébergement bon marché) à l'époque. 4) Java avec son typage statique est un peu plus difficile à démarrer pour un débutant.
Jonas
1
@Jonas, vous renforcez principalement mon argument: 1) c'était la seule langue Web décente, donc au bon endroit, au bon moment. 3) LAMP, c'est le sujet de mon article. Aussi, calmez-vous, je ne dis pas que PHP est mauvais, je dis simplement pourquoi il est devenu populaire: il a rempli un vide, c'est tout.
Adriano Carneiro
9
"Facile à démarrer" est, je pense, ce qui l'a lancé. Perl existait et pouvait faire tout ce que PHP pouvait faire. Mais PHP était juste beaucoup plus facile pour un novice complet de commencer. Et je soupçonne que la communauté était aussi plus amicale avec les novices. PHP a comblé le vide que VB a fait pour la programmation Windows - assez facile pour que les gens puissent commencer par eux-mêmes et réellement créer quelque chose.
GrandmasterB
10

Pour la même raison, MySQL est si populaire: il était au bon endroit au bon moment.

Avec le boom des serveurs Linux dans les années 90, la plate-forme LAMP (Linux-Apache-MySQL-PHP) est apparue comme une option fiable et, surtout, gratuite.

En guise de remarque, prenez MySQL à l'époque. Il y avait deux fonctionnalités manquantes de MySQL (du haut de mon esprit, il pourrait y en avoir plus) il n'y a pas si longtemps :

  • Pas de déclencheurs
  • Pas entièrement conforme à ACID

Comment une base de données qui n'était même pas conforme à ACID (atomicité-cohérence-isolation-durabilité) est-elle devenue si populaire? Même réponse que PHP: c'était au bon endroit au bon moment.

Pour en savoir plus sur le "bon endroit au bon moment" sur les composants LAMP:

Adriano Carneiro
la source
3
Si "c'était au bon endroit au bon moment" est la réponse, alors Perl et CGI avec C auraient dû avoir la même popularité.
Jonas
2
"Comment une base de données qui n'était même pas conforme à ACID est-elle devenue si populaire?" - c'est facile ... ce n'était pas si important pour la plupart des gens. MySQL était suffisamment fiable pour la plupart des utilisations du Web. Assez fiable dès le début pour une banque? Probablement pas. Pour un forum web? Oui.
GrandmasterB
J'avais un collègue qui criait "mais MySQL n'est guère un SGBDR!". Je trouve ça amusant. La popularité est une chose amusante. Nous - les développeurs de logiciels - ne devons pas être des esclaves de la tendance, nous devons continuer à apprendre pour continuer à travailler. Quiconque défend trop une technologie est moins susceptible de lâcher prise. Et c'est toujours professionnellement dangereux. Ce sujet est terminé pour moi. :)
Adriano Carneiro
8

Si vous regardez autour de vous, la plupart des gens qui utilisent PHP ces jours-ci utilisent Wordpress, Drupal, Joomla et autres. Ou l'une des 10000 applications gratuites et populaires qui fonctionnent à peu près prêtes à l'emploi avec un hôte PHP bon marché et une petite configuration. Plusieurs fois, il est installé non pas parce que quiconque crée quelque chose qui fonctionne sur PHP autant que l'option la plus simple est d'utiliser quelque chose de construit sur PHP.

Wyatt Barnett
la source
7

J'apprends moi-même PHP en ce moment, alors je peux peut-être répondre.

Un fichier de code source PHP peut contenir un mélange de HTML, JavaScript et PHP, il semble donc très facile d'obtenir des applications Web simples et opérationnelles. Des interactions plus complexes, qui nécessiteraient beaucoup de Java dans une situation JSP, ou quelques contorsions étranges dans une situation CGI-BIN, sont prises en charge par les intégrées PHP: vous n'avez même pas besoin de savoir si un HTTP GET ou POST a appelé votre code, tout ce que votre code veut savoir se trouve dans les variables globales _REQUEST ou _SERVER ou _COOKIE.

PHP-the-langauage est analysé et exécuté assez rapidement, de sorte que vous ne remarquerez pas une baisse considérable des performances lors de la génération HTML, plutôt que d'avoir simplement un tas de fichiers HTML statiques.

PHP-the-interpreter a des appels de bibliothèque pour à peu près tous les SGBD open source, et beaucoup de ceux propriétaires, aussi, donc faire une application web de style à 3 niveaux semble facile. PHP-the-interpreter inclut des appels à la bibliothèque pour de nombreuses autres situations communes (alias "cas d'utilisation"), vous n'avez donc pas à écrire beaucoup de code vous-même, il suffit d'appeler la bibliothèque. Ainsi, tout comme les "applications d'entreprise" J2EE, le problème passe de savoir comment coder à savoir comment rechercher des éléments de bibliothèque. Ceci est aidé par le manuel PHP php.net très décent.

En tant que langage de programmation, PHP n'a pas beaucoup de constructions exotiques ou diffère trop de, disons C, FORTRAN 4 ou Pascal, de sorte que les programmeurs qui connaissent déjà un langage peuvent facilement choisir PHP-le-langage de programmation.

Bruce Ediger
la source
3

Il y a deux points clés pour le succès de PHP: le timing et l'accent mis sur l'hébergement mutualisé.

Au début, le Web était statique. Les serveurs Web ne pouvaient distribuer que du HTML pré-généré, ce qui n'était évidemment pas suffisant après un certain temps.En 1993, l'équipe NCSA a étendu son serveur Web (le prédécesseur d'Apache httpd) avec une technologie appelée CGI qui permettait d'appeler des programmes spécifiques à partir du serveur Web. qui pourrait générer du HTML (ou tout autre contenu) à la volée. C'était super car les gens pouvaient tout faire. Un langage couramment utilisé à cette époque à cette fin était Perl. Perl est un langage puissant dans le traitement de texte qui est une propriété clé pour gérer les données de requête HTTP et produire du HTML. Les gens l'ont donc utilisé.

Mais il y avait un problème: pour chaque demande, le serveur Web devait exécuter un programme externe, Perl devait initialiser et exécuter le script. Cela a causé pas mal de maux de tête. Une solution était mod_perl à venir ca. 1997. mod_perl est un module pour le serveur Web Apache incorporant l'interpréteur Perl directement dans le processus du serveur Web, donc aucun démarrage supplémentaire n'était nécessaire.

Mais encore une fois, cette approche avait un problème: mod_perl était extrêmement puissant et avait accès à la configuration complète du serveur. Vous ne pouvez pas utiliser un serveur pour héberger plusieurs clients indépendants car ils pourraient facilement nuire aux autres personnes - que ce soit exprès ou par accident. Et c'est là que PHP est venu.

PHP a été construit de manière à pouvoir fonctionner en tant que module Apache (donc sans avoir le hit de démarrage pour chaque requête) mais fournit un environnement de partage rien entre les requêtes. Une fois la demande effectuée, toutes les informations ont été perdues et une demande ultérieure adressée à un autre hôte virtuel serait traitée indépendamment. PHP offrait également des fonctionnalités pour restreindre l'accès (safe_mode, open_base_dir). Avec ce choix architectural, les entreprises pourraient installer PHP sur leur serveur et fournir aux clients un accès FTP (ou similaire) pour télécharger leurs fichiers et ainsi héberger de nombreux clients sur une seule machine sans trop de travail. Cela a provoqué une concurrence menant à des prix bon marché pour l'hébergement basé sur PHP, faisant de PHP une plateforme omniprésente.

De plus, PHP avait quelques avantages par rapport à Perl, comme permettre de mélanger du code HTML et PHP ou un accès direct aux variables de demande (voir aussi register_globals), ce qui en Perl était plus difficile (analyse personnalisée ou dépendance à CGI.pm) que les développeurs aimaient.

Un autre aspect qui a fait le succès de PHP à l'époque était un bon support sous Windows. Il était difficile de faire fonctionner Perl ou d'autres langues sur Windows, mais à l'époque, de nombreux développeurs n'utilisaient pas encore Windows à la maison et la virtualisation ou les conteneurs. PHP fonctionnait facilement sous Windows afin que les gens puissent l'utiliser pour le développement, puis emballer les fichiers et déployer sur Linux. Avec Perl par exemple, vous devriez obtenir la bonne distribution de Perl, puis vérifier quels modules sont disponibles, etc.

Et les autres langues? Les langages compilés comme C ou C ++ n'ont jamais eu de succès car les scripts servent mieux le marché en développement rapide. Java existait, mais les machines virtuelles Java nécessitaient beaucoup plus de ressources et un hébergement partagé dans la façon dont PHP le supportait était difficilement réalisable. L'investissement dans le matériel a été beaucoup plus élevé. ASP (en tant que prédécesseur d'ASP.Net) était lié à la plate-forme Windows, la limitant aux organisations qui exécutent déjà Windows et qui ne craignent pas les coûts de licence, et là encore pas de support d'hébergement partagé.

Différentes autres technologies ont été produites, mais elles étaient commerciales (Cold Fusion ou Netscape Server avec JavaScript côté serveur) limitant leur portée ou ne sont pas hors de leur portée jusqu'à l'arrivée de Ruby-on-rails, qui était probablement le premier environnement recevant beaucoup de attention, mais à cette époque, PHP était déjà très populaire auprès d'une grande communauté et de logiciels bien établis (comme Wordpress ou Drupal), ce qui rend la concurrence difficile - d'autant plus que le développement de PHP n'a jamais cessé et se poursuit.

johannes
la source
1

Avouons-le, PHP est bon marché, facile à apprendre, possède une grande communauté, vous pouvez l'héberger n'importe où, et il a beaucoup circulé. Donc, si vous pensez en tant que personne utilisant Internet comme un moyen de gagner rapidement de l'argent dans une petite / moyenne industrie et d'avoir à créer une zone de développement pour le faire avec une infrastructure pratiquement inexistante, PHP sonne plutôt bien (pour commencer).

Je pense donc que PHP est un excellent moyen de gagner de l'argent rapidement avec un tas de programmeurs et un petit ordinateur comme serveur.

guiman
la source