『壹』 怎樣在本地運行php
本地運行PHP文件必須安裝PHP環境,常用的PHP環境有很多種:phpstudy、WampServer、UPUPWNginx(64位)、XAMPP、MAMPProforMac等。
下面以UPUPW為例:
1、網路一下,在搜索框中輸入UPUPW,找到UPUPW官網,查找下載鏈接。
2、點擊UPUPW下載,打開UPUPWAPACHE版下載頁找到適合自己的PHP系列下載最新版到本地硬碟。(32位、64位)。
3、下載完之後,選擇下載好的安裝程序,點擊進行安裝,進入安裝界面,選擇安裝目錄,默認C盤。
4、安裝好之後,回到桌面,找到安裝好的UPUPW的圖標,點擊啟動程序,進入主界面。
5、之後找打程序安裝的目錄,如D盤,然後找到D:UPUPWWebRootVhosts這個目錄,這個就還比本地伺服器的一個根目錄,運行的項目放在裡面就可以了。
6、返回UPUPW主界面,點擊加號,配置要運行的程序的信息。輸入網站名稱(給程序起名),對應好程序放置的路徑,還有自定義拜訪的域名,選擇php版本,最後提交保存。
7、回到主界面找到配置好的項目名稱,點擊要運行的項目名稱就可以直接訪問了。
(1)php獨立運行擴展閱讀
PHP在資料庫方面的豐富支持,它支持下列的資料庫或是數據文件:
Adabas、D、DBA、dBase、dbm、filePro、Informix、InterBase、mSQL、MicrosoftSQLServer、·MySQL、Solid、Sybase、Oracle、PostgreSQL
而在Internet上它也支持了相當多的通訊協議(protocol),包括了與電子郵件相關的IMAP,POP3;網管系統SNMP;網路新聞NNTP;帳號共用NIS;全球信息網HTTP及Apache伺服器;目錄協議LDAP以及其它網路的相關函數。
除此之外,用PHP寫出來的Web後端CGI程序,可以很輕易的移植到不同的操作系統上。例如,先以Linux架的網站,在系統負荷過高時,可以快速地將整個系統移到SUN工作站上,不用重新編譯CGI程序。
由於PHP是運行在伺服器端的腳本,可以運行在UNIX、LINUX、WINDOWS、MacOS、Android等平台。
『貳』 php運行機制是什麼
PHP是一種純解釋型在服務端執行的可以內嵌HTML的腳本語言,尤其適合開發Web應用程序。
請求一個 PHP 腳本時,PHP 會讀取該腳本,並將其編譯為 Zend 操作碼,這是要執行的代碼的一種二進製表示形式。隨後,此操作碼由 PHP 執行並丟棄。 PHP腳本在每次被解釋時進行初始化,在解釋完畢後終止運行。這種運行是互相獨立的,每一次請求都會創建一個單獨的進程或線程,來解釋相應的頁面文件。頁面創建的變數和其他對象,都只在當前的頁面內部可見,無法跨越頁面訪問。在終止運行後,頁面中申請的、沒有被代碼顯式釋放的外部資源,包括內存、資料庫連接、文件句柄、Socket連接等,都會被強行釋放。也就是說,PHP無法在語言級別上實現直接訪問跨越頁面的變數,也無法創建駐留內存的對象。
PHP這種獨特的工作模型的優勢在於,基本上解決了令人頭疼的資源泄漏問題。Web應用的特點是大量的、短時間的並發處理,對各種資源的申請和釋放工作非常頻繁,很容易導致泄漏甚至崩潰。PHP的運行機制決定它不存在常規的崩潰問題(頂多連接超時腳本停止執行),可以說PHP是較穩定的Web應用。但是,這種機制的缺點也非常明顯。最直接的後果是,PHP在語言級別無法實現跨頁面的緩沖機制。這種緩沖機制缺失造成的影響,可以分成兩個方面:
一是對象的緩沖。眾所周知,很多設計模式都依賴於對象的緩沖機制,創建和銷毀對象是很費時間的,因為創建一個對象要獲取內存資源或者其它更多資源,對於需要頻繁應付大量並發的服務端軟體更是如此。因此,對象緩沖的缺失,理論上會極大地降低速度。應盡可能減少創建和銷毀對象的次數來提高服務程序的效率,由於 PHP目前還不支持多線程,也就無法像Java一樣通過線程池調度來彌補這一缺陷;但可以使用第三方軟體如Memcachd來實現PHP的對象緩沖機制,達到減少對象創建和銷毀的時間來提高服務程序的效率。Memcachd將PHP編譯後的 操作碼緩存並在內存中保存這個操作碼,並在下一次調用該頁面時重用它,這會節省很多時間。比較常用的緩存還有有 eAccelerator,另一種流行的 eAccelerator 替代工具是 Alternative PHP Cache(APC)。
二是資料庫連接的緩沖。對於MySQL,PHP提供了一種內置的資料庫緩沖機制,即用mysql_pconnect()代替mysql_connect() 來打開資料庫而已。PHP會自動回收被廢棄的資料庫連接,以供重復使用。在實際應用中,這種持久性資料庫連接往往會導致資料庫連接的偽泄漏現象:在某個時間,並發的資料庫連接過多,超過了MySQL的最大連接數,從而導致新的進程無法連接資料庫。但是過一段時間,當並發數減少時,PHP會釋放掉一些連接,網站又會恢復正常。出現這種現象的原因是,當使用pconnect時,Apache 的httpd進程會不釋放connect,而當Apache的httpd進程數超過了mysql的最大連接數時,就會出現無法連接的情況。因此,需要小心地調整Apache和Mysql的配置,以使Apache的httpd進程數不會超出MySQL的最大連接數。筆者經過實踐,在PHP5和 Oracle10g的連接中,由於頻於資料庫連接,有時候還會出現資料庫丟失連接的情況(Oracle官方有針對PHP的增強包,不知是否可以解決此問題,筆者未試)。
PHP的工作模型即是缺點也是優勢,從本質上說,這就是PHP 的獨特之處。
若以FastCGI模式運行php,解析php.ini、載入全部擴展並重初始化全部數據結構這些都只在進程啟動時發生一次。一個額外的好處是,持續資料庫連接可以工作。Nginx+PHP(FastCGI)是個不錯的選擇。