本文由秀依林楓提供友情贊助,首發於爛泥行天下。
apache對php的支援是透過apache的mod_php5模組來支援的,這點與nginx不同。 nginx是透過第三方的fastcgi處理器才可以對php進行解析,有關nginx與php集成,請看《爛泥:php5.6源碼安裝及php-fpm配置與nginx集成》。
如果原始碼編譯安裝php的話,需要在編譯時指定--with-apxs2=/usr/local/apache2/bin/apxs表示告訴編譯器透過apache的mod_php5模組來提供對php的解析。
同時php安裝的最後一步make install時,我們會看到將動態連結庫libphp5.so拷貝到apache2的安裝目錄的modules目錄下,並且還需要在httpd.conf設定檔中加入LoadModule語句來動態將libphp5.so模組載入進來,從而實作Apache對php的支援。
php與apache整合需要以下幾個步驟:
1、安裝libiconv庫
2、php源碼安裝測試php
一、安裝libiconv庫
libiconv庫為需要做轉換的應用程式提供了一個iconv命令,以實現一個字元編碼到另一個字元編碼的轉換,例如它可以將UTF8編碼成GB18030編碼,反過來也行。
php與apache整合時一定要安裝libiconv函式庫,否則在make時系統會報錯。報錯資訊如下:
make: *** [sapi/cli/php] Error 1
/usr/bin/ld: cannot find -liconv
🜎make: *** [sapi/cli/php] Error 1
現在開始正式安裝lib帶ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
解壓
安裝libiconv庫,首先查看安裝幫助資訊。如下:
./configure --help
透過上圖的幫助,我們可以看到libiconvusr/local。現在開始安裝libiconv庫,如下:
./configure --prefix=/usr/local
make && make install
make && make install
libiconv庫安裝完畢後,建議把/usr/local/lib庫加入到/etc/ld.so.conf檔案中,然後使用/sbin/ldconfig使其生效。如下:
/sbin/ldconfig
/sbin/ldconfig
在安裝php執行make install,系統就會報錯。報錯資訊如下:
/root/php-5.6.2/sapi/cli/php: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory🜎
有關php源碼安裝可以參考《
爛泥:php5.6源碼安裝及php-fpm配置與nginx整合》文章, 下載並編譯php指令如下: mirrors.sohu.com/php/php-5.6.2.tar.gz
./configure --enable-fpm --enable-mbstring --with-mysql=/usr/local/mysql --with- iconv-dir=/usr/local --with-apxs2=/usr/local/apache2/bin/apxs
開啟php的fastcgi功能,即開啟php-fpm功能。
--with-mysql=/usr/local/mysql是啟用php支援mysql的功能,/usr/local/mysql是mysql資料庫的安裝路徑。
--enable-mbstring表示啟用mbstring模組mbstring模組的主要作用在於偵測和轉換編碼,提供對應的多位元組操作的字串函數。目前php內部的編碼只支援ISO-8859-*、EUC-JP、UTF-8,其他的編碼的語言是沒辦法在php程式上正確顯示的,所以我們要啟用mbstring模組。
--with-iconv-dir=/usr/local指定php存放libiconv庫的位置。
--with-apxs2=/usr/local/apache2/bin/apxs指定php找出apache的位置。
編譯完畢後,我們再來make。在make時,我們注意要加上-liconv參數。如果不加上-liconv參數,系統在make編譯會報錯。報錯資訊如下:
Generating phar.php
php-5.3.16/sapi/cli/php: error while loading shared libraries: libiconv.p.2: can not files not notecto: libiconv.. directory
使用指令如下:
make ZEND_EXTRA_LIBS='-liconv'
我們也可以透過修改Makefilev.如下:
vi Makefile
透過上圖,我們可以很明顯的看到apache設定檔httpd中啟用php支持,同時也把libphp5.so檔案複製到apache的模組目錄下。
三、設定apache使其支援php
php安裝完畢後,我們就可以透過修改apache的設定檔httpd.conf來使其支援php。
我們只需要在httpd.conf檔中加入以下兩行程式碼:
LoadModule php5_module modules/libcation5.so
,其中LoadModule php5_module modules/libphp5.so行,我們查看httpd.conf檔時會發現該行已經存在。那是因為安裝php時,加的。現在我們只需要新增AddType application/x-httpd-php .php行。vi /usr/local/apache2/conf/httpd.conf
除此之外,我們還要修改
除此之外,我們還要修改
內容如下:
echo "">/usr/local/apache2/htdocs/index.php
cat /usr/local/apache2/htdocs/index.php
命令:
/etc/init.d/httpd graceful
注意該指令可以優雅的重啟apache。
打開站點,如下:
以上就介紹了爛泥:php5.6源碼安裝與apache集成,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

PHP在現代編程中仍然是一個強大且廣泛使用的工具,尤其在web開發領域。 1)PHP易用且與數據庫集成無縫,是許多開發者的首選。 2)它支持動態內容生成和麵向對象編程,適合快速創建和維護網站。 3)PHP的性能可以通過緩存和優化數據庫查詢來提升,其廣泛的社區和豐富生態系統使其在當今技術棧中仍具重要地位。

在PHP中,弱引用是通過WeakReference類實現的,不會阻止垃圾回收器回收對象。弱引用適用於緩存系統和事件監聽器等場景,需注意其不能保證對象存活,且垃圾回收可能延遲。

\_\_invoke方法允許對象像函數一樣被調用。 1.定義\_\_invoke方法使對象可被調用。 2.使用$obj(...)語法時,PHP會執行\_\_invoke方法。 3.適用於日誌記錄和計算器等場景,提高代碼靈活性和可讀性。

Fibers在PHP8.1中引入,提升了並發處理能力。 1)Fibers是一種輕量級的並發模型,類似於協程。 2)它們允許開發者手動控制任務的執行流,適合處理I/O密集型任務。 3)使用Fibers可以編寫更高效、響應性更強的代碼。

PHP社區提供了豐富的資源和支持,幫助開發者成長。 1)資源包括官方文檔、教程、博客和開源項目如Laravel和Symfony。 2)支持可以通過StackOverflow、Reddit和Slack頻道獲得。 3)開發動態可以通過關注RFC了解。 4)融入社區可以通過積極參與、貢獻代碼和學習分享來實現。

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

PHP不是在消亡,而是在不斷適應和進化。 1)PHP從1994年起經歷多次版本迭代,適應新技術趨勢。 2)目前廣泛應用於電子商務、內容管理系統等領域。 3)PHP8引入JIT編譯器等功能,提升性能和現代化。 4)使用OPcache和遵循PSR-12標準可優化性能和代碼質量。

PHP的未來將通過適應新技術趨勢和引入創新特性來實現:1)適應云計算、容器化和微服務架構,支持Docker和Kubernetes;2)引入JIT編譯器和枚舉類型,提升性能和數據處理效率;3)持續優化性能和推廣最佳實踐。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

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

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3 Linux新版
SublimeText3 Linux最新版