因爲有個PHP項目用到 phalcon框架,所以要在服務器上安裝phalcon擴展。
服務器:系統爲centos7,內存大小爲1G,php版本爲7.0
安裝所需依賴,如果在編譯時還提示缺少其他依賴,請自行安裝
yum install autoconf gcc gcc-c++ wget
git clone https://github.com/phalcon/cphalcon 注意自己項目使用的哪個版本,切換對應tag
cd cphalcon/build
./install
注:此時可能會遇到問題php-config is not installed (本人即遇到此情況,採用以下命令解決的)
cd php7/64bits/ (目錄爲cphalcon/build/php7/64bits/)
/www/server/php/70/bin/phpize --enable-phalcon --with-phpconfig=/www/server/php/70/bin/php-config
./configure --with-php-config=/www/server/php/70/bin/php-config
make && make install
注:此時可能會遇到問題
cc: internal compiler error: Killed (program cc1)
Please submit a full bug report.
with preprocessed source if appropriate
See <http://bugzilla.redhat.com/bugzilla> for instructions.
make: *** [phalcon.lo] Error 1
搜之發現是因爲內存不夠...而阿里雲默認把 swap 關了,導致編譯無法通過....
這裏需要檢查兩個地方
一、修改swappiness
1.查看你的系統裏面的swappiness
$ cat /proc/sys/vm/swappiness
不出意外的話,在阿里雲看到的可能是0,那麼就需要修改
2.修改swappiness值
$ sudo sysctl vm.swappiness=70
但是這只是臨時性的修改,在你重啓系統後會恢復默認的,所以,還要做一步
$ sudo vi /etc/sysctl.conf
在這個文檔的最後加上這樣一行:
vm.swappiness=70
然後保存,重啓。ok,你的設置就生效了。
二、增加swap分區大小,命令如下:
sudo mkdir -p /var/cache/swap/
sudo dd if=/dev/zero of=/var/cache/swap/swap0 bs=1M count=2048
sudo chmod 0600 /var/cache/swap/swap0
sudo mkswap /var/cache/swap/swap0
sudo swapon /var/cache/swap/swap0
重新編譯通過....
在php.ini中添加相關配置信息,並重啓PHP
extension=/www/server/php/70/lib/php/extensions/no-debug-non-zts-20151012/phalcon.so
或者
extension_dir=/www/server/php/70/lib/php/extensions/no-debug-non-zts-20151012/
extension=phalcon.so
注意:阿里雲服務器初始狀態未配置swap,是因爲開啓swap分區會導致硬盤IO性能下降。那麼成功編譯安裝Phalcon框架之後,可以關閉swap交換文件。執行如下命令:
swapoff /var/cache/swap/swap0
安裝phalcon前的php -m命令顯示內容:
安裝phalcon後的php -m命令顯示內容:
由於經驗不足,這個問題本人研究了一整天,希望能給遇到相同問題的小夥伴們帶來幫助。