整理 mac 安裝php擴充套件mcrypt
這個問題是遇到多次了,不想再被坑了,
首先使mcrypt軟體能夠執行,然後安裝php擴充套件模組,並在php.ini配置。
這裡注意的是mcrypt軟體依賴libmcrypt和mhash兩個庫,所以安裝配置順序從右至左
下載安裝mcrypt
1.先去http://www.sourceforge.net下載Libmcrypt,mhash,mcrypt安裝包 ,下面是我找到的連結
Libmcrypt(libmcrypt-2.5.8.tar.gz ):
http://sourceforge.net/project/showfiles.php?group_id=87941&package_id=91774&release_id=487459
mcrypt(mcrypt-2.6.8.tar.gz ):
http://sourceforge.net/project/showfiles.php?group_id=87941&package_id=91948&release_id=642101
mhash(mhash-0.9.9.9.tar.gz ):
http://sourceforge.net/project/showfiles.php?group_id=4286&package_id=4300&release_id=645636
2 .先安裝Libmcrypt
#tar -zxvf libmcrypt-2.5.8.tar.gz
#cd libmcrypt-2.5.8
#./configure
#make
#make install
說明:libmcript預設安裝在/usr/local
3.安裝mhash
#tar -zxvf mhash-0.9.9.9.tar.gz
#cd mhash-0.9.9.9
#./configure
#make
#make install
4.安裝mcrypt
#tar -zxvf mcrypt-2.6.8.tar.gz
#cd mcrypt-2.6.8
#LD_LIBRARY_PATH=/usr/local/lib/ ./configure -with-libmcrypt-prefix=/usr/local
#make
#make install
說明:由於在配置Mcrypt時,會找不到libmcrypt的連結庫,導致無法編譯,因為Libmcrypt的連結庫在/usr/local/資料夾下。因些在配置mcrypt時要加入LD_LIBRARY_PATH=/usr/local匯入鍵接庫,
mac上有時會在make時有錯誤:rfc2440.c:26:20: error: malloc.h: No such file or directory,修改 rfc2440.c:#include <malloc.h>為#include <sys/malloc.h>, 重新make/make install即可,如在MAC10.9系統上有問題mcrypt fatal error: 'php.h' file not found,後面有詳述
5.生成mcypt.so檔案
-
下載並解壓PHP原始碼檔案php-5.3.4.tar.gz(一定是和系統的php的版本號一致)。Mac
OS X 10.6.3中預裝的PHP版本是5.3.4,所以需要下載這個版本。
-
在終端執行如下命令:
tar zxvf php-5.3.4.tar.gz
cd php-5.3.4/ext/mcrypt
phpize(如果./configure不能執行 先下載autoconf.tar.gz解壓 在autoconf資料夾目錄下執行./configure 然後make && make install 安裝autoconf後就能在php資料夾下使用./configure配置php了 ,如這個裝不上,後面還有詳述)
./configure
make
sudo cp modules/mcrypt.so /usr/lib/php/extensions/no-debug-non-zts-20090626/ -
開啟php.ini
sudo vi /etc/php.ini
在usr/etc/php.ini,中加入如下程式碼,並儲存後退出,然後重啟Apache(如沒有複製php.ini.default,有時要修改寫許可權:chmod 777 php.ini )
extension=/usr/lib/php/extensions/no-debug-non-zts-20090626/mcrypt.so 到這就結束了。在裝mcrypt外掛時報錯,提示:mcrypt fatal error: 'php.h' file not found,
然後又仔細操作了一次在輸完phpize回車時就已經開始出錯了,出錯資訊如下:
grep: /usr/include/php/main/php.h: No such file or directory
grep: /usr/include/php/Zend/zend_modules.h: No such file or directory
grep: /usr/include/php/Zend/zend_extensions.h: No such file or directory
Configuring for:
PHP Api Version:
Zend Module Api No:
Zend Extension Api No:
解決辦法:
sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include /usr/include
如autoconf安裝不上,參考: 安裝這4個: 1.curl -O http://mirrors.kernel.org/gnu/m4/m4-1.4.13.tar.gz
tar -xzvf m4-1.4.13.tar.gz
cd m4-1.4.13
./configure --prefix=/usr/local
make
sudo make install
cd ..
2.curl -O http://mirrors.kernel.org/gnu/autoconf/autoconf-2.65.tar.gz
tar -xzvf autoconf-2.65.tar.gz
cd autoconf-2.65
./configure --prefix=/usr/local # ironic, isn't it?
make
sudo make install
cd .. # here you might want to restart your terminal session, to ensure the new autoconf is picked up and used in the rest of the script
3.curl -O http://mirrors.kernel.org/gnu/automake/automake-1.11.tar.gz
tar xzvf automake-1.11.tar.gz
cd automake-1.11
./configure --prefix=/usr/local
make
sudo make install
cd ..
4.curl -O http://mirrors.kernel.org/gnu/libtool/libtool-2.2.6b.tar.gz
tar xzvf libtool-2.2.6b.tar.gz
cd libtool-2.2.6b
./configure --prefix=/usr/local
make
sudo make install