PHP neden web sunucularında bu kadar sık ​​kullanılıyor? [kapalı]


14

Web sunucum W3Techs'e göre web sunucularının% 76.9'u gibi PHP kullanıyor:

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

PHP kullanmamın sebebi, web sunucularında kullanan herkesin görmesinden doğan bir atalet. PHP hakkında web sunucularında bu kadar yaygın hale getiren şey nedir?

(Bu sorunun aşağıdaki soruya benzer olduğunu, ancak farklı bir yöne götürdüğünü unutmayın: Java neden modern web uygulaması geliştirme için kullanılmıyor? )


4
Her zaman varsaydım çünkü Apache'ye kurulumu kolaydır ve neredeyse tüm web sunucuları Apache'dir.
maple_shaft

14
PHP, neredeyse herkes programlayabilirken neredeyse hepsinin yapmaması gerektiğini kanıtlayan dildir. Web neslinin Visual Basic'i.
Paul Tomblin

2
Başka bir noktayı tartışmak istiyorum - PHP web siteleri için iyi soyutlamalara sahiptir - önbellek dostudur, değişmez bir istek / yanıt döngüsüne sahiptir, kaynak yönetimi ile uğraşmaz, veri yapılarıyla uğraşmaz, dinamik doğa veritabanları ile iyi çalışır ve bir sürü yerleşik fonksiyona sahiptir, böylece paketler daha nadirdir ve dağıtım kolaydır. PHP'yi sevmiyorum, ama bunun için bir dava açmak çok kolay - ikna değilim ama yapmak kolaydır.
Benjamin Gruenbaum

Yanıtlar:


41

PHP, en popüler açık kaynak veritabanı MySQL ile yerleşik entegrasyon ile web programlama için özel olarak tasarlanmış bir dildir.

  • Başlamak kolay: Yeni başlayan biri olarak PHP ile başlamak kolaydır. Kullanıcı sadece mevcut HTML dosyalarında bir for-loop ile birkaç PHP etiketi eklemek ve daha sonra sunucuya yüklemek ve sonucu veya bir hata mesajı görmek zorunda. Dinamik yazma ve ilişkilendirilebilir diziler, PHP kullanmaya başlamayı da kolaylaştırır.

  • Kullanımı kolay: Java gibi çoğu çözümle karşılaştırıldığında, PHP'nin derlenmesi gerekmez, bu yüzden sadece komut dosyasını yazmak ve sonra sunucuya yüklemek ve ardından tarayıcıyı güncellemek.

  • Entegre veritabanı desteği: PHP, MySQL gibi en popüler veritabanları için (çoğunlukla) yerleşik desteğe sahiptir, bu da veritabanlarını kullanmaya başlamanın kolay olduğu anlamına gelir, sadece mysql işlevlerini kullanmak için ek sürücülerin yüklenmesi gerekmez. Kullanımı kolay web tabanlı yönetici aracı PHPMyAdmin (1998'de piyasaya sürüldü) PHP'nin MySQL ile birlikte başarısı için de önemlidir.

  • Büyük bir kullanıcı tabanına sahip eski dil (1995'ten beri): PHP, web programlama için tasarlandığından beri erken (1995) popüler hale geldi. O zamandan beri kullanıcı tabanı büyüdü ve şimdi birçok web odaklı çerçeve ve kütüphane mevcut. Bazı örnekler blogg-sistemleri ve e-alışveriş platformlarıdır.

  • Ucuz hosting: PHP uzun süredir var olduğu ve hem Linux hem de Windows'ta iyi çalıştığı için ve birçok web sunucusu bunu destekliyor. Önceden yüklenmiş PHP ile hosting bulmakta sorun yoktur.


1
bunu cevap olarak işaretle, daha ileri gitmene gerek yok: S. Nice answer @Jonas
Pankaj Upadhyay

Buradaki noktaların çoğu klasik ASP için de geçerlidir. Oh, ve aynı zamanda sade JSP.
Adriano Carneiro

4
@Adrian: 1) PHP, JSP ve ASP'den önce yayınlandı. 2) ODBC veya JDBC ve sürücülerle uğraşmanız gerekmediğinden MySQL'i PHP ile kullanmak daha kolay 3) ASP o zaman Linux'ta (ucuz barındırma) kolay ve yaygın değildi. 4) Statik yazımıyla Java, yeni başlayanlar için başlamak biraz daha zordur.
Jonas

1
@Jonas, çoğunlukla benim fikrimi pekiştiriyorsun: 1) tek iyi web diliydi, bu yüzden doğru yer, doğru zamanda. 3) LAMBA, yazım budur. Ayrıca, sakin ol, PHP'nin kötü olduğunu söylemiyorum sadece neden popüler olduğunu söylüyorum: bir boşluğu doldurdu, hepsi bu.
Adriano Carneiro

9
"Başlaması kolay", bence, onu başlatan şey. Perl vardı ve PHP'nin yapabileceği her şeyi yapabilirdi. Ama PHP tam bir acemi için başlamak çok daha kolay oldu. Topluluğun acemilere de dost olduğundan şüpheleniyorum. PHP, VB'nin Windows programlama için yaptığı boşluğu doldurdu - insanların kendi başlarına başlayabilecekleri ve aslında bir şeyler yaratabilecekleri kadar kolay .
GrandmasterB

10

Aynı nedenden ötürü MySQL çok popüler: doğru zamanda doğru yerdeydi.

90'larda Linux sunucu patlamasıyla LAMP platformu (Linux-Apache-MySQL-PHP) güvenilir ve en önemlisi ücretsiz bir seçenek olarak ortaya çıktı.

Yan not olarak, MySQL'i o zaman alın. Bunlar çok uzun zaman önce MySQL'den iki eksik özellikti (aklımın en üstünde, daha fazlası olabilir) :

  • Tetikleyici yok
  • ASİT ile tam uyumlu değil

ACID (atomisite-tutarlılık-izolasyon-dayanıklılık) uyumlu bile olmayan bir DB nasıl bu kadar popüler oldu? PHP ile aynı cevap: doğru zamanda doğru yerdeydi.

LAMP bileşenleri üzerinde "doğru yer doğru zaman" hakkında daha fazla bilgi:


3
"Doğru zamanda doğru yerdeydi" cevabı ise, C ile Perl ve CGI aynı popülerliği görmüş olmalı.
Jonas

2
"ACID uyumlu bile olmayan bir DB nasıl bu kadar popüler oldu?" - bu kolay ... çoğu insan için o kadar da önemli değildi. MySQL, çoğu web kullanımı için yeterince güvenilirdir . Banka için yeterince güvenilir mi? Muhtemelen değil. Bir web forumu için mi? Evet.
GrandmasterB

"Ama MySQL neredeyse bir RDBMS!" Diye bağırdı bir meslektaşım vardı. Bunu eğlenceli buluyorum. Popülerlik komik bir şeydir. Biz - yazılım geliştiricileri - trend köleleri olmamalı, çalışmaya devam etmek için öğrenmeye devam etmeliyiz. Bir teknolojiyi çok fazla savunan herkesin gitmesi daha az olasıdır. Ve bu her zaman profesyonel olarak tehlikelidir. Bu konu benim için bitti. :)
Adriano Carneiro

8

Etrafınıza bakarsanız, bugünlerde PHP çalıştıran çoğu kişi Wordpress, Drupal, Joomla ve benzerlerini çalıştırıyor. Ya da ucuz bir PHP barındırıcısı ve küçük bir yapılandırma ile hemen hemen kutudan çıkan 10.000 ücretsiz, popüler uygulamadan biri. Çoğu zaman herkes PHP üzerinde çalışan bir şey yapıyor çünkü en kolay seçenek PHP üzerine inşa edilmiş bir şey kullanmak olduğu için yüklenmez.


7

Şu an kendime PHP öğretiyorum, belki cevap verebilirim.

Bir PHP kaynak kodu dosyası HTML, JavaScript ve PHP'nin bir karışımını içerebilir, bu nedenle basit web uygulamalarını çalıştırmak ve çalıştırmak gerçekten çok kolay görünüyor. Bir JSP durumunda çok fazla Java veya bir CGI-BIN durumunda bazı tuhaf eğriler gerektiren daha karmaşık etkileşimler PHP yerleşikleri tarafından karşılanır: bir HTTP GET veya POST kodunuzda bilmek istediğiniz her şey _REQUEST veya _SERVER veya _COOKIE global değişkenlerinde yaşıyor.

PHP-the-langauage oldukça hızlı bir şekilde ayrıştırılır ve yürütülür, böylece bir grup statik HTML dosyasına sahip olmak yerine HTML oluştururken büyük bir performans düşüşü fark etmezsiniz.

PHP-the-interpreter neredeyse her açık kaynak DBMS için kütüphane çağrıları ve özel mülkler de vardır, bu nedenle 3 katmanlı bir web uygulaması yapmak kolay görünüyor. PHP-the-interpreter, diğer birçok ortak durum için kütüphane çağrıları içerir ("kullanım örnekleri" olarak da bilinir), bu yüzden kendiniz çok fazla kod yazmak zorunda değilsiniz, sadece kütüphaneyi arayın. Yani, tıpkı J2EE "kurumsal uygulamalar" gibi, sorun nasıl kodlanacağını bilmekten kütüphane materyallerine nasıl bakılacağını bilmek. Bu çok iyi php.net PHP manuel yardımcı olur.

Bir programlama dili olarak PHP'nin çok fazla egzotik yapısı yoktur veya C, FORTRAN 4 veya Pascal'dan çok farklı değildir, bu nedenle zaten bir dili bilen programcılar PHP-programlama dilini kolayca alabilirler.


3

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ı.


1

Yüzleşelim, PHP ucuz, öğrenmesi kolay, geniş bir topluluğa sahip, her yerde barındırabilirsiniz ve çok şey oldu. Yani, interneti küçük / orta ölçekli bir endüstride hızlı para kazanmanın bir yolu olarak kullanan ve pratik olarak var olmayan bir altyapı ile bunu yapmak için bir geliştirme alanı oluşturmak zorunda kaldığınızı düşünüyorsanız, PHP (başlangıçta) oldukça harika görünüyor.

Bence PHP bir grup programcı ve sunucu olarak küçük bir bilgisayarla hızlı para kazanmanın harika bir yoludur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.