2008-12-28 41 views
5

Đối với những người đã có cơ hội viết ứng dụng web bằng PHP và sau đó là máy chủ ứng dụng (ví dụ như giải pháp dựa trên Python như CherryPy hoặc giá treo), trong bối cảnh máy chủ ứng dụng nào là một giải pháp thay thế tốt hơn cho PHP?PHP so với máy chủ ứng dụng?

Tôi có xu hướng ưu tiên PHP đơn giản vì nó có sẵn trên bất kỳ máy chủ web nào (đặc biệt là máy chủ chia sẻ), nhưng tôi đang tìm kiếm các lý do tốt khác để đưa ra lựa chọn sáng suốt. Cảm ơn bạn.

Trả lời

1

Có một số sản phẩm trong PHP có cùng không gian như CherryPy hoặc giá treo.

(ngoại trừ, tất nhiên, họ không chạy Python;)

Có xem xét -

Cá nhân, tôi thích Drupal, hoạt động như một khuôn khổ tuyệt vời và đi kèm với rất nhiều tính năng CMS và trang web cộng đồng ra khỏi hộp. Những cái ở trên khá khác nhau theo nhiều cách, nhưng bất kỳ cách nào trong số này cũng cung cấp cho bạn những điều tốt nhất của cả hai thế giới nếu bạn muốn một khung ứng dụng/máy chủ ứng dụng chạy trên PHP.

Đó là một trong những lựa chọn đúng đắn phần lớn là một vấn đề của hương vị, mặc dù mỗi người đều có lợi thế khác nhau và nhược điểm của nó.

Có nhiều hơn nữa - đây chỉ là những điều tôi đã nghe những điều tốt đẹp từ các đồng nghiệp và cộng tác viên. Nó không phải là một danh sách đầy đủ.

4

Ưu điểm của việc triển khai cho PHP là một lợi thế lớn. Bạn cũng sẽ có một cơ sở phát triển lớn và có vẻ như bạn đã có chuyên môn đáng kể. Nói chung nếu bạn biết cách sử dụng một ngôn ngữ lập trình tốt, bạn an toàn hơn để gắn bó với nó.

Ưu điểm của việc sử dụng khung web Python như giá treo là mã của bạn sẽ gọn hơn và dễ bảo trì hơn. Tất nhiên điều này là có thể với PHP, nhưng có vẻ khó khăn hơn nhiều để đạt được. Python đơn giản là một ngôn ngữ đẹp hơn PHP, do đó có thể ảnh hưởng đến quyết định của bạn.

Cá nhân, tôi sẽ không mô tả Pylons hoặc CherryPy là "máy chủ ứng dụng", nếu bạn muốn có một máy chủ ứng dụng Python, hãy thử Zope. (Cả hai đều phục vụ các ứng dụng WSGI, nhưng đó là một chủ đề cho một câu hỏi khác.) Có vẻ như có rất nhiều khung công tác tương đương cho PHP, và chúng đã được liệt kê trong các câu trả lời khác.

0

Sử dụng máy chủ ứng dụng như giá treo, Django, v.v. đòi hỏi nhiều công việc hơn để thiết lập và triển khai sau đó các ứng dụng PHP thường được hỗ trợ ra khỏi hộp. Tôi chạy một vài ứng dụng Django và đã phải tìm hiểu một chút về cấu hình apache với mod_python để có được những thứ để làm việc. Tôi đưa ra nỗ lực bởi vì mã hóa trong python thú vị hơn nhiều so với PHP và sau khi bạn nhận được cấu hình Apache ngay khi bạn không bao giờ thực sự phải gây rối với nó một lần nữa. Trên một lưu ý khác, nếu bạn quyết định đi với một khuôn khổ như Django, Rails, giá treo, ....họ có xu hướng giải quyết rất nhiều nhiệm vụ lặp đi lặp lại nhỏ mà bạn sẽ làm theo cách riêng của bạn. Nhưng khung công tác là chủ đề thảo luận rất lớn của riêng họ.

1

Ứng dụng web Python có xu hướng yêu cầu thiết lập và phát triển ban đầu hơn trang PHP tương đương (đặc biệt là đối với các trang web nhỏ). Cũng có xu hướng có nhiều phần tái sử dụng hơn cho PHP (tức là Wordpress như một blog). Việc cấu hình máy chủ để chạy các ứng dụng web Python có thể là một quá trình khó khăn và không phải lúc nào cũng được ghi lại. PHP có xu hướng rất dễ dàng để chạy với Apache.

Ngoài ra, vì PHP được sử dụng rất rộng rãi và được sử dụng rất nhiều bởi người mới bắt đầu, có xu hướng là tài liệu rất tốt cho nó.

Tuy nhiên, Python thú vị hơn nhiều và dễ bảo trì hơn nhiều. Nó quy mô tốt (trong điều kiện phức tạp phát triển, chứ không phải là lưu lượng truy cập).

Cá nhân, tôi cũng sẽ nói rằng việc sử dụng Python có xu hướng đào tạo bạn để giải quyết các vấn đề một cách tốt hơn. Tôi chắc chắn là một nhà phát triển tốt hơn vì đã học được cách làm việc của Pythonic.

4

Tôi có cảm giác rằng một số câu trả lời không trực tiếp giải quyết câu hỏi ban đầu, vì vậy tôi quyết định đăng bài của riêng mình. Tôi hiểu rằng câu hỏi là về sự khác biệt giữa mô hình triển khai mod_php và mô hình triển khai máy chủ ứng dụng.

Nói một cách đơn giản, PHP thực hiện một tập lệnh cho mỗi yêu cầu và ứng dụng không biết gì về những gì đã xảy ra trước đó (trừ khi nó được mô phỏng bằng cách nào đó). Hơn nữa ngay cả mã nguồn đang được phân tích cú pháp trên mọi yêu cầu (trừ khi bạn sử dụng bộ đệm ẩn bytecode như APC). Quá trình này có thể chậm, đặc biệt nếu bạn có một khung công tác khởi tạo phức tạp.

Ngược lại, máy chủ ứng dụng phải được bắt đầu một lần và sau đó nó chờ yêu cầu được xử lý. Máy chủ ứng dụng nên dọn sạch tài nguyên sau mỗi yêu cầu (bộ nhớ được cấp phát, bộ mô tả mở, v.v.), nó cũng có thể phân phối một số tài nguyên nhất định (như kết nối cơ sở dữ liệu) có thể được sử dụng lại giữa các yêu cầu để thực hiện thêm.

Mô hình sau này (máy chủ ứng dụng) hiệu quả hơn trong hầu hết các trường hợp, nhưng mặt khác khó thiết lập và bảo trì hơn. Nó cũng đòi hỏi nhiều hơn, vì bạn phải chú ý nhiều hơn đến các tài nguyên bạn sử dụng, để tránh rò rỉ tài nguyên.

+0

Đây là mô tả tuyệt vời. Xin vui lòng upvote. –

Các vấn đề liên quan