Є два ключові моменти для успіху PHP: терміни та фокус на спільному хостингу.
На початку Інтернет був статичним. Веб-сервери могли розповсюджувати лише попередньо створений HTML, чого, очевидно, через деякий час було недостатньо, тому в 1993 році команда NCSA розширила свій веб-сервер (попередник Apache httpd) за допомогою технології під назвою CGI, яка дозволяла викликати конкретні програми з веб-сервера який міг генерувати HTML (або інший вміст) на льоту. Це було чудово, оскільки люди могли робити все. У той час для цієї мети часто використовувалася мова Perl. Perl - мова, сильна в обробці тексту, яка є ключовою властивістю для обробки даних HTTP-запиту та створення HTML. Тож люди його використовували.
Але виникла проблема: для кожного запиту веб-сервер повинен запускати зовнішню програму, Perl повинен був ініціалізувати та запустити сценарій. Це спричинило певний головний біль. Вирішенням стало mod_perl, приблизно, приблизно. 1997. mod_perl - це модуль для веб-сервера Apache, який вбудовує інтерпретатор Perl безпосередньо в процес веб-сервера, тому не потрібно було зайвого запуску.
Але знову ж таки такий підхід мав проблему: mod_perl був надзвичайно потужним та мав доступ до повної конфігурації сервера. Ви не можете використовувати один сервер для розміщення декількох незалежних клієнтів, оскільки вони можуть легко заподіяти шкоду іншим людям - будь то навмисно чи випадково. І ось звідки прийшов PHP.
PHP був побудований таким чином, що він міг працювати як модуль Apache (таким чином, не маючи запуск запуску для кожного запиту), але забезпечує середовище, що не має спільного доступу між запитами. Після виконання запиту вся інформація втрачається, а подальший запит до іншого віртуального хоста буде подано незалежно. PHP також пропонував функції обмеження доступу (safe_mode, open_base_dir). З цим архітектурним вибором компанії можуть встановити PHP на свій сервер і надати клієнтам FTP (або подібний) доступ для завантаження своїх файлів, і за допомогою цього приймають багато багатьох клієнтів на одній машині без особливої роботи. Це спричинило конкуренцію, що призвело до дешевих цін на PHP-хостинг, що зробило PHP всюдисущою платформою.
Крім того, PHP мав кілька переваг над Perl, наприклад, дозволяв змішувати HTML і PHP-код або прямий доступ до змінних запитів (див. Також register_globals), що в Perl було складніше (спеціальний аналіз або залежність від CGI.pm), що сподобалось розробникам.
Ще одним аспектом, який зробив успіх PHP в ті часи, була хороша підтримка Windows. Робота з Perl чи іншими мовами в Windows була важкою, але тоді ще багато розробників, де використання Windows в домашніх умовах та віртуалізація чи контейнери ще не були предметом. PHP запускався легко в Windows, щоб люди могли використовувати його для розробки, а потім пакувати файли та розгортати в Linux. Наприклад, Perl вам доведеться отримати правильний розподіл perl, а потім перевірити, які модулі доступні взагалі тощо.
Що з іншими мовами? Мови, складені на зразок C або C ++, ніколи не отримували тяги, оскільки сценарій краще служить швидко розвивається ринку. Java існувала, але для віртуальних машин Java потрібно було набагато більше ресурсів, і спільний хостинг таким чином, як PHP підтримує це навряд чи було можливим. Інвестиції в апаратні засоби були значно вищими. ASP (як попередник ASP.Net) був прив’язаний до платформи Windows, обмеживши її організаціями, які вже керують Windows, і які не бояться витрат на ліцензування, і знову не мають спільної підтримки хостингу.
Різні інші технології, де вироблялися, але були комерційними (Cold Fusion або Netscape Server з сервером на JavaScript), що обмежували їх охоплення, або не виходили з місця, поки не з’явився Ruby-on-rails, який, ймовірно, був першим середовищем, яке отримало багато уваги, але до того часу PHP вже користувався великою популярністю у великої спільноти та налагодженого програмного забезпечення (наприклад, Wordpress чи Drupal), що ускладнювало конкуренцію - тим більше, що розвиток PHP ніколи не припинявся і все ще триває.