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 개발이 멈추지 않고 계속 진행되고 있기 때문입니다.