搜尋
首頁後端開發php教程關於PHP安裝套件的下載問題

現在PHP官網上下載PHP安裝包都有VC11或VC9的字樣,這是什麼意義,我們該下載哪種安裝包比較好呢?其實PHP官網給了答案:
        VC6版本是使用Visual Studio 6編譯器編譯的,如果你的PHP是用Apache來架設的,那你就選擇VC6版本。 (現在PHP已經沒有VC6了)。
        VC9意思是這個版本PHP是用VisualStudio2008編譯的,VC11則是用VisualStudio2012編譯的。這表示如果你下載的是VC9版的,就需要先安VisualC++RedistributableforVisualStudio2008SP1,如果你下載的是VC11版本的,就需要先安VisualC++RedistributableforVisualStudio2012.
  約,如果是Windows的在這裡下:http://windows.php.net/download/

#        作業系統是32位元還是64位元?如果是32位元的,就選擇有「x86」的版本,如果是64位元的,就選擇有「x64」的版本。然後看WEB伺服器是什麼?如果是IIS系列,就選擇有「Non Thread Safe」的版本,如果是Apache httpd系列,就選擇有「Thread Safe」的版本。如果是Apache httpd還要看這個二進位版本是怎麼編譯的,有三種編譯類型,分別是:VC6、VC9、VC11(分別代表Visual C++ 6、Visual C++ 2008、Visual C++ 2012)。這裡就有麻煩了:PHP官方的最新版本5.5已經用VC11編譯,5.4是用VC9編譯的。可是Apache httpd的最新版本呢,至今還是用VC6編譯。這意味著一個驚人的事實:Apache httpd的官方版本和PHP的官方版本竟然是無法相容的!那現有的Windows下的Apache+PHP是怎麼搞的呢?可以自己用VC11編譯Apache httpd,但這太折騰了,PHP官方建議下載第三方打包好的Apache httpd版本,推薦了這個網站:http://www.apachelounge.com/download/,需要說明一點:這個VC11不支援XP,如果你跟我一樣有XP懷舊症,最高只能升級到5.4.24,5.5是用VC11編譯的,而VC11不支援XP和2003。

      如果Linux系的在這裡下載PHP的原始碼:http://cn2.php.net/downloads.php

     與上面Windows版不同的是,這裡下載到的不能直接用,只是PHP的原始碼,要安裝需要自己編譯,要編譯就需要安裝gcc、make等一堆編譯軟體。看到文件裡說./configure、make、make install,針對的就是PHP的源碼版本而言。

     自己編譯php就更麻煩了,依賴的函式庫一大堆,等著人掉進去的坑也有一大堆,我將在另一篇文章裡說。如果嫌麻煩,可以找已經編譯好的版本,具體的說就是各發行版的官方的軟體庫。以下以流行的ubuntu系和centos系為例分別說明;

deb套件管理式(ubuntu、Debian)

    用apt-cache search php指令可以搜出很多結果,我們需要是“php5”,完整的命令是:apt-get install php5
    這顯然不是永遠適用的,因為命令中有版本號5,未來PHP6是什麼情況誰也不知道。
    如果想要在shell中安裝一個命令列的php引擎,就安裝這個套件
    apt-getinstall php5-cli

RPM套件管理(Fedora、RedHat、SUSE、CentOS)
    yuminstall php
    如果是php指令列,就安裝yuminstall php-cli

如何選擇Thread Safe和Non ThreadSafe版本?
    Windows版的PHP從版本5.2.1開始有ThreadSafe(線程安全)和None Thread Safe(NTS,非線程安全)之分,這兩者不同在於何處?到底該用哪一種?這裡做一個簡單的介紹。

  從2000年10月20日發布的第一個Windows版的PHP3.0.17開始的都是線程安全的版本,這是由於與Linux/Unix系統是採用多進程的工作方式不同的是Windows系統是採用多執行緒的工作方式。如果在IIS下以CGI方式運行PHP會非常慢,這是由於CGI模式是建立在多進程的基礎之上的,而不是多執行緒。一般我們會把PHP配置成以ISAPI的方式來運行,ISAPI是多執行緒的方式,這樣就快多了。但存在一個問題,許多常用的PHP擴充是以Linux/Unix的多進程思想來開發的,這些擴充在ISAPI的方式運作時就會出錯搞垮IIS。因此在IIS下CGI模式才是 PHP運作最安全的方式,但CGI模式對於每個HTTP請求都需要重新載入和卸載整個PHP環境,其消耗是巨大的。

  為了兼顧IIS下PHP的效率與安全,微軟給了FastCGI的解決方案。 FastCGI可以讓PHP的程序重複利用而不是每一個新的請求就重開一個進程。同時FastCGI也可以允許幾個進程同時執行。這樣既解決了CGI進程模式消耗太大的問題,又利用了CGI進程模式不存在執行緒安全性問題的優勢。 

     先從字面意思上理解,Thread Safe是執行緒安全,執行時會進行執行緒(Thread)安全檢查,以防止新要求就啟動新執行緒的CGI執行方式而耗盡系統資源。 Non Thread Safe是非線程安全,在執行時不進行線程(Thread)安全檢查。

  因此,如果是使用ISAPI的方式來運行PHP就必須用ThreadSafe(線程安全)的版本;而用FastCGI模式運行PHP的話就沒有必要用線程安全檢查了,用None Thread Safe(NTS ,非線程安全)的版本能夠更好的提高效率。


    再來看PHP的兩種執行方式:ISAPI和FastCGI。

    ISAPI執行方式是以DLL動態庫的形式使用,可以在被用戶請求後執行,在處理完一個用戶請求後不會馬上消失,所以需要進行線程安全檢查,這樣來提高程序的執行效率,所以如果是以ISAPI來執行PHP,建議選擇Thread Safe版本;

    而FastCGI執行方式是以單一線程來執行操作,所以不需要進行線程的安全檢查,除去線程安全檢查的防護反而可以提高執行效率,所以,如果是以FastCGI來執行PHP,建議選擇Non Thread Safe版本。

以上是關於PHP安裝套件的下載問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
簡單地說明PHP會話的概念。簡單地說明PHP會話的概念。Apr 26, 2025 am 12:09 AM

phpsessionstrackuserdataacrossmultiplepagerequestsusingauniqueIdStoredInAcookie.here'showtomanageThemeffectionaly:1)startAsessionWithSessionWwithSession_start()和stordoredAtain $ _session.2)

您如何循環中存儲在PHP會話中的所有值?您如何循環中存儲在PHP會話中的所有值?Apr 26, 2025 am 12:06 AM

在PHP中,遍歷會話數據可以通過以下步驟實現:1.使用session_start()啟動會話。 2.通過foreach循環遍歷$_SESSION數組中的所有鍵值對。 3.處理複雜數據結構時,使用is_array()或is_object()函數,並用print_r()輸出詳細信息。 4.優化遍歷時,可採用分頁處理,避免一次性處理大量數據。這將幫助你在實際項目中更有效地管理和使用PHP會話數據。

說明如何使用會話進行用戶身份驗證。說明如何使用會話進行用戶身份驗證。Apr 26, 2025 am 12:04 AM

會話通過服務器端的狀態管理機制實現用戶認證。 1)會話創建並生成唯一ID,2)ID通過cookies傳遞,3)服務器存儲並通過ID訪問會話數據,4)實現用戶認證和狀態管理,提升應用安全性和用戶體驗。

舉一個如何在PHP會話中存儲用戶名的示例。舉一個如何在PHP會話中存儲用戶名的示例。Apr 26, 2025 am 12:03 AM

Tostoreauser'snameinaPHPsession,startthesessionwithsession_start(),thenassignthenameto$_SESSION['username'].1)Usesession_start()toinitializethesession.2)Assigntheuser'snameto$_SESSION['username'].Thisallowsyoutoaccessthenameacrossmultiplepages,enhanc

哪些常見問題會導致PHP會話失敗?哪些常見問題會導致PHP會話失敗?Apr 25, 2025 am 12:16 AM

PHPSession失效的原因包括配置錯誤、Cookie問題和Session過期。 1.配置錯誤:檢查並設置正確的session.save_path。 2.Cookie問題:確保Cookie設置正確。 3.Session過期:調整session.gc_maxlifetime值以延長會話時間。

您如何在PHP中調試與會話相關的問題?您如何在PHP中調試與會話相關的問題?Apr 25, 2025 am 12:12 AM

在PHP中調試會話問題的方法包括:1.檢查會話是否正確啟動;2.驗證會話ID的傳遞;3.檢查會話數據的存儲和讀取;4.查看服務器配置。通過輸出會話ID和數據、查看會話文件內容等方法,可以有效診斷和解決會話相關的問題。

如果session_start()被多次調用會發生什麼?如果session_start()被多次調用會發生什麼?Apr 25, 2025 am 12:06 AM

多次調用session_start()會導致警告信息和可能的數據覆蓋。 1)PHP會發出警告,提示session已啟動。 2)可能導致session數據意外覆蓋。 3)使用session_status()檢查session狀態,避免重複調用。

您如何在PHP中配置會話壽命?您如何在PHP中配置會話壽命?Apr 25, 2025 am 12:05 AM

在PHP中配置會話生命週期可以通過設置session.gc_maxlifetime和session.cookie_lifetime來實現。 1)session.gc_maxlifetime控制服務器端會話數據的存活時間,2)session.cookie_lifetime控制客戶端cookie的生命週期,設置為0時cookie在瀏覽器關閉時過期。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具