X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=tests%2Fci%2Fsetup%2Fsetup_php.sh;h=cc72a7f2d6fe02eaf89548f42a8a40deab096384;hb=34d380712153dd582dbd548d8c1044e7649d4a0e;hp=0572037be6d5ba87fb6769979c601afc71d41f30;hpb=dec177e13bb5e03443e617646d36d678159ca0eb;p=plcapi.git diff --git a/tests/ci/setup/setup_php.sh b/tests/ci/setup/setup_php.sh old mode 100644 new mode 100755 index 0572037..cc72a7f --- a/tests/ci/setup/setup_php.sh +++ b/tests/ci/setup/setup_php.sh @@ -1,104 +1,79 @@ #!/bin/sh +# Has to be run as admin + +# To be kept in sync with setup_php_travis.sh + +# @todo make it optional to disable xdebug ? + set -e configure_php_ini() { - # @todo make this idempotent so that it can be run multiple times in a row + # note: these settings are not required for cli config echo "cgi.fix_pathinfo = 1" >> "${1}" echo "always_populate_raw_post_data = -1" >> "${1}" - # @todo this only disables xdebug for CLI. To do the same for the FPM config as well, should we use instead `phpdismod` ? - XDEBUG_INI=$(php -i | grep xdebug.ini | grep -v '=>' | head -1) - if [ "$XDEBUG_INI" != "" ]; then - XDEBUG_INI="$(echo "$XDEBUG_INI" | tr -d ',')" - mv "$XDEBUG_INI" "$XDEBUG_INI.bak"; - fi + # we disable xdebug for speed for both cli and web mode + phpdismod xdebug } -if [ "$TRAVIS" != true ]; then - - # install php - PHP_VERSION="$1" - DEBIAN_VERSION="$(lsb_release -s -c)" - - if [ "${PHP_VERSION}" = default ]; then - if [ "${DEBIAN_VERSION}" = jessie -o "${DEBIAN_VERSION}" = precise -o "${DEBIAN_VERSION}" = trusty ]; then - PHPSUFFIX=5 - else - PHPSUFFIX= - fi - # @todo check for mbstring presence in php5 (jessie) packages - DEBIAN_FRONTEND=noninteractive apt-get install -y \ - php${PHPSUFFIX} \ - php${PHPSUFFIX}-cli \ - php${PHPSUFFIX}-dom \ - php${PHPSUFFIX}-curl \ - php${PHPSUFFIX}-fpm \ - php${PHPSUFFIX}-mbstring \ - php${PHPSUFFIX}-xdebug +# install php +PHP_VERSION="$1" +DEBIAN_VERSION="$(lsb_release -s -c)" + +if [ "${PHP_VERSION}" = default ]; then + if [ "${DEBIAN_VERSION}" = jessie -o "${DEBIAN_VERSION}" = precise -o "${DEBIAN_VERSION}" = trusty ]; then + PHPSUFFIX=5 else - DEBIAN_FRONTEND=noninteractive apt-get install -y language-pack-en-base software-properties-common - LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php - apt-get update - - DEBIAN_FRONTEND=noninteractive apt-get install -y \ - php${PHP_VERSION} \ - php${PHP_VERSION}-cli \ - php${PHP_VERSION}-dom \ - php${PHP_VERSION}-curl \ - php${PHP_VERSION}-fpm \ - php${PHP_VERSION}-mbstring \ - php${PHP_VERSION}-xdebug - - update-alternatives --set php /usr/bin/php${PHP_VERSION} + PHPSUFFIX= fi + # @todo check for mbstring presence in php5 (jessie) packages + DEBIAN_FRONTEND=noninteractive apt-get install -y \ + php${PHPSUFFIX} \ + php${PHPSUFFIX}-cli \ + php${PHPSUFFIX}-dom \ + php${PHPSUFFIX}-curl \ + php${PHPSUFFIX}-fpm \ + php${PHPSUFFIX}-mbstring \ + php${PHPSUFFIX}-xdebug +else + DEBIAN_FRONTEND=noninteractive apt-get install -y language-pack-en-base software-properties-common + LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php + apt-get update + + DEBIAN_FRONTEND=noninteractive apt-get install -y \ + php${PHP_VERSION} \ + php${PHP_VERSION}-cli \ + php${PHP_VERSION}-dom \ + php${PHP_VERSION}-curl \ + php${PHP_VERSION}-fpm \ + php${PHP_VERSION}-mbstring \ + php${PHP_VERSION}-xdebug + + update-alternatives --set php /usr/bin/php${PHP_VERSION} +fi - PHPVER=$(php -r 'echo implode(".",array_slice(explode(".",PHP_VERSION),0,2));' 2>/dev/null) +PHPVER=$(php -r 'echo implode(".",array_slice(explode(".",PHP_VERSION),0,2));' 2>/dev/null) - configure_php_ini /etc/php/${PHPVER}/fpm/php.ini +configure_php_ini /etc/php/${PHPVER}/fpm/php.ini - # use a nice name for the php-fpm service, so that it does not depend on php version running - service "php${PHPVER}-fpm" stop +# use a nice name for the php-fpm service, so that it does not depend on php version running. Try to make that work +# both for docker and VMs +service "php${PHPVER}-fpm" stop +if [ -f "/etc/init.d/php${PHPVER}-fpm" ]; then ln -s "/etc/init.d/php${PHPVER}-fpm" /etc/init.d/php-fpm - - # @todo shall we configure php-fpm? - - service php-fpm start - - # configure apache - a2enconf php${PHPVER}-fpm - service apache2 restart - -else - - # php is already installed, via phpenv - - PHPVER=$(phpenv version-name) - - configure_php_ini ~/.phpenv/versions/${PHPVER}/etc/php.ini - - # configure php-fpm - cp ~/.phpenv/versions/${PHPVER}/etc/php-fpm.conf.default ~/.phpenv/versions/${PHPVER}/etc/php-fpm.conf - - # work around travis issue #3385 - if [ -d ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d ]; then - if [ "$TRAVIS_PHP_VERSION" = "7.0" -a -n "$(ls -A ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d)" ]; then - cp ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf.default ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf - fi - if [ "$TRAVIS_PHP_VERSION" = "7.1" -a -n "$(ls -A ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d)" ]; then - cp ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf.default ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf - fi - if [ "$TRAVIS_PHP_VERSION" = "7.2" -a -n "$(ls -A ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d)" ]; then - cp ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf.default ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf - fi - if [ "$TRAVIS_PHP_VERSION" = "7.3" -a -n "$(ls -A ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d)" ]; then - cp ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf.default ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf - fi +fi +if [ -f "/lib/systemd/system/php${PHPVER}-fpm.service" ]; then + ln -s "/lib/systemd/system/php${PHPVER}-fpm.service" /lib/systemd/system/php-fpm.service + if [ ! -f /.dockerenv ]; then + systemctl daemon-reload fi +fi - ~/.phpenv/versions/${PHPVER}/sbin/php-fpm +# @todo shall we configure php-fpm? - # @todo configure apache for php-fpm via mod_proxy_fcgi... - a2enconf php${PHPVER}-fpm - service apache2 restart -fi +service php-fpm start + +# configure apache +a2enconf php${PHPVER}-fpm +service apache2 restart