Есть два ключевых момента успеха 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 никогда не прекращалась и продолжается.