#!/bin/bash # Copyright: 2023 Virtuozzo International GmbH # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # http://www.apache.org/licenses/LICENSE-2.0 # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. [ -n "${APACHEPHPENGINELIB_VERSION:-}" ] && return 0; APACHEPHPENGINELIB_VERSION="0.1"; include php-common-engine ; PHP_EXTENSIONS_DIR='/etc/php.ext'; APACHE2_MODULES_DIR='/etc/httpd/modules'; APACHE2_CONFIGS_DIR='/etc/httpd/conf.d/'; PHP_CONF='php.conf'; APACHE2_PHPMODULE='libphp5.so'; MAJOR_VERSION=5; JELASTIC_PHP_MODULES_DIR='/usr/lib64/jelastic_php/httpd'; DEFAULT_PHP_EXTENSIONS_DIR='/usr/lib64/php'; JELASTIC_PHP_EXTENSIONS_DIR='/usr/lib64/jelastic_php'; PHP_CLI_BIN='/usr/bin/php'; JELASTIC_PHP_BIN_DIR='/usr/lib64/jelastic_php/bin'; $PROGRAM 'grep'; # # name: switchEngine # $1 - engine to switch on # # TODO - refactor function switchEngine(){ local param=$1; local version; case $1 in "php5.3") version=$(ls $JELASTIC_PHP_EXTENSIONS_DIR | $GREP -o '5\.3\.[0-9]*' | sort -r | head -n 1); ;; "php5.4") version=$(ls $JELASTIC_PHP_EXTENSIONS_DIR | $GREP -o '5\.4\.[0-9]*' | sort -r | head -n 1); ;; "php5.5") version=$(ls $JELASTIC_PHP_EXTENSIONS_DIR | $GREP -o '5\.5\.[0-9]*' | sort -r | head -n 1); ;; "php5.6") version=$(ls $JELASTIC_PHP_EXTENSIONS_DIR | $GREP -o '5\.6\.[0-9]*' | sort -r | head -n 1); ;; "php7.0") version=$(ls $JELASTIC_PHP_EXTENSIONS_DIR | $GREP -o '7\.0\.[0-9]*' | sort -r | head -n 1); MAJOR_VERSION=7; APACHE2_PHPMODULE='libphp7.so'; ;; "php7.1") version=$(ls $JELASTIC_PHP_EXTENSIONS_DIR | $GREP -o '7\.1\.[0-9]*' | sort -r | head -n 1); MAJOR_VERSION=7; APACHE2_PHPMODULE='libphp7.so'; ;; *) return 1 esac if [[ -f "$JELASTIC_PHP_MODULES_DIR/libphp$version.so" ]] then rm -f $APACHE2_MODULES_DIR/$APACHE2_PHPMODULE; ln -s $JELASTIC_PHP_MODULES_DIR/libphp$version.so $APACHE2_MODULES_DIR/$APACHE2_PHPMODULE; else echo "PHP with version $version is not installed" 1>&2; return 0; fi if [[ -d "$JELASTIC_PHP_EXTENSIONS_DIR/php$version/lib64/php/modules" ]] then rm -f $DEFAULT_PHP_EXTENSIONS_DIR/modules; ln -s $JELASTIC_PHP_EXTENSIONS_DIR/php$version/lib64/php/modules $DEFAULT_PHP_EXTENSIONS_DIR; else echo "no PHP extensions are configured for PHP version $version" 1>&2 return 0; fi $SED -i -e "s/php[[:digit:]]_module/php${MAJOR_VERSION}_module/g" -e "s/libphp[[:digit:]].so/libphp${MAJOR_VERSION}.so/g" \ -e "s/php[[:digit:]]-script/php${MAJOR_VERSION}-script/g" ${APACHE2_CONFIGS_DIR}/${PHP_CONF} ; if [[ -f "$JELASTIC_PHP_BIN_DIR/php.$version" ]] then rm -f $PHP_CLI_BIN; ln -s $JELASTIC_PHP_BIN_DIR/php.$version $PHP_CLI_BIN; else echo "PHP-CLI binary for PHP version $version is not installed" 1>&2; return 0; fi isFunction "phpExtensionsManagers" && { "phpExtensionsManagers" ; } }