環境:
CentOs 6.3
php 7
nginx
舉例:
安裝ssh2
擴展
1.登陸http://pecl.php.net,搜索ssh2
,如下圖所示,注意版本的選擇要根據php的版本來
2.下載ssh2
擴展文件壓縮包(在當前系統哪個目錄下載隨意)
~# wget http://pecl.php.net/get/ssh2-1.0.tgz
3.解壓文件
~# tar -zxvf ssh2-1.0.tgz
4.進入源碼目錄
~# cd ssh2-1.0/
5.運行phpize
命令,寫全phpize的路徑
~# /usr/local/php/bin/phpize
如果你用MAMP,此時會報錯,請見文尾附錄->
6.運行configure
命令,配置時要將php-config的路徑附上
~# ./configure --with-php-config=/usr/local/php/bin/php-config
7.運行make
命令
~# make
8.測試編譯安裝
~# make test
9.正式編譯安裝
~# sudo make install
10.修改php.ini
結尾加入:extension=ssh2.so
11.重啟對應的php-fpm
~# ps aux | grep php-fpm
找到php-fpm的pid,然后
kill {pid}
然后再啟動php-fpm
~# /usr/local/php/sbin/php-fpm
如果你用MAMP,直接GUI重啟即可
檢驗結果
打開phpinfo,可以看到:
附錄
報錯
grep: /Applications/MAMP/bin/php/php5.6.10/include/php/main/php.h: No such file or directory
grep: /Applications/MAMP/bin/php/php5.6.10/include/php/Zend/zend_modules.h: No such file or directory
grep: /Applications/MAMP/bin/php/php5.6.10/include/php/Zend/zend_extensions.h: No such file or directory
Configuring for:
PHP Api Version:
Zend Module Api No:
Zend Extension Api No:
原因
/Applications/MAMP/bin/php/php5.6.10/下缺少include文件夾
因為MAMP把include移到了/usr/include下
所以可以做了一個軟連接,先在/Applications/MAMP/bin/php/php5.6.10/下創建空include文件夾,然后執行
ln -s /usr/include/php /Applications/MAMP/bin/php/php5.6.10/include/
如果接下來的make步驟也報錯了,並提示
fatal error: ‘pcre.h‘ file not found
解決辦法:brew install pcre