Tại sao PHP thường được sử dụng trên các máy chủ web? [đóng cửa]


14

Máy chủ web của tôi sử dụng PHP cũng như 76,9% máy chủ web theo W3Techs:

http://w3techs.com/technology/overview/programming_lingu/all

Lý do tôi sử dụng PHP là một quán tính sinh ra do nhìn thấy mọi người khác sử dụng nó trên các máy chủ web. Điều gì về PHP sẽ làm cho nó trở nên phổ biến trên các máy chủ web?

(Lưu ý rằng câu hỏi này tương tự như câu hỏi sau đây nhưng lại đưa ra một hướng khác: Tại sao Java không được sử dụng để phát triển ứng dụng web hiện đại? )


4
Tôi luôn giả định vì nó dễ cài đặt trên Apache và gần như tất cả các máy chủ web là Apache.
maple_shaft

14
PHP là ngôn ngữ chứng minh rằng trong khi hầu hết mọi người đều có thể lập trình, thì gần như tất cả họ đều không nên. Đó là Visual Basic của thế hệ web.
Paul Tomblin

2
Tôi muốn tranh luận một điểm khác - PHP có tính trừu tượng tốt cho các trang web - nó thân thiện với bộ đệm, nó có chu trình yêu cầu / phản hồi bất biến, nó không khiến bạn phải đối phó với quản lý tài nguyên, nó không khiến bạn phải đối phó với cấu trúc dữ liệu, nó bản chất động hoạt động tốt với cơ sở dữ liệu và nó có rất nhiều chức năng được tích hợp sẵn nên các gói hiếm hơn và việc triển khai dễ dàng. Tôi không thích PHP, nhưng rất dễ để tạo ra một trường hợp cho nó - Tôi không bị thuyết phục nhưng nó rất dễ thực hiện.
Benjamin Gruenbaum

Câu trả lời:


41

PHP là một ngôn ngữ được thiết kế đặc biệt để lập trình web với tích hợp tích hợp với cơ sở dữ liệu nguồn mở phổ biến nhất MySQL.

  • Dễ dàng bắt đầu với: Là người mới bắt đầu, thật dễ dàng để bắt đầu với PHP. Người dùng chỉ cần thêm một vài thẻ PHP với ví dụ: vòng lặp for trong các tệp HTML hiện có và sau đó tải nó lên máy chủ và xem kết quả hoặc thông báo lỗi. Gõ động và mảng kết hợp làm cho việc bắt đầu sử dụng PHP cũng dễ dàng hơn.

  • Dễ sử dụng: So với hầu hết các giải pháp như Java, PHP không cần phải biên dịch, do đó, chỉ cần viết tập lệnh và sau đó tải nó lên máy chủ và sau đó cập nhật trình duyệt.

  • Hỗ trợ cơ sở dữ liệu tích hợp: PHP có (hầu hết) hỗ trợ tích hợp cho các cơ sở dữ liệu phổ biến nhất như MySQL, điều đó có nghĩa là dễ dàng bắt đầu sử dụng cơ sở dữ liệu, không cần cài đặt trình điều khiển bổ sung, chỉ cần sử dụng các hàm mysql. Công cụ quản trị dựa trên web dễ sử dụng PHPMyAdmin (phát hành năm 1998) cũng rất quan trọng đối với thành công của PHP khi kết hợp với MySQL.

  • Ngôn ngữ cũ (từ năm 1995) với lượng người dùng lớn: PHP trở nên phổ biến từ đầu năm (1995) kể từ khi nó được thiết kế để lập trình web. Kể từ đó, cơ sở người dùng đã phát triển và bây giờ có nhiều khung và thư viện hướng web. Một số ví dụ là hệ thống blog và nền tảng mua sắm điện tử.

  • Lưu trữ giá rẻ: Vì PHP đã tồn tại từ lâu và hoạt động tốt trên cả Linux và Windows, và nhiều máy chủ web đã hỗ trợ cho nó. Không có vấn đề gì khi tìm hosting với PHP được cài đặt sẵn.


1
đánh dấu đây là câu trả lời, bạn không cần phải đi xa hơn: P. Câu trả lời hay @Jonas
Pankaj Upadhyay

Hầu hết các điểm ở đây cũng đúng với ASP cổ điển. Ồ, và cũng đơn giản.
Adriano Carneiro

4
@Adrian: 1) PHP đã được phát hành trước cả JSP và ASP. 2) Sử dụng MySQL với PHP dễ dàng hơn vì bạn không phải xử lý ODBC hoặc JDBC và trình điều khiển 3) ASP không dễ dàng và phổ biến trên Linux (lưu trữ giá rẻ) tại thời điểm đó. 4) Java với kiểu gõ tĩnh khó hơn một chút để bắt đầu với người mới bắt đầu.
Jonas

1
@Jonas, bạn chủ yếu củng cố quan điểm của tôi: 1) đó là ngôn ngữ web đàng hoàng duy nhất, đúng nơi, đúng thời điểm. 3) LAMP, đó là những gì bài viết của tôi là về. Ngoài ra, làm cho nó dễ dàng, tôi không nói rằng PHP là xấu Tôi chỉ nói tại sao nó trở nên phổ biến: nó lấp đầy một khoảng trống, đó là nó.
Adriano Carneiro

9
"Dễ dàng để bắt đầu" là, tôi nghĩ, những gì đã đưa ra nó. Perl tồn tại và có thể làm mọi thứ mà PHP có thể làm. Nhưng PHP dễ dàng hơn nhiều đối với một người mới hoàn thành để bắt đầu. Và tôi nghi ngờ cộng đồng cũng thân thiện hơn với người mới. PHP đã lấp đầy khoảng trống mà VB đã làm cho lập trình Windows - đủ dễ để mọi người có thể tự mình bắt đầu và thực sự tạo ra một cái gì đó.
GrandmasterB

10

Vì lý do tương tự, MySQL rất phổ biến: nó đã ở đúng nơi, đúng thời điểm.

Với sự bùng nổ của máy chủ Linux trong những năm 90, nền tảng LAMP (Linux-Apache-MySQL-PHP) đã trở thành một lựa chọn đáng tin cậy và quan trọng nhất là miễn phí.

Là một lưu ý phụ, hãy dùng MySQL tại thời điểm đó. Đây là hai tính năng bị thiếu từ MySQL (từ đầu tôi, có thể có nhiều hơn) cách đây không lâu :

  • Không có kích hoạt
  • Không tuân thủ ACID hoàn toàn

Làm thế nào mà một DB mà thậm chí không tuân thủ ACID (nguyên tử-nhất quán-cách ly-độ bền) trở nên phổ biến như vậy? Câu trả lời tương tự như PHP: nó đã ở đúng nơi vào đúng thời điểm.

Đọc thêm về "đúng nơi đúng lúc" trên các thành phần LAMP:


3
Nếu "nó đã ở đúng nơi, đúng thời điểm" là câu trả lời, thì Perl và CGI với C sẽ thấy sự phổ biến tương tự.
Jonas

2
"Làm thế nào mà một DB thậm chí không tuân thủ ACID lại trở nên phổ biến như vậy?" - thật dễ dàng ... nó không quan trọng đối với hầu hết mọi người. MySQL là đủ đáng tin cậy cho hầu hết các sử dụng web. Đủ tin cậy sớm cho một ngân hàng? Chắc là không. Đối với một diễn đàn web? Đúng.
GrandmasterB

Tôi đã có một đồng nghiệp sẽ hét lên "nhưng MySQL hầu như không phải là RDBMS!". Tôi thấy rằng thú vị. Phổ biến là một điều buồn cười. Chúng tôi - nhà phát triển phần mềm - không phải là nô lệ của xu hướng, chúng tôi phải tiếp tục học hỏi để tiếp tục làm việc. Bất cứ ai bảo vệ một công nghệ quá nhiều sẽ ít có khả năng buông tay. Và đó luôn là mối nguy hiểm chuyên nghiệp. Chủ đề này đã qua cho tôi. :)
Adriano Carneiro

8

Nếu bạn nhìn xung quanh, hầu hết mọi người chạy PHP ngày nay đều đang chạy Wordpress, Drupal, Joomla và tương tự. Hoặc một trong số 10.000 ứng dụng miễn phí, phổ biến hoạt động khá tốt với máy chủ PHP giá rẻ và cấu hình nhỏ. Nhiều lần nó được cài đặt không phải vì bất kỳ ai cũng tạo ra thứ gì đó chạy trên PHP nhiều như tùy chọn dễ nhất là sử dụng thứ được xây dựng trên PHP.


7

Tôi đang tự học PHP ngay bây giờ, vì vậy có lẽ tôi có thể trả lời.

Một tệp mã nguồn PHP có thể chứa hỗn hợp HTML, JavaScript và PHP, vì vậy có vẻ rất dễ dàng để có được các ứng dụng web đơn giản và chạy. Các tương tác phức tạp hơn, sẽ đòi hỏi rất nhiều Java trong tình huống JSP hoặc một số mâu thuẫn kỳ lạ trong tình huống CGI-BIN, được phục vụ bởi các nội dung PHP: bạn thậm chí không cần phải biết HTTP GET hoặc POST được gọi là mã, mọi thứ mà mã của bạn muốn biết đều tồn tại trong các biến toàn cục _REQUEST hoặc _SERVER hoặc _COOKIE.

PHP-the-langauage được phân tích cú pháp và thực thi khá nhanh, do đó bạn sẽ không nhận thấy sự sụt giảm hiệu năng lớn khi tạo HTML, thay vì chỉ có một loạt các tệp HTML tĩnh.

Trình thông dịch PHP có các lệnh gọi thư viện cho mọi DBMS nguồn mở và cũng có rất nhiều ứng dụng độc quyền, do đó, việc tạo một ứng dụng web kiểu 3 tầng có vẻ dễ dàng. Trình thông dịch PHP bao gồm các lệnh gọi thư viện cho rất nhiều tình huống chung khác (còn gọi là "trường hợp sử dụng"), vì vậy bạn không phải tự viết nhiều mã, chỉ cần gọi thư viện. Vì vậy, giống như "ứng dụng doanh nghiệp" của J2EE, vấn đề chuyển từ việc biết cách viết mã sang biết cách tìm kiếm thư viện. Điều này được hỗ trợ bởi hướng dẫn PHP php.net rất tốt.

Là ngôn ngữ lập trình, PHP không có nhiều cấu trúc kỳ lạ, hoặc khác biệt quá nhiều so với C, FORTRAN 4 hoặc Pascal, vì vậy các lập trình viên đã biết một ngôn ngữ có thể dễ dàng chọn ngôn ngữ lập trình PHP.


3

Có hai điểm chính cho thành công của PHP: Thời gian và sự tập trung vào lưu trữ được chia sẻ.

Ban đầu, Web là tĩnh. Máy chủ web chỉ có thể phân phối HTML được tạo trước, điều này rõ ràng là không đủ sau một thời gian, vì vậy vào năm 1993, nhóm NCSA đã mở rộng máy chủ web của họ (tiền thân của Apache httpd) với công nghệ có tên CGI cho phép gọi các chương trình cụ thể từ máy chủ web có thể tạo HTML (hoặc nội dung khác) một cách nhanh chóng. Điều này thật tuyệt khi mọi người có thể làm tất cả mọi thứ. Một ngôn ngữ thường được sử dụng tại thời điểm đó cho mục đích đó là Perl. Perl là một ngôn ngữ mạnh trong xử lý văn bản, là một thuộc tính quan trọng để xử lý dữ liệu yêu cầu HTTP và tạo HTML. Vì vậy, mọi người đã sử dụng nó.

Nhưng có một vấn đề: Đối với mỗi yêu cầu, máy chủ web phải chạy một chương trình bên ngoài, Perl phải khởi tạo và chạy tập lệnh. Điều này gây ra khá đau đầu. Một giải pháp là mod_perl sắp ca. 1997. mod_perl là một mô-đun cho máy chủ web Apache nhúng trình thông dịch Perl trực tiếp vào quy trình máy chủ web để không cần khởi động thêm.

Nhưng một lần nữa cách tiếp cận này có một vấn đề: mod_perl cực kỳ mạnh mẽ và có quyền truy cập vào cấu hình máy chủ hoàn chỉnh. Bạn không thể sử dụng một máy chủ để lưu trữ nhiều máy khách độc lập vì chúng có thể dễ dàng gây hại cho người khác - có thể do mục đích hoặc do vô tình. Và đó là nơi PHP đến.

PHP được xây dựng theo cách mà nó có thể chạy như mô-đun Apache (do đó không có lần khởi động cho mỗi yêu cầu) nhưng cung cấp một môi trường không chia sẻ giữa các yêu cầu. Khi một yêu cầu được thực hiện, tất cả thông tin đã bị mất và một yêu cầu tiếp theo đến một máy chủ ảo khác sẽ được cung cấp độc lập. PHP cũng cung cấp các tính năng để hạn chế quyền truy cập (safe_mode, open_base_dir). Với lựa chọn kiến ​​trúc đó, các công ty có thể cài đặt PHP trên máy chủ của họ và cung cấp cho khách hàng quyền truy cập FTP (hoặc tương tự) để tải lên các tệp của họ và lưu trữ nhiều khách hàng trên một máy mà không cần nhiều công việc. Điều này gây ra một cuộc cạnh tranh dẫn đến giá rẻ cho lưu trữ dựa trên PHP làm cho PHP trở thành một nền tảng phổ biến.

Ngoài ra, PHP có một số lợi ích so với Perl, như cho phép trộn mã HTML và PHP hoặc truy cập trực tiếp vào các biến yêu cầu (xem thêm register_globals) mà trong Perl khó hơn (phân tích tùy chỉnh hoặc phụ thuộc vào CGI.pm) mà các nhà phát triển thích.

Một khía cạnh khác làm cho PHP thành công trong những ngày đó là hỗ trợ tốt trên Windows. Bắt Perl hoặc các ngôn ngữ khác hoạt động trên Windows rất khó, nhưng vào thời điểm đó, nhiều nhà phát triển sử dụng Windows tại nhà và ảo hóa hoặc các thùng chứa vẫn chưa phải là một điều. PHP đã chạy dễ dàng trên Windows để mọi người có thể sử dụng nó để phát triển và sau đó đóng gói các tệp và triển khai trên Linux. Ví dụ với Perl, bạn sẽ phải có được bản phân phối perl chính xác và sau đó kiểm tra xem các mô-đun nào có sẵn, v.v.

Những ngôn ngữ khác thì sao? Các ngôn ngữ được biên dịch như C hoặc C ++ không bao giờ có lực kéo vì kịch bản phục vụ thị trường phát triển nhanh hơn tốt hơn. Java tồn tại, nhưng các máy ảo Java yêu cầu nhiều tài nguyên hơn và lưu trữ chia sẻ theo cách mà PHP hỗ trợ, điều đó khó có thể thực hiện được. Đầu tư vào phần cứng là cách cao hơn. ASP (như tiền thân của ASP.Net) đã bị ràng buộc với nền tảng Windows, giới hạn nó cho các tổ chức đã chạy Windows và không sợ chi phí cấp phép và một lần nữa không hỗ trợ lưu trữ chia sẻ.

Các công nghệ khác được sản xuất nhưng là thương mại (Cold Fusion hoặc Netscape Server với JavaScript phía máy chủ) giới hạn phạm vi tiếp cận của chúng hoặc không vượt quá tầm với của chúng cho đến khi Ruby-on-rails xuất hiện, có lẽ là môi trường đầu tiên nhận được rất nhiều sự chú ý, nhưng vào thời điểm đó, PHP đã rất phổ biến với một cộng đồng lớn và phần mềm được thiết lập tốt (như Wordpress hoặc Drupal) khiến nó khó cạnh tranh - đặc biệt là khi sự phát triển của PHP không bao giờ dừng lại và vẫn đang tiếp tục.


1

Hãy đối mặt với nó, PHP rẻ, dễ học, có một cộng đồng lớn, bạn có thể lưu trữ nó ở bất cứ đâu và nó đã xuất hiện rất nhiều. Vì vậy, nếu bạn nghĩ rằng ai đó sử dụng internet như một cách kiếm tiền nhanh chóng trong một ngành công nghiệp nhỏ / vừa và phải tạo ra một khu vực phát triển để làm như vậy với cơ sở hạ tầng thực tế không tồn tại, thì PHP có vẻ khá tuyệt vời (để bắt đầu).

Vì vậy, tôi nghĩ rằng PHP là một cách tuyệt vời để kiếm tiền nhanh chóng với một nhóm lập trình viên và một máy tính nhỏ làm máy chủ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.