X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=tests%2Fci%2Fsetup%2Fsetup_php_travis.sh;h=4cc194e74757fc7f2b2a157f4f5a72f59ffc056d;hb=8ccaf4d728232a7537ab964885c526175cb20e09;hp=fd37f14127de9f381168c3898fb694b6c2a935d8;hpb=21b4276f0cc8c47853b117dcda9957cd0cb6ecd2;p=plcapi.git diff --git a/tests/ci/setup/setup_php_travis.sh b/tests/ci/setup/setup_php_travis.sh old mode 100644 new mode 100755 index fd37f14..4cc194e --- a/tests/ci/setup/setup_php_travis.sh +++ b/tests/ci/setup/setup_php_travis.sh @@ -2,18 +2,18 @@ # To be kept in sync with setup_php.sh +# @todo make it optional to disable xdebug ? + set -e +SCRIPT_DIR="$(dirname -- "$(readlink -f "$0")")" + configure_php_ini() { 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 + phpenv config-rm xdebug.ini } PHPVER=$(phpenv version-name) @@ -25,22 +25,29 @@ cp ~/.phpenv/versions/${PHPVER}/etc/php-fpm.conf.default ~/.phpenv/versions/${PH # 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 + # it seems that www.conf does not exist for php 7.0 .. 7.3 + if [ -f ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf.default -a ! -f ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf ]; then + cp ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf.default ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf fi fi +# Use a unix socket for communication between apache and php-fpm - same as Ubuntu does by default +if [ -f ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf ]; then + sed -i -e "s,listen = 127.0.0.1:9000,listen = /run/php/php-fpm.sock,g" ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf +else + # php 5.6 has all fpm conf in a single file + sed -i -e "s,listen = 127.0.0.1:9000,listen = /run/php/php-fpm.sock,g" ~/.phpenv/versions/${PHPVER}/etc/php-fpm.conf + sed -i -e "s,user = nobody,user = travis,g" ~/.phpenv/versions/${PHPVER}/etc/php-fpm.conf + sed -i -e "s,group = nobody,group = travis,g" ~/.phpenv/versions/${PHPVER}/etc/php-fpm.conf +fi +sudo mkdir /run/php +sudo chown travis:travis /run/php + +# @todo run php-fpm as root, and (always) set up 'travis' as user in www.conf, instead ? ~/.phpenv/versions/${PHPVER}/sbin/php-fpm -# @todo configure apache for php-fpm via mod_proxy_fcgi... +# configure apache for php-fpm via mod_proxy_fcgi +sudo cp -f "$SCRIPT_DIR/../config/apache_phpfpm_proxyfcgi" "/etc/apache2/conf-available/php${PHPVER}-fpm.conf" sudo a2enconf php${PHPVER}-fpm +sudo sed -i -e "s,www-data,travis,g" /etc/apache2/envvars sudo service apache2 restart