部署PHP應(yīng)用到線上Web服務(wù)器的方式有很多種。
PaaS提供運(yùn)行PHP Web應(yīng)用所需的系統(tǒng)和網(wǎng)絡(luò)環(huán)境,對(duì)PHP應(yīng)用和框架只需要做少量的配置即可。
現(xiàn)在PaaS已經(jīng)成為部署、托管和擴(kuò)展各種規(guī)模的PHP應(yīng)用的流行方式,可以在 resources部分查看PHP PaaS "平臺(tái)即服務(wù)"供應(yīng)商列表。
如果你愿意或想學(xué)習(xí)系統(tǒng)管理,那么虛擬或獨(dú)立主機(jī)可以讓你完全控制自己的運(yùn)行環(huán)境。
PHP通過(guò)內(nèi)置的FastCGI進(jìn)程管理器(FPM),可以非常高效地和輕量級(jí)的高性能Web服務(wù)器[nginx][72]進(jìn)行通信。 nginx比Apache消耗更少的內(nèi)存,能更好的處理并發(fā)請(qǐng)求,這在內(nèi)存限制較多的虛擬主機(jī)環(huán)境中尤為重要。
PHP和Apache是一個(gè)老搭檔,歷史悠久。Apache有很強(qiáng)的可配置性和大量的[擴(kuò)展模塊][73], 是共享主機(jī)中常見(jiàn)的Web服務(wù)器,完美支持各種PHP框架和開源應(yīng)用(如WordPress)。可惜的是,默認(rèn)情況下,Apache比nginx更耗資源,并發(fā)處理能力不強(qiáng)。
Apache有多種方式運(yùn)行PHP,最常見(jiàn)簡(jiǎn)單的方式是使用mod_php5的[prefork MPM][74]方式, 缺點(diǎn)是它對(duì)內(nèi)存的利用效率不高,如果你不想深入學(xué)習(xí)服務(wù)器的管理,那么這種最簡(jiǎn)單的方式就是你的最佳選擇了。注意,如果你使用mod_php5,最好使用 prefork MPM方式。
如果你想追求高性能和高穩(wěn)定性,那么也可以為Apache選擇與nginx類似的FPM系統(tǒng)[worker MPM][75]或 [event MPM][76],它們分別使用mod_fastcgi和mod_fcgid模塊。FPM方式可以更高效的利用內(nèi)存,運(yùn)行 速度更快,但是配置也相對(duì)復(fù)雜一些。
PHP非常流行,很少有服務(wù)器沒(méi)有安裝PHP的,因而有很多共享主機(jī),不過(guò)需要注意服務(wù)器上的PHP是否是最新穩(wěn)定 版本。共享主機(jī)允許多個(gè)開發(fā)者把自己的網(wǎng)站部署在上面,這樣的好處是費(fèi)用非常便宜,壞處是你不知道將和哪些 網(wǎng)站共享主機(jī),因此需要仔細(xì)考慮機(jī)器負(fù)載和安全問(wèn)題。如果項(xiàng)目預(yù)算允許的話,避免使用共享主機(jī)是上策。