왜 웹 서버에서 PHP가 그렇게 자주 사용됩니까? [닫은]


14

W3Techs에 따르면 내 웹 서버는 PHP를 사용하여 웹 서버의 76.9 %를 수행합니다.

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

내가 PHP를 사용하는 이유는 다른 사람들이 웹 서버에서 PHP를 사용하는 것을 보았을 때 발생하는 관성 때문입니다. 웹 서버에서 유비쿼터스하게 만드는 PHP는 무엇입니까?

(이 질문은 다음 질문과 비슷하지만 다른 방향으로 가져옵니다. Java가 현대 웹 응용 프로그램 개발에 왜 사용되지 않습니까? )


4
필자는 항상 Apache에 설치하기 쉽고 거의 모든 웹 서버가 Apache이기 때문에 가정했습니다.
maple_shaft

14
PHP는 거의 모든 사람이 프로그래밍 할 수 있지만 거의 모든 사람이 프로그래밍해서는 안된다는 것을 증명하는 언어입니다. 웹 세대의 Visual Basic입니다.
Paul Tomblin

2
PHP가 웹 사이트에 대한 좋은 추상화를 가지고 있습니다-캐시 친화적이며 불변의 요청 / 응답주기가 있으며 리소스 관리를 다루지 않으며 데이터 구조를 다루지 않습니다. 동적 특성은 데이터베이스와 잘 작동하고 내장 함수가 많으므로 패키지가 더 드물고 배포가 쉽습니다. 나는 PHP가 마음에 들지 않지만, 케이스를 만드는 것은 매우 쉽습니다. 확신이 없지만 쉽게 만들 수 있습니다.
Benjamin Gruenbaum

답변:


41

PHP는 가장 널리 사용되는 오픈 소스 데이터베이스 MySQL과의 내장 통합을 통해 웹 프로그래밍을 위해 특별히 설계된 언어입니다.

  • 쉬운 시작 : 초보자는 PHP로 쉽게 시작할 수 있습니다. 사용자는 기존 HTML 파일에 for-loop와 같은 몇 가지 PHP 태그를 추가 한 다음 서버에 업로드하고 결과 또는 오류 메시지를 확인하면됩니다. 동적 타이핑 및 연관 배열을 사용하면 PHP를보다 쉽게 ​​시작할 수 있습니다.

  • 사용하기 쉬움 : Java와 같은 대부분의 솔루션에 비해 PHP는 컴파일 할 필요가 없으므로 스크립트를 작성한 다음 서버에 업로드 한 다음 브라우저를 업데이트하기 만하면됩니다.

  • 통합 데이터베이스 지원 : PHP는 MySQL과 같이 가장 널리 사용되는 데이터베이스에 대해 (대부분) 내장 지원을 제공합니다. 즉, 데이터베이스 사용을 쉽게 시작하고 추가 드라이버를 설치할 필요가 없으며 mysql 기능 만 사용하면됩니다. 사용하기 쉬운 웹 기반 관리 도구 인 PHPMyAdmin (1998 년 릴리즈)은 PHP와 MySQL의 성공에 중요합니다.

  • 사용자 기반이 큰 구식 언어 (1995 년 이후) : PHP는 웹 프로그래밍 용으로 디자인 된 이래 (1995 년) 대중화되었습니다. 그 이후로 사용자 기반이 커졌고 이제는 많은 웹 지향 프레임 워크와 라이브러리가 있습니다. 몇 가지 예는 블로그 시스템 및 전자 쇼핑 플랫폼입니다.

  • 저렴한 호스팅 : PHP는 오랫동안 존재 해 왔으며 Linux와 Windows 모두에서 잘 작동하며 많은 웹 서버가이를 지원합니다. PHP가 사전 설치된 호스팅을 찾는 데 아무런 문제가 없습니다.


1
이것을 답변으로 표시하면 더 이상 갈 필요가 없습니다 : P. 멋진 답변 @Jonas
Pankaj Upadhyay

여기의 대부분의 포인트는 클래식 ASP에도 적용됩니다. 아, 그리고 평범한 JSP.
Adriano Carneiro

4
@Adrian : 1) PHP는 JSP와 ASP 이전에 출시되었습니다. 2) ODBC 또는 JDBC 및 드라이버를 처리 할 필요가 없기 때문에 PHP와 함께 MySQL을 사용하는 것이 더 쉽습니다. 3) ASP는 당시 Linux (저렴한 호스팅)에서 쉽고 널리 퍼지지 않았습니다. 4) 정적 타이핑이있는 Java는 초보자에게는 시작하기가 약간 어렵습니다.
조나스

1
@Jonas, 당신은 주로 내 요점을 강화하고 있습니다 : 1) 그것은 유일한 괜찮은 웹 언어였습니다. 3) LAMP, 그것이 나의 포스트에 관한 것입니다. 또한, PHP를 나쁘게 말하는 것이 아니라 왜 인기를 얻었는지 말하는 것입니다. 빈 공간을 채웠습니다.
Adriano Carneiro

9
"시작하기 쉬움"은 그것이 무엇을 시작했다고 생각합니다. 펄은 존재했고 PHP가 할 수있는 모든 것을 할 수있었습니다. 그러나 완전한 초보자가 PHP를 시작하기 가 훨씬 쉬웠 습니다. 그리고 나는 지역 사회가 초보자들에게도 친숙하다고 생각합니다. PHP는 VB가 Windows 프로그래밍에서 한 빈 공간을 채웠습니다. 사람들이 스스로 시작 하여 실제로 무언가를 만들 수있을 정도로 쉬웠 습니다.
GrandmasterB

10

같은 이유로 MySQL은 매우 인기가 있습니다. 적시에 적절한 위치에있었습니다.

90 년대 리눅스 서버 붐과 함께 LAMP 플랫폼 (Linux-Apache-MySQL-PHP)은 안정적이고 가장 중요한 무료 옵션으로 등장했습니다.

참고로 당시 MySQL을 사용하십시오. 이것들은 오래 전에 MySQL에서 누락 된 두 가지 기능이었습니다 (내 생각에는 더 많을 수도 있습니다) .

  • 트리거 없음
  • 완전 ACID 호환이 아님

ACID (원자 일관성 격리 내구성)를 준수하지 않은 DB는 어떻게 그렇게 대중화 되었습니까? PHP와 같은 답변 : 적시에 적절한 장소에있었습니다.

램프 구성 요소의 "적절한 시간"에 대한 추가 정보 :


3
"적시에 적절한 장소에 있었다"가 정답이라면, Perl과 C를 가진 CGI는 같은 인기를 보였을 것입니다.
Jonas

2
"ACID를 준수하지 않은 DB는 어떻게 그렇게 인기를 얻었습니까?" -쉬운데 ... 대부분의 사람들에게 그다지 중요하지 않았습니다. MySQL은 대부분의 웹 사용에 충분히 신뢰할 있었습니다 . 은행에 대한 초기 신뢰도? 아마 아닙니다. 웹 포럼? 예.
GrandmasterB

동료에게 "하지만 MySQL은 거의 RDBMS가 아닙니다!" 나는 그 재미있는 것을 발견한다. 인기는 재미있는 것입니다. 소프트웨어 개발자 인 우리는 트렌드의 노예가되어서는 안됩니다. 계속 작동하려면 계속 학습해야합니다. 기술을 너무 많이 지키는 사람은 놓아 두지 않을 것입니다. 그리고 그것은 항상 전문적으로 위험합니다. 이 주제는 저에게 끝났습니다. :)
Adriano Carneiro

8

주위를 둘러 보면 요즘 PHP를 실행하는 대부분의 사람들은 Wordpress, Drupal, Joomla 등을 실행하고 있습니다. 또는 저렴한 PHP 호스트와 약간의 구성으로 거의 즉시 사용할 수있는 10,000 개의 무료 인기 앱 중 하나입니다. 가장 쉬운 방법은 PHP로 작성된 것을 사용하는 것만 큼 PHP에서 실행되는 것을 만들고 있기 때문에 여러 번 설치되는 것이 아닙니다.


7

지금 PHP를 가르치고 있으므로 대답 할 수 있습니다.

PHP 소스 코드 파일에는 HTML, JavaScript 및 PHP가 혼합되어 포함될 수 있으므로 간단한 웹 응용 프로그램을 시작하고 실행하는 것이 정말 쉬운 것 같습니다. JSP 상황에서 많은 Java가 필요하거나 CGI-BIN 상황에서 이상한 변형이 필요한 더 복잡한 상호 작용은 PHP 내장에 의해 제공됩니다 .HTTP GET 또는 POST가 전화를 걸 었는지 알 필요조차 없습니다. 코드, 코드가 알고 싶은 모든 것은 _REQUEST 또는 _SERVER 또는 _COOKIE 전역 변수에 있습니다.

PHP-the-langauage는 구문 분석되고 매우 빠르게 실행되므로 정적 HTML 파일이 아닌 HTML을 생성 할 때 성능이 크게 저하되지 않습니다.

PHP-the-interpreter는 거의 모든 오픈 소스 DBMS와 많은 독점적 인 데이터베이스에 대한 라이브러리 호출을 가지고 있으므로 3 계층 스타일 웹 응용 프로그램을 쉽게 볼 수 있습니다. PHP-the-interpreter에는 다른 많은 일반적인 상황 (일명 "사용 사례")에 대한 라이브러리 호출이 포함되어 있으므로 많은 코드를 직접 작성할 필요없이 라이브러리를 호출하면됩니다. 따라서 J2EE "엔터프라이즈 앱"과 마찬가지로 문제는 코드 작성 방법에서 라이브러리 항목을 찾는 방법으로 이동합니다. 이것은 매우 괜찮은 php.net PHP 매뉴얼에 의해 도움을받습니다.

프로그래밍 언어로서, PHP는 이국적인 구조가 많지 않거나 C, FORTRAN 4 또는 Pascal과 너무 다르기 때문에 이미 한 언어를 알고있는 프로그래머는 PHP 프로그래밍 언어를 쉽게 선택할 수 있습니다.


3

PHP의 성공을위한 두 가지 핵심 포인트는 공유 호스팅에 대한 타이밍과 초점입니다.

처음에는 웹이 정적이었습니다. 1993 년에 NCSA 팀은 웹 서버 (Apache httpd의 전신)를 웹 서버에서 CGI 라는 기술로 확장하여 웹 서버에서 미리 생성 된 HTML 만 배포 할 수있었습니다. HTML (또는 다른 콘텐츠)을 즉시 생성 할 수 있습니다. 사람들이 모든 것을 할 수 있었기 때문에 이것은 훌륭했습니다. 당시 그 목적으로 자주 사용되는 언어는 Perl이었습니다. Perl은 텍스트 처리가 강력한 언어로 HTTP 요청 데이터를 처리하고 HTML을 생성하는 데 중요한 특성입니다. 그래서 사람들은 그것을 사용했습니다.

그러나 웹 서버가 외부 프로그램을 실행해야 할 때마다 Perl은 스크립트를 초기화하고 실행해야했습니다. 이것은 꽤 두통을 일으켰습니다. 해결책은 mod_perl 오는 ca. 1997. mod_perl은 Perl 인터프리터를 웹 서버 프로세스에 직접 임베드하는 Apache 웹 서버용 모듈이므로 추가로 시작할 필요가 없습니다.

그러나 다시이 접근 방식에는 문제가있었습니다. mod_perl은 매우 강력하고 완전한 서버 구성에 액세스 할 수있었습니다. 한 대의 서버를 사용하여 여러 독립 클라이언트를 호스팅 할 수 없었습니다. 의도적으로 또는 실수로 다른 사용자를 쉽게 해칠 수 있기 때문입니다. 그리고 그것이 PHP가 온 곳입니다.

PHP는 Apache 모듈로 실행될 수있는 방식으로 구축되었으므로 (요청마다 시작 히트가 발생하지 않음) 요청 간에는 공유 환경이 없습니다. 요청이 완료되면 모든 정보가 손실되고 다른 가상 호스트에 대한 후속 요청은 독립적으로 제공됩니다. PHP는 액세스를 제한하는 기능도 제공했습니다 (safe_mode, open_base_dir). 이러한 아키텍처 선택을 통해 회사는 서버에 PHP를 설치하고 파일을 업로드 할 수있는 FTP (또는 유사한) 액세스 권한을 고객에게 제공 할 수 있으며 많은 작업을하지 않고도 단일 시스템에서 많은 고객을 호스트 할 수 있습니다. 이로 인해 PHP 기반 호스팅 가격이 저렴 해져 PHP가 유비쿼터스 플랫폼이되었습니다.

또한 PHP는 HTML과 PHP 코드를 혼합하거나 요청 변수 (register_globals도 참조)에 직접 액세스하여 개발자가 선호하는 어려운 Perl (커스텀 파싱 또는 CGI.pm에 대한 의존성)과 같은 Perl에 비해 몇 가지 이점이있었습니다.

당시 PHP가 성공한 또 다른 측면은 Windows를 잘 지원하는 것이 었습니다. Perl이나 Windows에서 다른 언어로 작업하는 것은 어려웠지만, 당시에는 집에서 Windows를 사용하고 가상화 나 컨테이너를 사용하지 않는 많은 개발자들이있었습니다. PHP는 Windows에서 쉽게 실행되어 사람들이 개발에 사용한 다음 파일을 압축하여 Linux에 배포 할 수있었습니다. 예를 들어 Perl을 사용하면 올바른 perl 배포를 얻은 다음 어떤 모듈을 사용할 수 있는지 확인해야합니다.

다른 언어는 어떻습니까? C 또는 C ++와 같은 컴파일 된 언어는 스크립팅이 빠르게 발전하는 시장에 더 나은 서비스를 제공하기 때문에 매력을 얻지 못했습니다. Java가 존재했지만 Java Virtual Machine에는 PHP가 지원하는 방식으로 더 많은 리소스와 공유 호스팅이 필요했습니다. 하드웨어에 대한 투자는 훨씬 높았습니다. ASP (ASP.Net의 전신) 인 ASP는 Windows 플랫폼에 바인딩되어 이미 Windows를 실행하고 라이센스 비용을 두려워하지 않으며 공유 호스팅 지원이없는 조직으로 제한했습니다.

생산되었지만 상용 (서버 측 JavaScript가있는 콜드 퓨전 (Cold Fusion) 또는 넷스케이프 서버 (Netscape Server)) 인 다른 다른 기술은 도달 범위를 제한하거나 루비 온 레일 (Ruby-on-rails)이 나올 때까지 도달 할 수 없었습니다. 그러나 PHP는 이미 대규모 커뮤니티와 Wordpress 나 Drupal과 같은 잘 정립 된 소프트웨어로 매우 유명해 졌기 때문에 경쟁하기 어렵습니다. 특히 PHP 개발이 멈추지 않고 계속 진행되고 있기 때문입니다.


1

PHP는 싸고, 배우기 쉽고, 커뮤니티가 넓고, 어디에서나 호스팅 할 수 있으며, 주변에 많이 있습니다. 따라서 중소 기업에서 돈을 버는 방법으로 인터넷을 사용하고 실제로 존재하지 않는 인프라를 사용하여 개발 영역을 만들어야하는 사람으로 생각한다면 PHP는 매우 훌륭하게 들립니다.

따라서 PHP는 많은 프로그래머와 작은 컴퓨터를 서버로 사용하여 돈을 빨리 벌 수있는 좋은 방법이라고 생각합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.