PHP'nin başarısı için iki önemli nokta vardır: Zamanlama ve paylaşılan barındırma üzerinde odaklanma.
Başlangıçta Web statikti. Web Sunucuları, önceden oluşturulmuş HTML'yi ancak bir süre sonra yeterli olmadığı için dağıtabilirdi, bu nedenle 1993'te NCSA ekibi web sunucularını (Apache httpd'nin öncüsü) web sunucusundan belirli programları çağırmaya izin veren CGI adlı bir teknolojiyle genişletti. anında HTML (veya başka bir içerik) oluşturabilir. İnsanlar her şeyi yapabildiği için bu harikaydı. Bu amaç için yaygın olarak kullanılan bir dil Perl'dir. Perl, HTTP istek verilerini işlemek ve HTML üretmek için önemli bir özellik olan metin işlemede güçlü bir dildir. İnsanlar bunu kullandılar.
Ancak bir sorun vardı: Her istek için web sunucusunun harici bir program çalıştırması gerekiyordu, Perl betiği başlatmak ve çalıştırmak zorundaydı. Bu oldukça baş ağrısına neden oldu. Bir çözüm mod_perl geliyor ca. 1997. mod_perl, Apache web sunucusu için Perl yorumlayıcısını doğrudan web sunucusu sürecine gömen bir modüldür, böylece fazladan başlatma gerekmez.
Ancak yine bu yaklaşımın bir sorunu vardı: mod_perl son derece güçlüydü ve sunucu yapılandırmasının tamamına erişebiliyordu. Birden fazla bağımsız istemciyi barındırmak için bir sunucuyu kullanamazsınız, çünkü başkalarına kolayca veya kazara zarar verebilirler. Ve işte PHP geldi.
PHP, Apache modülü olarak çalışabilecek şekilde oluşturulmuştur (böylece her istek için başlatma isabetine sahip değildir), ancak istekler arasında paylaşılan-hiçbir şey ortamı sağlamaz. Bir istek yapıldıktan sonra tüm bilgiler kaybolur ve daha sonra başka bir sanal ana bilgisayara yapılan talep bağımsız olarak sunulur. PHP ayrıca erişimi kısıtlayan özellikler de (safe_mode, open_base_dir) sundu. Bu mimari seçim sayesinde şirketler sunucularına PHP kurabilir ve müşterilerine dosyalarını yüklemek için FTP (veya benzeri) erişimi sağlayabilir ve bu sayede birçok müşteriyi çok fazla iş yapmadan tek bir makinede barındırır. Bu, PHP tabanlı barındırma için ucuz fiyatlara yol açan bir rekabete yol açtı ve PHP'yi her yerde bir platform haline getirdi.
Ayrıca PHP'nin Perl'e göre HTML ve PHP kodunu karıştırmaya veya geliştiricilerin sevdiği Perl'de daha zor olan (CGI.pm'ye özel ayrıştırma veya bağımlılık) istek değişkenlerine (ayrıca bkz. Register_globals) doğrudan erişime izin verme gibi birkaç faydası vardı.
PHP'yi o günlerde başarılı kılan bir diğer unsur da Windows üzerinde iyi bir destek oldu. Perl'i veya Windows'ta çalışan diğer dilleri almak zordu, ancak o zamanlar evde Windows'u kullanmanın ve sanallaştırma veya kapların henüz bir şey olmadığı birçok geliştirici. PHP Windows üzerinde kolayca çalışabildi, böylece insanlar onu geliştirme için kullanabilir ve daha sonra dosyaları toplayabilir ve Linux'ta dağıtabilirler. Örneğin Perl ile doğru perl dağılımını almanız ve ardından hangi modüllerin mevcut olduğunu kontrol etmeniz gerekir.
Diğer diller ne olacak? Komut dosyası oluşturma hızlı gelişen pazara daha iyi hizmet verdiği için C veya C ++ gibi derlenmiş diller hiçbir zaman çekiş yapmaz. Java vardı, ancak Java Sanal makineleri daha fazla kaynak gerektirdi ve PHP'nin desteklediği şekilde paylaşılan barındırma pek mümkün değildi. Donanım yazılımına yapılan yatırım çok daha yüksekti. ASP (ASP.Net'in öncüsü olarak), Windows işletim sistemini zaten çalıştıran ve lisans maliyetlerinden korkmayan ve yine paylaşılan barındırma desteği olmayan kuruluşlarla sınırlandıran Windows platformuna bağlıydı.
Üretilen ancak farklı olan diğer teknolojiler, erişimlerini sınırlayan veya erişilemeyen Ruby-on-ray'ları gelene kadar erişemediklerinden ticari (Cold Fusion veya Netscape Server) idi. dikkat, ancak o zamana kadar PHP büyük bir topluluk ve iyi kurulmuş bir yazılımla (Wordpress veya Drupal gibi) çok popülerdi - özellikle PHP'nin gelişimi hiç durmadığı ve hala devam ettiği için rekabet etmeyi zorlaştırdı.