PHP 從語言層面上講幾乎是一無是處,具體實(shí)現(xiàn)的質(zhì)量也乏善可陳,但它勝在最要命的部署上:沒有任何其他語言有像 PHP 一樣適合大規(guī)模部署的方式;旧涎b好 Apache/mod_php 之后,PHP 應(yīng)用的部署就簡化為了復(fù)制文件。即便是考慮到性能原因等采用 nginx/FastCGI 等替代方式,額外的工作也只是在于最初配置。一旦配置完成,之后的部署都是文件復(fù)制。服務(wù)器重啟后通常會自動啟動 apache/nginx,fastcgi manager 負(fù)責(zé)啟動 php-cgi 進(jìn)程等,而 PHP 應(yīng)用基于文件的調(diào)用方式并不需要操心更多的維護(hù)。這對于如 Dreamhost 之類的虛擬主機(jī)平臺來說至關(guān)重要:他們通常要一臺服務(wù)器處理成千上萬的低流量用戶,而且這些用戶沒有 root 權(quán)限去運(yùn)行其他進(jìn)程。PHP 腳本的生命周期很短,沒有常駐進(jìn)程,每次調(diào)用之后就被終止,對于應(yīng)用作者的要求更低,不用太多的考慮資源管理問題。
這和 Python 之流的部署有天壤之別:大部分 Python 的網(wǎng)絡(luò)應(yīng)用如 Django, Tornado 等都需要單獨(dú)的常駐進(jìn)程(Apache/mod_python 似乎是個杯具,而且早就不再更新了)。這些進(jìn)程需要額外的維護(hù)工作以管理其啟動、停止,也需要額外的監(jiān)控進(jìn)程處理意外退出后的重啟。這需要用戶對系統(tǒng)有更深入的了解。常駐進(jìn)程需要占用系統(tǒng)內(nèi)存,通常不可能在一臺服務(wù)器上運(yùn)行成百上千個應(yīng)用,對于 Dreamhost 這樣的服務(wù)提供商來說不適合用來處理諸如 WordPress 博客之類的簡單應(yīng)用。常駐進(jìn)程也要求作者對系統(tǒng)資源的管理、垃圾回收機(jī)制等有更深入的了解以避免內(nèi)存泄露、資源占用過度等問題,F(xiàn)在 Python 網(wǎng)絡(luò)應(yīng)用部署最簡單的應(yīng)該是 App Engine,采用了類似 PHP 的生命周期(請求處理 30 秒限制,超時被終止,無法運(yùn)行常駐進(jìn)程),極大簡化了管理難度,但是國內(nèi)無法訪問…
所以從流行程度上講,Python 不會超過 PHP,因?yàn)閿?shù)量龐大的服務(wù)提供商無法用 Python 支撐現(xiàn)有的用戶規(guī)模。但是這個流行程度對于創(chuàng)業(yè)公司、專業(yè)人士來說沒有什么意義。很多核心的網(wǎng)絡(luò)應(yīng)用不適合用 PHP 的短暫請求處理機(jī)制實(shí)現(xiàn)(比如準(zhǔn)實(shí)時 push 提醒、網(wǎng)頁即時聊天等),而更加適合由常駐進(jìn)程來處理。這些才是 Python,Ruby 等語言實(shí)現(xiàn)發(fā)揮其能量的地方。
Python 的強(qiáng)大之處在于語言的簡潔與優(yōu)雅,以及它強(qiáng)大的表達(dá)能力。Hacker 們愿意使用 Python 來作為他們表達(dá)思維的方式。
在 Web 開發(fā)上面,Python部署成問題,但是對于商業(yè)網(wǎng)站而言,自己處理一臺 VPS 不成問題。而 Python的通用性,能保證完成各種非常規(guī)的應(yīng)用。
簡單地說,如果你只是需要 Web1.0 的內(nèi)容展示網(wǎng)站,考慮php。而 Web2.0,可以考慮 Python,以及RoR。
所以這個小節(jié),我們重點(diǎn)來突破,Python Web 部署的問題,讓Python的部署輕松愉快。
引自:為什么Python Web流行度不如PHP? 作者:程序員幫主
原文地址:http://www.weightlossorganic.com/article/6321413793244409.htm
關(guān)于一覽 | 聯(lián)系我們 | 用戶反饋
深圳市一覽網(wǎng)絡(luò)股份有限公司 版權(quán)所有 ©2006-2025 粵ICP備08106584號 增值電信業(yè)務(wù)經(jīng)營許可證:粵B2-20070017