ทำไม 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 มี abstractions ที่ดีสำหรับเว็บไซต์ - มันเป็นมิตรกับแคชมันมีวงจรการร้องขอ / การตอบสนองที่ไม่เปลี่ยนรูปมันไม่ทำให้คุณจัดการกับการจัดการทรัพยากรมันไม่ได้ทำให้คุณจัดการกับโครงสร้างข้อมูล ธรรมชาติแบบไดนามิกทำงานได้ดีกับฐานข้อมูลและมีฟังก์ชั่นมากมายในตัวดังนั้นแพ็คเกจจึงหายากมากขึ้นและการปรับใช้ง่าย ฉันไม่ชอบ PHP แต่มันง่ายมากที่จะทำเรื่องนี้ - ฉันไม่เชื่อ แต่มันง่ายที่จะทำ
Benjamin Gruenbaum

คำตอบ:


41

PHP เป็นภาษาที่ได้รับการออกแบบมาโดยเฉพาะสำหรับการเขียนโปรแกรมเว็บด้วยการผสานรวมกับฐานข้อมูลโอเพ่นซอร์ส MySQL ที่ได้รับความนิยม

  • ง่ายต่อการเริ่มต้นด้วย:ในฐานะผู้เริ่มต้นมันง่ายที่จะเริ่มต้นด้วย PHP ผู้ใช้เพียงแค่ต้องเพิ่มแท็ก PHP สองสามแท็กเช่น for-loop ในไฟล์ HTML ที่มีอยู่แล้วอัปโหลดไปยังเซิร์ฟเวอร์และดูผลลัพธ์หรือข้อความแสดงข้อผิดพลาด การพิมพ์และการเชื่อมโยงแบบไดนามิกทำให้ง่ายต่อการเริ่มต้นใช้งาน 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) การใช้ MySQL กับ PHP ง่ายกว่าเพราะคุณไม่ต้องจัดการกับ ODBC หรือ JDBC และไดรเวอร์ 3) ASP นั้นไม่ง่ายและแพร่หลายบน Linux (โฮสติ้งราคาถูก) ในเวลานั้น 4) Java ที่มีการพิมพ์แบบสแตติกค่อนข้างยากสำหรับผู้เริ่มต้น
Jonas

1
@ Jonas คุณกำลังเสริมจุดของฉันเป็นส่วนใหญ่: 1) มันเป็นภาษาเว็บที่ดีเท่านั้นสถานที่ที่เหมาะสมเวลาที่เหมาะสม 3) โคมไฟนั่นคือสิ่งที่โพสต์ของฉันเกี่ยวกับ ยิ่งไปกว่านั้นฉันไม่ได้บอกว่า PHP แย่ฉันแค่บอกว่าทำไมมันถึงได้รับความนิยม: เติมเต็มช่องว่างนั่นแหละ
Adriano Carneiro

9
"ง่ายต่อการเริ่มต้นด้วย" คือฉันคิดว่าสิ่งที่เปิดตัว Perl มีอยู่และสามารถทำทุกอย่างที่ PHP ทำได้ แต่ PHP นั้นง่ายกว่ามากสำหรับมือใหม่ที่จะเริ่มต้นใช้งาน และฉันก็สงสัยว่าชุมชนนี้เป็นมิตรต่อมือใหม่เช่นกัน PHP เติมช่องว่างที่ VB ทำสำหรับการเขียนโปรแกรม Windows - ง่ายพอที่ผู้คนจะสามารถเริ่มต้นได้ด้วยตนเองและสร้างบางสิ่งขึ้นมา
GrandmasterB

10

ด้วยเหตุผลเดียวกัน MySQL เป็นที่นิยมมาก: มันถูกที่ถูกเวลา

ด้วยความนิยมของเซิร์ฟเวอร์ Linux ในยุค 90 แพลตฟอร์ม LAMP (Linux-Apache-MySQL-PHP) จึงกลายเป็นตัวเลือกที่น่าเชื่อถือและที่สำคัญที่สุดคือฟรี

ในฐานะที่เป็นบันทึกด้านใช้ MySQL ในเวลา สิ่งเหล่านี้เป็นคุณสมบัติสองอย่างที่ขาดหายไปจาก MySQL (จากความคิดของฉันอาจมีมากกว่า) ไม่นานมานี้ :

  • ไม่มีทริกเกอร์
  • ไม่สอดคล้องกับกรดอย่างสมบูรณ์

ฐานข้อมูลที่ไม่ได้เป็นไปตาม ACID (ความคงทนต่อการแยกอะตอมมิกซิตี้ - ความทนทานต่อการแยก) ได้รับความนิยมอย่างไร คำตอบเดียวกับ PHP: มันถูกที่ถูกเวลา

อ่านเพิ่มเติมเกี่ยวกับ "เวลาที่ถูกที่ถูกต้อง" บนส่วนประกอบของหลอดไฟ:


3
ถ้าคำตอบคือ "มันถูกที่ถูกเวลา" Perl และ CGI กับ C น่าจะได้รับความนิยมเช่นเดียวกัน
Jonas

2
"ฐานข้อมูลที่ไม่ได้เป็นไปตามมาตรฐานของกรดถึงจะได้รับความนิยมได้อย่างไร" - ง่าย ... มันไม่สำคัญกับคนส่วนใหญ่ MySQL มีความน่าเชื่อถือเพียงพอสำหรับการใช้งานเว็บส่วนใหญ่ เชื่อถือได้ตั้งแต่เช้าตรู่สำหรับธนาคารหรือไม่ อาจจะไม่. สำหรับเว็บบอร์ด? ใช่.
GrandmasterB

ฉันมีเพื่อนร่วมงานที่จะกรีดร้อง "แต่ MySQL แทบจะไม่เป็น RDBMS!" ฉันพบว่ามันน่าขบขัน ความนิยมเป็นเรื่องตลก เรา - นักพัฒนาซอฟต์แวร์ - ต้องไม่เป็นทาสของเทรนด์เราต้องเรียนรู้เพื่อทำงานต่อไป ทุกคนที่ปกป้องเทคโนโลยีมากเกินไปมีโอกาสน้อยที่จะปล่อย และนั่นเป็นอันตรายอย่างมืออาชีพเสมอ หัวข้อนี้จบแล้วสำหรับฉัน :)
Adriano Carneiro

8

ถ้าคุณมองไปรอบ ๆ คนส่วนใหญ่ที่ใช้งาน PHP วันนี้กำลังใช้งาน Wordpress, Drupal, Joomla และอื่น ๆ หรือหนึ่งใน 10,000 แอพยอดนิยมที่ค่อนข้างทำงานนอกกรอบด้วยโฮสต์ PHP ราคาถูกและการกำหนดค่าเล็กน้อย หลายครั้งที่ติดตั้งไม่ได้เพราะทุกคนทำสิ่งที่ทำงานบน PHP มากที่สุดเท่าที่ตัวเลือกที่ง่ายที่สุดคือใช้สิ่งที่สร้างขึ้นบน PHP


7

ฉันกำลังสอน PHP ตัวเองอยู่ตอนนี้ดังนั้นฉันอาจตอบได้

ไฟล์ซอร์สโค้ด PHP สามารถประกอบด้วย HTML, JavaScript และ PHP ดังนั้นจึงเป็นเรื่องง่ายที่จะทำให้เว็บแอปพลิเคชั่นทำงานง่ายขึ้น การโต้ตอบที่ซับซ้อนมากขึ้นซึ่งจะต้องใช้ Java จำนวนมากในสถานการณ์ JSP หรือสถานการณ์ที่แปลกประหลาดบางอย่างในสถานการณ์ CGI-BIN ได้รับการรองรับจาก PHP builtins: คุณไม่จำเป็นต้องรู้ว่า HTTP GET หรือ POST เรียกว่า โค้ดทุกสิ่งที่รหัสของคุณต้องการรู้อยู่ใน _REQUEST หรือ _SERVER หรือ _COOKIE ตัวแปรทั่วโลก

PHP-the-langauage ได้รับการแยกวิเคราะห์และดำเนินการอย่างรวดเร็วดังนั้นคุณจะไม่สังเกตเห็นประสิทธิภาพที่ลดลงอย่างมากเมื่อสร้าง HTML แทนที่จะสร้างไฟล์ HTML แบบคงที่

PHP-the-interpreter มีไลบรารี่เรียกร้องให้ DBMS โอเพ่นซอร์สทุกตัวและเจ้าของลิขสิทธิ์จำนวนมากเช่นกันดังนั้นการสร้างแอพพลิเคชั่นเว็บแบบ 3 ชั้นดูง่าย PHP-the-interpreter รวมถึงการเรียกใช้ไลบรารี่สำหรับสถานการณ์ทั่วไปอื่น ๆ (เช่น "กรณีใช้") ดังนั้นคุณไม่จำเป็นต้องเขียนโค้ดจำนวนมากด้วยตัวเองเพียงแค่เรียกไลบรารี่ ดังนั้นเช่นเดียวกับ J2EE "แอพองค์กร" ปัญหาจะเปลี่ยนจากการรู้วิธีการเขียนโค้ดไปจนถึงการรู้วิธีการค้นหาไลบรารี สิ่งนี้ได้รับความช่วยเหลือจากคู่มือ PHP php.net ที่ดีมาก

ในฐานะที่เป็นภาษาการเขียนโปรแกรม PHP ไม่มีโครงสร้างที่แปลกใหม่มากมายหรือแตกต่างจากพูด C, FORTRAN 4 หรือ Pascal ดังนั้นโปรแกรมเมอร์ที่รู้อยู่แล้วว่าหนึ่งภาษาสามารถรับภาษา PHP-the-programming ได้อย่างง่ายดาย


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 code หรือเข้าถึงตัวแปรขอโดยตรง (ดู register_globals) ซึ่งใน Perl นั้นยากกว่า (การแยกวิเคราะห์แบบกำหนดเองหรือพึ่งพา CGI.pm) ซึ่งนักพัฒนาซอฟต์แวร์ชอบ

อีกแง่มุมหนึ่งที่ทำให้ PHP ประสบความสำเร็จในสมัยนั้นก็คือการรองรับ Windows ได้ดี การได้รับ Perl หรือภาษาอื่น ๆ ที่ทำงานบน Windows เป็นเรื่องยาก แต่กลับมาในเวลานั้นนักพัฒนาจำนวนมากที่ใช้ Windows ที่บ้านและการจำลองเสมือนหรือคอนเทนเนอร์ยังไม่เป็นเช่นนั้น PHP ทำงานบน Windows ได้อย่างง่ายดายเพื่อให้ผู้คนสามารถใช้มันเพื่อการพัฒนาแล้วจัดเก็บไฟล์และปรับใช้บน Linux ด้วย Perl ตัวอย่างเช่นคุณจะต้องได้รับการกระจาย Perl ที่ถูกต้องแล้วตรวจสอบโมดูลที่มีอยู่ในทุก ๆ

แล้วภาษาอื่น ๆ ล่ะ? ภาษาที่คอมไพล์เช่น C หรือ C ++ ไม่เคยมีแรงฉุดเพราะสคริปต์ให้บริการแก่ตลาดที่กำลังพัฒนาอย่างรวดเร็ว มี Java อยู่ แต่เครื่อง Java Virtual ต้องการทรัพยากรมากขึ้นและใช้พื้นที่ร่วมกันในวิธีที่ PHP สนับสนุนนั้นแทบจะไม่สามารถทำได้ การลงทุนในฮาร์ดไดรฟ์นั้นสูงขึ้น ASP (ในฐานะรุ่นก่อนของ ASP.Net) ถูกผูกไว้กับแพลตฟอร์ม Windows, จำกัด ให้กับองค์กรที่ใช้ Windows อยู่แล้วและผู้ที่ไม่กลัวค่าลิขสิทธิ์, และไม่มีการสนับสนุนโฮสติ้งที่ใช้ร่วมกันอีกครั้ง

เทคโนโลยีอื่นที่แตกต่างกันที่ผลิต แต่อย่างใดอย่างหนึ่งเป็นเชิงพาณิชย์ (Cold Fusion หรือ Netscape Server พร้อม JavaScript ฝั่งเซิร์ฟเวอร์) จำกัด การเข้าถึงของพวกเขาหรือไม่ออกจากการเข้าถึงของพวกเขาจนกว่า Ruby-on-rails มาซึ่งอาจเป็นสภาพแวดล้อมแรกที่ได้รับจำนวนมาก แต่ในเวลานั้น PHP ได้รับความนิยมอย่างมากในชุมชนขนาดใหญ่และซอฟต์แวร์ที่มีชื่อเสียง (เช่น Wordpress หรือ Drupal) ทำให้ยากต่อการแข่งขัน - โดยเฉพาะอย่างยิ่งการพัฒนาของ PHP ไม่เคยหยุดนิ่งและยังคงดำเนินต่อไป


1

ให้หันหน้าไปทาง PHP มีราคาถูกง่ายต่อการเรียนรู้มีชุมชนขนาดใหญ่คุณสามารถโฮสต์ได้ทุกที่และมีอยู่มากมาย ดังนั้นถ้าคุณคิดว่าเป็นคนที่ใช้อินเทอร์เน็ตเป็นวิธีหาเงินอย่างรวดเร็วในอุตสาหกรรมขนาดเล็ก / ขนาดกลางและต้องสร้างพื้นที่พัฒนาเพื่อทำเช่นนั้นด้วยโครงสร้างพื้นฐานที่ไม่มีอยู่จริง PHP ฟังดูดีมาก (เริ่มต้นด้วย)

ดังนั้นฉันคิดว่า PHP เป็นวิธีที่ยอดเยี่ยมในการสร้างรายได้อย่างรวดเร็วด้วยโปรแกรมเมอร์และคอมพิวเตอร์ขนาดเล็กเป็นเซิร์ฟเวอร์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.