X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=tests%2Fci%2Fsetup%2Fsetup_php.sh;h=1a7c69c383b8c8ebeebe2e7adbbc8ae212dc8047;hb=e6e1579cece03e00e0b0c931f43694c90357aa4f;hp=fe9e0b0a15f856415a0cd4dff674e284c03870e9;hpb=8da25b8f417af37d783289c118c798f034c9f9fb;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 fe9e0b0..1a7c69c --- a/tests/ci/setup/setup_php.sh +++ b/tests/ci/setup/setup_php.sh @@ -1,103 +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 ! which php >/dev/null; 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 fi - -if [ -n "$TRAVIS" ]; then - - # 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 +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 daeamon-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 -fi +service php-fpm start + +# configure apache +a2enconf php${PHPVER}-fpm +service apache2 restart