php7擴展之phalcon安裝(阿里雲1G內存服務器centos7 64位)

因爲有個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命令顯示內容:

由於經驗不足,這個問題本人研究了一整天,希望能給遇到相同問題的小夥伴們帶來幫助。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章