程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 在Linux環境下給php添加mbstring擴展,linuxmbstring

在Linux環境下給php添加mbstring擴展,linuxmbstring

編輯:關於PHP編程

在Linux環境下給php添加mbstring擴展,linuxmbstring


1,今天在開發項目的時候使用了一個php函數(mb_strcut),運行代碼時候提示報錯"call to undefind function mb_strcut",首先檢查下函數名沒有寫錯,難道是php.ini中沒有開啟擴展,後來去phpinfo看了確實沒有加載mb_strcut,後台得知這個擴展在官方由mbstring構建

2,去php官方pecl首頁搜索竟然搜索不到,MDZZ,what the hell,由於php安裝包中帶有所有的擴展,所以樓主用wget下載一個php5.6.24的源碼包了,php官方下載地址http://php.net/downloads.php 進入列表選擇一個你需要的php源碼包,由於樓主服務器用的版本是5.6.24所以果斷下載5.6.24,如果用wget下載的話,默認下載目錄就會當前目錄,weget命令格式狠簡單:wget [url] (不如下載一個php 5.6.25的包直接這樣 wget http://hk1.php.net/get/php-5.6.25.tar.bz2/from/this/mirror) 下載完畢以後會得到一個mirror文件,然後用tar -zxvf mirror 解壓得到一個文件夾,進入文件夾內,找到ext,這個文件夾裡面包含的是php擴展的源文件,找到你需要的擴展,樓主需要的mbstring,找到後,我們就可以使用phpize來安裝了。phpize是官方提供的一個動態添加擴展的工具,詳細了解可以度娘 phpize

3,首先我要確定當前系統存在phpize,並且可以使用,我們whereis phpize,可以看到搜索結果,比如樓主的是 /usr/bin/phpize,恭喜你,你可以直接使用了,每個人的目錄可能所有不同,一般phpize是包含在/usr/bin下面的,確定了phpize命令執行路徑後 ,我們進入需要編譯安裝的擴展目錄,樓主就是進入mbstring ,進入目錄後在當前位置輸入命令 /usr/bin/phpize 命令執行完畢後,目錄裡面會多幾個文件,有configure.. ,然後輸入 ./configure --with-php-config=/usr/local/php/bin/php-config命令,注意前面是有一個點號額,如果提示錯誤,就說明你的php-config路徑和我的不一致,可以whereis php-config,找到這個文件,然後換成正確的路徑,在沒有報錯的情況下,我們依次執行,make 和make install 命令執行完畢後,它會提示你一個路徑,這個路徑裡面就是我們編譯的好的擴展,比如樓主的生成的擴展在 /usr/lib64/php/modules,我們進入這個目錄,就可以看到剛才生成的擴展,在Linux下面擴展的後綴為 .so ,樓主的微mbstring.so ,這一步就做好了

4,這一步我們需要修改php.ini配置文件,同樣用whereis php.ini 找到Php.ini文件所在的目錄,一般在/etc目錄下面,找到配置文件後,用vi /etc/php.ini命令或者vim /etc/php.ini命令打開這個文件,默認是普通模式,我們使用vim快捷鍵G快速定位到字符最底部 添加一行 extension=mbstring.so 這一行就是開啟你剛才生成擴展,還有一個問題如果沒有你使用的是默認位置存放擴展,請把剛才生成.so文件復制到默認文件夾中,如果你在當前配置文件中聲明了 extension_dir ,就把擴展文件放到聲明的文件夾中,這樣才能擴展文件才能被加載到。添加完 extension = mbstring後這一步就昨晚了

5,最後一步需要重啟服務器,重啟包括2部分,因為樓主使用的是LNMP,所以需要重啟的是nginx 和php-fpm,如果你使用的Lamp 那麼需要重啟的是apche和php-fpm,如果沒有開啟php-fpm就不需要重啟php-fpm,開啟nginx可以使用nginx自帶的管理命令,同樣使用whereis nginx ,找到nginx命令執行目錄,樓主的是/usr/sbin/nginx,輸入 /usr/sbin/nginx -s reload 後重啟nginx服務,前面的路徑一定要是正確的,可能你的和樓主的不一樣,接下來重啟php-fpm,重啟php-fpm,我們先用命令 ps -aux |grep php-fpm 獲取當前系統的包含php-fpm進程列表,我們需要的是加載了php-fpm.conf文件那一個進程的進程號,第二列的數字就是進程號,找到進程號後,使用kill [這裡填寫剛才的進程號] ,比如樓主的是31411  ,就是kill 31411 ,這樣做是將php-fpm的進程停掉,然後我們whereis php-fpm 查看php-fpm執行的命令的路徑,樓主的是/usr/sbin/php-fpm,執行/usr/sbin/php-fpm後就可以重新啟動php-fpm,啟動後去phpinfo(),可以看到我們添加的擴展已經在列表中了。至此我們給php添加擴展就已經完成了。如果安裝完以後依然沒有出現的話,就需要仔細排查哪一步做錯了。還有樓主的郵箱是[email protected],有什麼問題可以給我發郵件。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved