Чому PHP так часто використовується на веб-серверах? [зачинено]


14

Мій веб-сервер використовує PHP, як і 76,9% веб-серверів згідно W3Techs:

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

Причина, по якій я використовую PHP, - це інертність, яка виникає через те, що всі інші її використовують на веб-серверах. Що це за PHP, що зробить це настільки всюдисущим на веб-серверах?

(Зауважте, що це питання схоже на наступне запитання, але вирішує його в іншому напрямку: Чому Java не використовується для розробки сучасних веб-додатків? )


4
Я завжди припускав, тому що це легко встановити на Apache і майже всі веб-сервери - Apache.
maple_shaft

14
PHP - це мова, яка доводить, що хоча програмувати практично кожен, майже всі вони не повинні. Це Visual Basic веб-покоління.
Пол Томблін

2
Я хочу заперечувати ще один момент - PHP має хороші абстракції для веб-сайтів - це кеш-пам'ять, у нього непорушний цикл запитів / відповідей, це не змушує вас мати справу з управлінням ресурсами, не змушує вас мати справу з структурами даних, динамічний характер добре працює з базами даних, і він має вбудовану функцію, тому пакети більш рідкісні, а розгортання просте. Я не люблю PHP, але дуже легко зробити справу за це - я не переконаний, але це легко зробити.
Бенджамін Грюнбаум

Відповіді:


41

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

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

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

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

  • Стара мова (з 1995 р.) З великою базою користувачів: PHP став популярним на початку (1995 р.), Оскільки був розроблений для веб-програмування. Відтоді база користувачів зросла, і зараз доступно багато веб-орієнтованих рамок і бібліотек. Деякі приклади - це blogg-системи та платформи для електронних покупок.

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


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) LAMP, ось про що йдеться у моєму дописі. Крім того, просто, я не кажу, що PHP поганий, я просто кажу, чому він став популярним: він заповнив порожнечу, ось і все.
Адріано Карнейро

9
"Легко почати з" - це, я думаю, те, що його запустило. Perl існував і міг зробити все, що може зробити PHP. Але 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, стала такою популярною?" - Thats easy ... Це просто wasnt що важливо для більшості людей. MySQL був досить надійним для більшості веб-застосувань. Надійно достатньо рано для банку? Напевно, ні. Для веб-форуму? Так.
GrandmasterB

У мене був колега, який би кричав "але MySQL навряд чи RDBMS!". Я вважаю це кумедним. Популярність - це смішна річ. Ми - розробники програмного забезпечення - не повинні бути рабами тренда, ми повинні продовжувати вчитися, щоб продовжувати працювати. Кожен, хто занадто багато захищає технологію, менше шансів відпустити. І це завжди професійно небезпечно. Ця тема для мене закінчена. :)
Адріано Карнейро

8

Якщо ви озираєтесь, більшість людей, на яких працює PHP, сьогодні працюють Wordpress, Drupal, Joomla тощо. Або один із 10 000 безкоштовних, популярних додатків, які майже не працюють з дешевим хостом PHP і невеликою кількістю конфігурації. Багато разів він встановлюється не тому, що хтось робить щось, що працює на PHP, настільки просто, що найпростішим варіантом є використання чогось, побудованого на PHP.


7

Я зараз навчаю PHP, тому, можливо, можу відповісти.

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

PHP-на-мові розбирається та виконується досить швидко, тому ви не помітите величезного падіння продуктивності при створенні 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 ніколи не припинявся і все ще триває.


1

Дозвольте зіткнутися з нею, PHP дешевий, простий у навчанні, має велике співтовариство, ви можете розмістити його де завгодно, і це було багато чого. Отже, якщо ви вважаєте, що хтось використовує Інтернет як спосіб швидкого заробітку в малій / середній галузі та потребує створення зони розвитку, щоб це зробити за допомогою практично неіснуючої інфраструктури, PHP звучить досить чудово (для початку).

Тому я вважаю, що PHP - це чудовий спосіб швидко заробити трохи грошей програмуванням та невеликим комп’ютером як сервером.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.