Почему PHP так часто используется на веб-серверах? [закрыто]

14

Мой веб-сервер использует PHP, как и 76,9% веб-серверов в соответствии с W3Techs:

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

Причина, по которой я использую PHP, заключается в инерции, возникающей из-за того, что все остальные используют его на веб-серверах. Что такого в PHP, что делает его настолько распространенным на веб-серверах?

(Обратите внимание, что этот вопрос похож на следующий вопрос, но принимает его в другом направлении: почему Java не используется для разработки современных веб-приложений? )

Deets McGeets
источник
4
Я всегда предполагал, потому что это легко установить на Apache, и почти все веб-серверы Apache.
maple_shaft
14
PHP - это язык, который доказывает, что, хотя почти каждый может программировать, почти все не должны. Это Visual Basic веб-поколения.
Пол Томблин
2
Я хочу оспорить еще один момент - PHP имеет хорошие абстракции для веб-сайтов - он кеширует, он имеет неизменный цикл запросов / ответов, он не заставляет вас иметь дело с управлением ресурсами, он не заставляет вас иметь дело со структурами данных, его Динамическая природа хорошо работает с базами данных и имеет множество встроенных функций, поэтому пакеты встречаются реже, а развертывание легко. Я не люблю PHP, но это очень легко обосновать - я не уверен, но это легко сделать.
Бенджамин Грюнбаум

Ответы:

41

PHP - это язык, специально разработанный для веб-программирования со встроенной интеграцией с самой популярной базой данных с открытым исходным кодом MySQL.

  • Легко начать: начинающему легко начинать с PHP. Пользователь просто должен добавить несколько PHP-тегов с, например, циклом for в существующие HTML-файлы, а затем загрузить его на сервер и посмотреть результат или сообщение об ошибке. Динамическая типизация и ассоциативные массивы также упрощают использование PHP.

  • Простота в использовании: по сравнению с большинством решений, таких как, например, Java, PHP не нужно компилировать, поэтому достаточно просто написать скрипт, а затем загрузить его на сервер и затем обновить браузер.

  • Интегрированная поддержка баз данных: PHP имеет (в основном) встроенную поддержку для наиболее популярных баз данных, таких как, например, MySQL, что означает, что легко начать использовать базы данных, не нужно устанавливать никаких дополнительных драйверов, просто для использования функций mysql. Простой в использовании веб-инструмент администратора PHPMyAdmin (выпущен в 1998 году) также важен для успеха PHP в сочетании с MySQL.

  • Старый язык (с 1995 года) с большой базой пользователей: PHP стал популярным в начале (1995), так как он был разработан для веб-программирования. С тех пор пользовательская база выросла, и теперь доступно множество веб-ориентированных сред и библиотек. Некоторыми примерами являются blogg-системы и электронные торговые платформы.

  • Дешевый хостинг: поскольку PHP существует уже долгое время и хорошо работает как в Linux, так и в Windows, многие веб-серверы поддерживают его. Нет проблем найти хостинг с предустановленным PHP.

Jonas
источник
1
пометьте это как ответ, вам не нужно идти дальше: P. Хороший ответ @Jonas
Pankaj Upadhyay
Большинство пунктов здесь также справедливо для классического ASP. Ох, а также простой JSP.
Адриано Карнейро,
4
@Adrian: 1) PHP был выпущен до JSP и ASP. 2) проще использовать MySQL с PHP, так как вам не нужно обрабатывать ODBC или JDBC и драйверы. 3) ASP не был легким и распространенным в Linux (дешевый хостинг) в то время. 4) Java с его статической типизацией немного сложнее для начинающего.
Джонас
1
@Jonas, вы в основном подкрепляете мою точку зрения: 1) это был единственный достойный веб-язык, поэтому в нужном месте, в нужное время. 3) ЛАМПА, вот о чем мой пост. Кроме того, успокойся, я не говорю, что PHP - это плохо, я просто говорю, почему он стал популярным: он заполнил пустоту, вот и все.
Адриано Карнейру
9
«Легко начать с» - это то, что я запустил. Perl существовал и мог делать все, что мог делать PHP. Но для начинающего новичка было гораздо проще . И я подозреваю, что сообщество было дружелюбнее и для новичков. PHP заполнил пустоту, которую VB сделал для программирования Windows - достаточно легко, чтобы люди могли начать самостоятельно и фактически что-то создавать.
GrandmasterB
10

По той же причине MySQL так популярен: он был в нужном месте в нужное время.

После бума серверов Linux в 90-х годах платформа LAMP (Linux-Apache-MySQL-PHP) стала надежным и, что самое главное, бесплатным вариантом.

Как примечание, возьмите MySQL в то время. Это были две недостающие функции из MySQL (на мой взгляд, их может быть больше) не так давно :

  • Нет триггеров
  • Не полностью соответствует кислоте

Как БД, не совместимая даже с ACID (атомарность-согласованность-изоляция-долговечность), стала настолько популярной? Тот же ответ, что и в PHP: он был в нужном месте в нужное время.

Дальнейшее чтение о «правильном месте и правильном времени» на компонентах LAMP:

Адриано Карнейро
источник
3
Если ответ «это было в нужном месте в нужное время», то Perl и CGI с C должны были бы видеть одинаковую популярность.
Джонас
2
«Как БД, которая даже не поддерживала ACID, стала настолько популярной?» - это просто ... это просто не так важно для большинства людей. MySQL был достаточно надежным для большинства веб-приложений. Достаточно ли надежен для банка? Возможно нет. Для веб-форума? Да.
GrandmasterB
У меня был коллега, который бы кричал "но MySQL вряд ли является СУБД!" Я нахожу это забавным. Популярность это забавная вещь. Мы - разработчики программного обеспечения - не должны быть рабами тренда, мы должны продолжать учиться, чтобы продолжать работать. Любой, кто слишком много защищает технику, с меньшей вероятностью отпустит. И это всегда профессионально опасно. Эта тема для меня окончена. :)
Адриано Карнейру
8

Если вы посмотрите вокруг, большинство людей, использующих PHP в наши дни, используют Wordpress, Drupal, Joomla и тому подобное. Или одно из 10000 бесплатных популярных приложений, которые в значительной степени работают из коробки с дешевым хостом PHP и небольшой конфигурацией. Много раз он устанавливается не потому, что кто-то делает что-то, что работает на PHP, а самый простой вариант - использовать что-то построенное на PHP.

Уайетт Барнетт
источник
7

Я учу себя PHP прямо сейчас, так что, возможно, я могу ответить.

Файл исходного кода PHP может содержать смесь HTML, JavaScript и PHP, поэтому, кажется, действительно легко запустить и запустить простые веб-приложения. Более сложные взаимодействия, которые требуют много Java в ситуации JSP, или некоторые странные искажения в ситуации CGI-BIN, учитываются встроенными PHP-функциями: вам даже не нужно знать, вызвал ли HTTP GET или POST ваш код, все, что хочет знать ваш код, находится в глобальных переменных _REQUEST, _SERVER или _COOKIE.

PHP-the-langauage анализируется и выполняется довольно быстро, поэтому вы не заметите значительного падения производительности при генерации HTML, а не просто набор статических файлов HTML.

PHP-интерпретатор имеет библиотечные вызовы практически для каждой СУБД с открытым исходным кодом, а также для многих проприетарных, поэтому создание веб-приложения в трехуровневом стиле выглядит легко. PHP-интерпретатор включает библиотечные вызовы для множества других общих ситуаций (также называемых «прецедентами»), поэтому вам не нужно писать много кода самостоятельно, просто вызовите библиотеку. Таким образом, как и в случае с J2EE «корпоративными приложениями», проблема переходит от знания того, как писать код, к знаниям о том, как работать с библиотекой. Этому помогает очень приличное руководство PHP php.net.

Как язык программирования, PHP не имеет много экзотических конструкций или слишком сильно отличается от, скажем, C, FORTRAN 4 или Pascal, поэтому программисты, которые уже знают один язык, могут легко подобрать язык программирования PHP.

Брюс Эдигер
источник
3

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

Johannes
источник
1

Посмотрим правде в глаза, PHP дешевый, простой в освоении, имеет большое сообщество, вы можете разместить его где угодно, и его было много. Итак, если вы думаете, что кто-то использует Интернет как способ быстро заработать деньги в малой / средней отрасли и вынужден создавать зону разработки для этого практически с несуществующей инфраструктурой, PHP звучит довольно здорово (для начала).

Поэтому я думаю, что PHP - это отличный способ быстро заработать деньги с кучкой программистов и небольшим компьютером в качестве сервера.

guiman
источник