diff --git a/plugins/php/versions/all_test.sh b/plugins/php/versions/all_test.sh index 1d02a60fa..221473757 100644 --- a/plugins/php/versions/all_test.sh +++ b/plugins/php/versions/all_test.sh @@ -40,7 +40,7 @@ cd $DIR PHP_VER_LIST=(53 54 55 56 70 71 72 73 74 80 81 82) PHP_EXT_LIST=(ioncube ZendGuardLoader pdo mysqlnd sqlite3 openssl pcntl opcache mcrypt fileinfo \ exif gd intl memcache memcached redis imagemagick xdebug xhprof \ - swoole yaf yar yac apc mongo mongodb solr seaslog mbstring iconv) + swoole yaf yar yac apc mongo mongodb solr seaslog mbstring iconv phalcon) for PHP_VER in ${PHP_VER_LIST[@]}; do echo "php${PHP_VER} -- start" diff --git a/plugins/php/versions/common/phalcon.sh b/plugins/php/versions/common/phalcon.sh new file mode 100755 index 000000000..75c2dd1ff --- /dev/null +++ b/plugins/php/versions/common/phalcon.sh @@ -0,0 +1,118 @@ +#!/bin/bash +PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin +export PATH + +curPath=`pwd` + +rootPath=$(dirname "$curPath") +rootPath=$(dirname "$rootPath") +rootPath=$(dirname "$rootPath") +rootPath=$(dirname "$rootPath") +serverPath=$(dirname "$rootPath") +sourcePath=${serverPath}/source/php + +actionType=$1 +version=$2 + +LIBNAME=phalcon +LIBV=4.1.2 + +if [ "$version" -gt "74" ];then + LIBV=5.1.2 +else + echo 'other?' +fi + +LIB_PATH_NAME=lib/php +if [ -d $serverPath/php/${version}/lib64 ];then + LIB_PATH_NAME=lib64 +fi + +NON_ZTS_FILENAME=`ls $serverPath/php/${version}/${LIB_PATH_NAME}/extensions | grep no-debug-non-zts` +extFile=$serverPath/php/${version}/${LIB_PATH_NAME}/extensions/${NON_ZTS_FILENAME}/${LIBNAME}.so + +sysName=`uname` +if [ "$sysName" == "Darwin" ];then + BAK='_bak' +else + BAK='' +fi + +Install_lib() +{ + isInstall=`cat $serverPath/php/$version/etc/php.ini|grep "${LIBNAME}.so"` + if [ "${isInstall}" != "" ];then + echo "php-$version 已安装${LIBNAME},请选择其它版本!" + return + fi + + if [ ! -f "$extFile" ];then + + php_lib=$sourcePath/php_lib + mkdir -p $php_lib + + if [ ! -f $php_lib/${LIBNAME}-${LIBV}.tgz ];then + wget -O $php_lib/${LIBNAME}-${LIBV}.tgz http://pecl.php.net/get/${LIBNAME}-${LIBV}.tgz + cd $php_lib + tar xvf ${LIBNAME}-${LIBV}.tgz + fi + cd $php_lib/${LIBNAME}-${LIBV} + + $serverPath/php/$version/bin/phpize + ./configure --with-php-config=$serverPath/php/$version/bin/php-config + make clean && make && make install && make clean + fi + + while [[ ! -f "$extFile" ]]; + do + echo -e ".\c" + sleep 0.5 + if [ ! -f "$extFile" ];then + echo "ERROR!" + fi + let n+=1 + if [ $n -gt 8 ];then + echo "WAIT " $n "TIMES FAIL!" + return; + fi + done + + echo "" >> $serverPath/php/$version/etc/php.ini + echo "[${LIBNAME}]" >> $serverPath/php/$version/etc/php.ini + echo "extension=${LIBNAME}.so" >> $serverPath/php/$version/etc/php.ini + + bash ${rootPath}/plugins/php/versions/lib.sh $version restart + echo '===========================================================' + echo 'successful!' +} + + +Uninstall_lib() +{ + if [ ! -f "$serverPath/php/$version/bin/php-config" ];then + echo "php-$version 未安装,请选择其它版本!" + return + fi + + if [ ! -f "$extFile" ];then + echo "php-$version 未安装${LIBNAME},请选择其它版本!" + return + fi + + echo $serverPath/php/$version/etc/php.ini + sed -i $BAK "/${LIBNAME}.so/d" $serverPath/php/$version/etc/php.ini + sed -i $BAK "/${LIBNAME}/d" $serverPath/php/$version/etc/php.ini + + rm -f $extFile + bash ${rootPath}/plugins/php/versions/lib.sh $version restart + echo '===============================================' + echo 'successful!' +} + + + +if [ "$actionType" == 'install' ];then + Install_lib +elif [ "$actionType" == 'uninstall' ];then + Uninstall_lib +fi \ No newline at end of file diff --git a/plugins/php/versions/phplib.conf b/plugins/php/versions/phplib.conf index 32c15e635..2f95d0053 100755 --- a/plugins/php/versions/phplib.conf +++ b/plugins/php/versions/phplib.conf @@ -494,6 +494,27 @@ "shell": "eaccelerator.sh", "check": "eaccelerator.so" }, + { + "name": "phalcon", + "versions": [ + "53", + "54", + "55", + "56", + "70", + "71", + "72", + "73", + "74", + "80", + "81", + "82" + ], + "type": "框架", + "msg": "Phalcon是一个全栈PHP框架,提供低资源消耗和高性能。", + "shell": "phalcon.sh", + "check": "phalcon.so" + }, { "name": "yaf", "versions": [