搜尋
首頁後端開發php教程如何從源安裝PHP擴展

如何從源安裝PHP擴展

有時,在安裝PHP之前,很難知道您需要哪些PHP擴展。如果您以後需要添加擴展名,則可能會很幸運,並且擴展程序可能位於所使用的操作系統的存儲庫中。這可能只是一個簡單的sudo apt-get安裝php5-intl。但是,在其他情況下,您可能需要從Source安裝它 - Phalcon就是一種情況,但是通過引入供應商支持,快捷方式和預編寫的說明,該過程使您的操作系統非常簡單。但是,如果其他擴展程序沒有這樣的東西?

> 在本教程中,我們將在Linux Systems上安裝一些自定義擴展(OS X - 過程幾乎相同)。該過程與我們已經在Nitrous.io上所做的非常相似,但適用於本地環境 - 更具體地說,是Laravel Homestead。您可以輕鬆地從本教程得出安裝說明,並將其應用於其他發行版。

鑰匙要點

>從源安裝PHP擴展名需要PHP開發工具和計算機上安裝的編譯器,以及PHP源代碼和擴展的源代碼。
    >從源安裝PHP擴展的過程涉及多個步驟:下載源代碼,準備使用PHPIZE編譯的擴展程序文件夾,配置編譯環境,將源編譯到.SO文件中,然後將此文件移動到該文件中當前的PHP安裝的擴展文件夾。
  • 安裝後,需要通過將其添加到php.ini文件中或為文件夾中的每個擴展程序創建一個單獨的INI文件來啟用PHP擴展,該文件夾加載了Php.ini後自動包含。
  • 要刪除擴展,您可以使用php5dismod工具,手動刪除符號鏈接或從php.ini文件中刪除啟用行。
  • 啟動VM
  • 如果您還沒有,請閱讀上面鏈接的宅基地帖子,然後啟動並運行。運行新的Homestead盒子後,您立即應該能夠執行此操作:
  • >

>這很好,這是因為默認安裝的文件夾實際上還不包含任何文件。現在,vagrant ssh進入VM,並執行以下命令:

>

如何從源安裝PHP擴展這將在默認設置為homestead的路徑中創建一個有效的PHP信息文件。刷新URL現在將產生一個phpinfo屏幕:

<span>cd Code
</span><span>git clone https://github.com/Swader/publicinfo</span>

準備環境

要從源構建擴展,我們需要安裝在計算機上的PHP開發工具,以及可以生成擴展文件的編譯器。以下是您在各種操作系統上安裝這些先決條件的方式:如何從源安裝PHP擴展

ubuntu

<span>cd Code
</span><span>git clone https://github.com/Swader/publicinfo</span>

fedora

<span>sudo apt-get install php5-dev php5-mysql gcc libpcre3-dev</span>

rhel

<span>sudo yum install php-devel php-mysqlnd gcc libtool</span>

> suse

<span>sudo yum install php-devel php-mysql gcc libtool</span>

如果您使用的是最新的宅基地,則所有這些工具都將為您安裝。準備所有準備的東西,讓我們開始安裝擴展名。

>安裝擴展

>您可以安裝兩種類型的擴展:與PHP捆綁但默認未安裝,第三方擴展。諸如Phalcon之類的第三方擴展通常通過提供快捷方式使安裝過程變得更加容易,因為它們不必遵守某些傳統捆綁的PHP擴展。

首先,讓我們進入VM上的主文件夾:CD〜。在那裡,製作下載文件夾,然後將CD添加到其中。安裝捆綁的擴展程序時,您需要在計算機上使用PHP的源代碼,最好是與當前版本相匹配。 Homestead版本的使用率為5.5.12,所以我將下載一個:>

>我正在使用上面的比利時鏡子,隨意使用下載檔案中的一個或任何其他鏡子。
<span>yast2 -i php5-pear php5-devel php5-mysql gcc</span>

>要查看所有捆綁擴展的源,請進入未架構的PHP源代碼文件夾中的EXT文件夾,並使用LS。

安裝捆綁的擴展如何從源安裝PHP擴展

首先,如果您還沒有安裝它,我們將安裝PHP-INTL擴展程序。如果這樣做,那很好 - 您將在下面看到的安裝過程對於每個捆綁的PHP擴展程序都是相同的。 INTL擴展是用於國際化的 - 如果您有興趣,請在此處閱讀更多。

>

>看到INTL擴展名需要ICU庫作為先決條件(如需求中所述),讓我們先安裝。

在其他分佈下,安裝說明可能會有所不同。最好是參考ICU網站或此步驟的個人發行文檔。 >

安裝了ICU後,請在仍在Ext文件夾中的同時進行以下操作:>
<span>wget http://be2.php.net/distributions/php-5.5.12.tar.bz2
</span><span>tar xvjf php-5.5.12.tar.bz2
</span><span>cd php-5.5.12</span>

讓我們解釋一下發生的事情。

    phpize準備擴展名的文件夾以進行補充。它允許您通過創建配置文件來執行後續命令,並基本上使擴展程序的文件夾“思考”它是PHP本身。實際上,PHPize之後的過程與您從源中安裝PHP時要做的事情相同 - 僅在這種情況下,只需編譯PHP的片段並準備與已編譯和安裝的PHP一起使用。
  • ./配置-enable-intl配置編譯環境。它準備了編譯器將需要製作Intl.so文件所需的所有內容。即使我們在INTL文件夾中,啟用式標誌也是必要的,因為該文件夾有效地認為它是
  • > php,並且我們需要幫助它實現這種幻覺。該命令告訴它:“好,您是PHP的源代碼。現在編譯並使用INTL擴展名安裝。
  • > make將把源彙編為intl.o,將文件放在您當前所在的文件夾中,在模塊子文件夾下方。 sudo make install會將此文件移至當前PHP安裝的擴展文件夾中。 > >我們現在需要做的就是通過讓php.ini消耗它來啟用擴展。我們稍後會這樣做,讓我們首先編譯第三方擴展。
  • >
  • 安裝第三方擴展
  • 我們將安裝Mongo作為第三方擴展。 Mongo有二進制分佈,使安裝變得更簡單,但為了教育,讓我們手動進行。我們假設您已經安裝了實際的Mongo,因此僅關注PHP擴展名。如果您沒有安裝Mongo,請參閱其安裝文檔。
  • >

>這已經構建了我們的mongo.so文件,並將其放入PHP安裝的擴展文件夾中。我們將在下一部分中啟用它。

啟用和測試
<span>cd Code
</span><span>git clone https://github.com/Swader/publicinfo</span>

查看我們的php擴展文件夾中是否確實在列出的。 如何從源安裝PHP擴展

如您所見,在那裡,它們在鮮綠色中突出顯示。 為了使它們啟用,我們需要告訴php.ini。有幾種方法可以做到這一點:

  1. >您可以將行擴展線= mongo.so。這起作用,在大多數情況下是一種完全有效的方法。
  2. >
  3. >您可以為每個中的每個文件創建一個單獨的INI文件,將它們放入加載php.ini後自動包含的文件夾中,並以這種方式維護php.ini的分離和隔離。這種方法更健康,儘管很難實現。
  4. >
  5. 您可以組合2)和用於啟用PHP mod的默認工具。宅基地使用這種方法,我們也會。
  6. >
<span>cd Code
</span><span>git clone https://github.com/Swader/publicinfo</span>

此文件夾是所有此類INI文件的存儲庫。在此處創建兩個新文件:

<span>sudo apt-get install php5-dev php5-mysql gcc libpcre3-dev</span>

這些命令創建了兩個新的INI文件,每個文件都用於我們以前構建的擴展之一。由於它們現在在mods-ovabable文件夾中,我們可以使用已經可用的php5enmod(hart for php enable mod)命令行工具。 >

<span>sudo yum install php-devel php-mysqlnd gcc libtool</span>
>注意:如果您沒有PHP5ENMOD工具,則將INI文件鏈接到各種PHP Runtimes的Conf.d文件夾中,將有能力:>

有四個條目的原因是我們具有PHP的命令行版本和PHP的FPM版本。每個人都使用自己的php.ini文件,每個文件都會加載自己的conf.d文件夾以進行擴展 - 因此,如果我們希望全方位的擴展名可用。僅當您沒有php5enmod工具時,才使用此方法。
<span>sudo yum install php-devel php-mysql gcc libtool</span>
>

最後,讓我們重新啟動nginx和php-fpm加載這些更改。

查看我們是否已安裝了它們,請從之前刷新Phpinfo屏幕並分別搜索Mongo和Intl。

>
<span>yast2 -i php5-pear php5-devel php5-mysql gcc</span>

成功! 如何從源安裝PHP擴展

刪除擴展

要刪除擴展,除非您在空間上確實很低,否則無需刪除任何實際文件。您可以通過三種方式進行:

如果您有可用的工具,請運行php5dismod。這與上述PHP5ENMOD工具相反。 .SO文件將保留在適當的位置,並且INI文件將保留在mods-ovail中,它們只是不會加載,因為它們的符號鏈接將從fpm和cli conf.d文件夾中刪除。

>手動刪除符號鏈接。例如。 sudo rm /etc/php5/cli/conf.d/mongo.ini

    >如果將擴展名直接放入php.ini文件中,從php.ini文件中刪除這些行,或者更好,請對它們進行評論,以便在您改變主意的情況下可以進一步使用。
  1. 結論
  2. 如您所見,即使沒有精確的說明,從源安裝擴展也非常簡單,即使擴展名不受操作系統的官方存儲庫的支持。下次您需要在 *NIX系統上的PHP安裝中添加擴展名(此教程也適用於OS X),請參閱此帖子以獲取更新。

    請在下面留下您的反饋,讓我知道您是否對特定的擴展程序感到困惑,並希望幫助安裝它。 >

    經常詢問的問題(常見問題解答)有關從源

    安裝PHP擴展的問題

    >從源安裝PHP擴展的先決條件是什麼?首先,您需要在系統上安裝PHP。您還需要設置PHP開發環境,其中包括編譯器和製造商等工具。此外,您需要使用PHP源代碼,因為您將直接從此代碼中構建擴展名。最後,您需要具有擴展名的源代碼。通常可以從擴展名的官方網站或諸如PECL等存儲庫中下載。

    >

    >我如何驗證是否正確安裝了PHP擴展名?

    >

    >

    >它通過使用phpinfo()函數安裝。此功能提供了有關您的PHP安裝的大量信息,包括已安裝的擴展名列表。要使用它,請在Web服務器的文檔root中創建一個新的PHP文件,將調用添加到phpinfo(),然後在Web瀏覽器中查看此文件。已安裝的擴展名在“ PHP Core”部分中列出。

    >我可以在Windows系統上安裝PHP擴展嗎?但是,與Unix樣系統相比,該過程略有不同。您通常會下載預編譯的DLL文件並將其添加到PHP安裝中,而不是從源中編譯擴展名。 php.net網站提供了有關如何執行此操作的詳細說明。

    >

    如果在安裝過程中遇到錯誤,該怎麼辦?

    如果您在安裝過程中遇到錯誤,則該怎麼辦步驟是仔細閱讀錯誤消息。它通常包含有關出了什麼問題的線索。常見問題包括缺失依賴項,不正確的配置選項以及PHP源代碼問題。如果您無法自己解決問題,請考慮向PHP社區尋求幫助。您可以在其中要求提供幫助的許多論壇和郵件列表。

    我如何更新PHP擴展名?

    >更新PHP擴展程序通常涉及下載擴展程序的源代碼和源代碼的最新版本和然後重複安裝過程。但是,確切的步驟可以根據擴展而有所不同。最好檢查擴展程序的官方文檔中的特定更新說明。

    我可以一次安裝多個PHP擴展名嗎?這可以通過在configure命令中指定多個擴展名來完成。但是,請記住,每個擴展程序可能具有自己的一組依賴項和配置選項。

    >如何卸載PHP擴展名?

    卸載PHP擴展程序涉及從php.ini文件中刪除擴展名的配置,然後重新啟動Web服務器。如果將擴展名安裝為共享模塊,則您也可能需要刪除模塊的.so或.dll文件。

    >什麼是pecl存儲庫?

    > pecl存儲庫是一個集合以源代碼分配的PHP擴展名。可以使用PECL命令安裝這些擴展名,該命令可以自動下載,編譯和安裝擴展名的過程。

    >

    >我可以安裝php擴展程序而無需root訪問嗎?

    是的,可以安裝無根訪問的PHP擴展。這可以通過在主目錄中安裝PHP然後在此處安裝擴展名來完成。但是,這種方法需要更多的技術知識,並且可能不適合所有用戶。

    >

    有哪些常見的PHP擴展名?它們做了什麼?

    >

    有許多可用的PHP擴展名PHP語言的其他功能。一些常見的擴展名包括用於與MySQL數據庫進行交互的mysqli,用於創建和操縱圖像文件的GD以及用於製作HTTP請求的捲曲。 >

以上是如何從源安裝PHP擴展的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
PHP:服務器端腳本語言的簡介PHP:服務器端腳本語言的簡介Apr 16, 2025 am 12:18 AM

PHP是一種服務器端腳本語言,用於動態網頁開發和服務器端應用程序。 1.PHP是一種解釋型語言,無需編譯,適合快速開發。 2.PHP代碼嵌入HTML中,易於網頁開發。 3.PHP處理服務器端邏輯,生成HTML輸出,支持用戶交互和數據處理。 4.PHP可與數據庫交互,處理表單提交,執行服務器端任務。

PHP和網絡:探索其長期影響PHP和網絡:探索其長期影響Apr 16, 2025 am 12:17 AM

PHP在過去幾十年中塑造了網絡,並將繼續在Web開發中扮演重要角色。 1)PHP起源於1994年,因其易用性和與MySQL的無縫集成成為開發者首選。 2)其核心功能包括生成動態內容和與數據庫的集成,使得網站能夠實時更新和個性化展示。 3)PHP的廣泛應用和生態系統推動了其長期影響,但也面臨版本更新和安全性挑戰。 4)近年來的性能改進,如PHP7的發布,使其能與現代語言競爭。 5)未來,PHP需應對容器化、微服務等新挑戰,但其靈活性和活躍社區使其具備適應能力。

為什麼要使用PHP?解釋的優點和好處為什麼要使用PHP?解釋的優點和好處Apr 16, 2025 am 12:16 AM

PHP的核心優勢包括易於學習、強大的web開發支持、豐富的庫和框架、高性能和可擴展性、跨平台兼容性以及成本效益高。 1)易於學習和使用,適合初學者;2)與web服務器集成好,支持多種數據庫;3)擁有如Laravel等強大框架;4)通過優化可實現高性能;5)支持多種操作系統;6)開源,降低開發成本。

揭穿神話:PHP真的是一種死語嗎?揭穿神話:PHP真的是一種死語嗎?Apr 16, 2025 am 12:15 AM

PHP沒有死。 1)PHP社區積極解決性能和安全問題,PHP7.x提升了性能。 2)PHP適合現代Web開發,廣泛用於大型網站。 3)PHP易學且服務器表現出色,但類型系統不如靜態語言嚴格。 4)PHP在內容管理和電商領域仍重要,生態系統不斷進化。 5)通過OPcache和APC等優化性能,使用OOP和設計模式提升代碼質量。

PHP與Python辯論:哪個更好?PHP與Python辯論:哪個更好?Apr 16, 2025 am 12:03 AM

PHP和Python各有優劣,選擇取決於項目需求。 1)PHP適合Web開發,易學,社區資源豐富,但語法不夠現代,性能和安全性需注意。 2)Python適用於數據科學和機器學習,語法簡潔,易學,但執行速度和內存管理有瓶頸。

PHP的目的:構建動態網站PHP的目的:構建動態網站Apr 15, 2025 am 12:18 AM

PHP用於構建動態網站,其核心功能包括:1.生成動態內容,通過與數據庫對接實時生成網頁;2.處理用戶交互和表單提交,驗證輸入並響應操作;3.管理會話和用戶認證,提供個性化體驗;4.優化性能和遵循最佳實踐,提升網站效率和安全性。

PHP:處理數據庫和服務器端邏輯PHP:處理數據庫和服務器端邏輯Apr 15, 2025 am 12:15 AM

PHP在數據庫操作和服務器端邏輯處理中使用MySQLi和PDO擴展進行數據庫交互,並通過會話管理等功能處理服務器端邏輯。 1)使用MySQLi或PDO連接數據庫,執行SQL查詢。 2)通過會話管理等功能處理HTTP請求和用戶狀態。 3)使用事務確保數據庫操作的原子性。 4)防止SQL注入,使用異常處理和關閉連接來調試。 5)通過索引和緩存優化性能,編寫可讀性高的代碼並進行錯誤處理。

您如何防止PHP中的SQL注入? (準備的陳述,PDO)您如何防止PHP中的SQL注入? (準備的陳述,PDO)Apr 15, 2025 am 12:15 AM

在PHP中使用預處理語句和PDO可以有效防範SQL注入攻擊。 1)使用PDO連接數據庫並設置錯誤模式。 2)通過prepare方法創建預處理語句,使用佔位符和execute方法傳遞數據。 3)處理查詢結果並確保代碼的安全性和性能。

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脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

mPDF

mPDF

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

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。