目錄
ubuntu
fedora
rhel
> suse
>安裝擴展
>
>它通過使用phpinfo()函數安裝。此功能提供了有關您的PHP安裝的大量信息,包括已安裝的擴展名列表。要使用它,請在Web服務器的文檔root中創建一個新的PHP文件,將調用添加到phpinfo(),然後在Web瀏覽器中查看此文件。已安裝的擴展名在“ PHP Core”部分中列出。
>如何卸載PHP擴展名?
>什麼是pecl存儲庫?
首頁 後端開發 php教程 如何從源安裝PHP擴展

如何從源安裝PHP擴展

Feb 20, 2025 am 09:38 AM

如何從源安裝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

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

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

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1602
29
PHP教程
1504
276
PHP變量範圍解釋了 PHP變量範圍解釋了 Jul 17, 2025 am 04:16 AM

PHP變量作用域常見問題及解決方法包括:1.函數內部無法訪問全局變量,需使用global關鍵字或參數傳入;2.靜態變量用static聲明,只初始化一次並在多次調用間保持值;3.超全局變量如$_GET、$_POST可在任何作用域直接使用,但需注意安全過濾;4.匿名函數需通過use關鍵字引入父作用域變量,修改外部變量則需傳遞引用。掌握這些規則有助於避免錯誤並提升代碼穩定性。

在PHP中評論代碼 在PHP中評論代碼 Jul 18, 2025 am 04:57 AM

PHP註釋代碼常用方法有三種:1.單行註釋用//或#屏蔽一行代碼,推薦使用//;2.多行註釋用/.../包裹代碼塊,不可嵌套但可跨行;3.組合技巧註釋如用/if(){}/控制邏輯塊,或配合編輯器快捷鍵提升效率,使用時需注意閉合符號和避免嵌套。

撰寫PHP評論的提示 撰寫PHP評論的提示 Jul 18, 2025 am 04:51 AM

寫好PHP註釋的關鍵在於明確目的與規範,註釋應解釋“為什麼”而非“做了什麼”,避免冗餘或過於簡單。 1.使用統一格式,如docblock(/*/)用於類、方法說明,提升可讀性與工具兼容性;2.強調邏輯背後的原因,如說明為何需手動輸出JS跳轉;3.在復雜代碼前添加總覽性說明,分步驟描述流程,幫助理解整體思路;4.合理使用TODO和FIXME標記待辦事項與問題,便於後續追踪與協作。好的註釋能降低溝通成本,提升代碼維護效率。

發電機如何在PHP中工作? 發電機如何在PHP中工作? Jul 11, 2025 am 03:12 AM

AgeneratorinPHPisamemory-efficientwaytoiterateoverlargedatasetsbyyieldingvaluesoneatatimeinsteadofreturningthemallatonce.1.Generatorsusetheyieldkeywordtoproducevaluesondemand,reducingmemoryusage.2.Theyareusefulforhandlingbigloops,readinglargefiles,or

學習PHP:初學者指南 學習PHP:初學者指南 Jul 18, 2025 am 04:54 AM

易於效率,啟動啟動tingupalocalserverenverenvirestoolslikexamppandacodeeditorlikevscode.1)installxamppforapache,mysql,andphp.2)uscodeeditorforsyntaxssupport.3)

快速PHP安裝教程 快速PHP安裝教程 Jul 18, 2025 am 04:52 AM

ToinstallPHPquickly,useXAMPPonWindowsorHomebrewonmacOS.1.OnWindows,downloadandinstallXAMPP,selectcomponents,startApache,andplacefilesinhtdocs.2.Alternatively,manuallyinstallPHPfromphp.netandsetupaserverlikeApache.3.OnmacOS,installHomebrew,thenrun'bre

如何通過php中的索引訪問字符串中的字符 如何通過php中的索引訪問字符串中的字符 Jul 12, 2025 am 03:15 AM

在PHP中獲取字符串特定索引字符可用方括號或花括號,但推薦方括號;索引從0開始,超出範圍訪問返回空值,不可賦值;處理多字節字符需用mb_substr。例如:$str="hello";echo$str[0];輸出h;而中文等字符需用mb_substr($str,1,1)獲取正確結果;實際應用中循環訪問前應檢查字符串長度,動態字符串需驗證有效性,多語言項目建議統一使用多字節安全函數。

php獲得字符串的第一個N字符 php獲得字符串的第一個N字符 Jul 11, 2025 am 03:17 AM

在PHP中取字符串前N個字符可用substr()或mb_substr(),具體步驟如下:1.使用substr($string,0,N)截取前N個字符,適用於ASCII字符且簡單高效;2.處理多字節字符(如中文)時應使用mb_substr($string,0,N,'UTF-8'),並確保啟用mbstring擴展;3.若字符串含HTML或空白字符,應先用strip_tags()去除標籤、trim()清理空格,再截取以保證結果乾淨。

See all articles