travis tests
[plcapi.git] / tests / ci / setup / setup_php_travis.sh
1 #!/bin/sh
2
3 # To be kept in sync with setup_php.sh
4
5 set -e
6
7 SCRIPT_DIR="$(dirname -- "$(readlink -f "$0")")"
8
9 configure_php_ini() {
10     echo "cgi.fix_pathinfo = 1" >> "${1}"
11     echo "always_populate_raw_post_data = -1" >> "${1}"
12
13     # @todo this only disables xdebug for CLI. To do the same for the FPM config as well, should we use instead `phpdismod` ?
14     XDEBUG_INI=$(php -i | grep xdebug.ini | grep -v '=>' | head -1)
15     if [ "$XDEBUG_INI" != "" ]; then
16         XDEBUG_INI="$(echo "$XDEBUG_INI" | tr -d ',')"
17         mv "$XDEBUG_INI" "$XDEBUG_INI.bak";
18     fi
19 }
20
21 PHPVER=$(phpenv version-name)
22
23 configure_php_ini ~/.phpenv/versions/${PHPVER}/etc/php.ini
24
25 # configure php-fpm
26 cp ~/.phpenv/versions/${PHPVER}/etc/php-fpm.conf.default ~/.phpenv/versions/${PHPVER}/etc/php-fpm.conf
27
28 # work around travis issue #3385
29 if [ -d ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d ]; then
30     #if [ "$TRAVIS_PHP_VERSION" = "7.0" -a -n "$(ls -A ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d)" ]; then
31     #  cp ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf.default ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf
32     #fi
33     #if [ "$TRAVIS_PHP_VERSION" = "7.1" -a -n "$(ls -A ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d)" ]; then
34     #  cp ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf.default ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf
35     #fi
36     #if [ "$TRAVIS_PHP_VERSION" = "7.2" -a -n "$(ls -A ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d)" ]; then
37     #  cp ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf.default ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf
38     #fi
39     #if [ "$TRAVIS_PHP_VERSION" = "7.3" -a -n "$(ls -A ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d)" ]; then
40     #  cp ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf.default ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf
41     #fi
42     # it seems that www.conf exists for php 7.4 and 8.0...
43     if [ -f ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf.default -a ! -f ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf ]; then
44         cp ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf.default ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf
45     fi
46 fi
47
48 #cat ~/.phpenv/versions/${PHPVER}/etc/php-fpm.conf
49 ls -la ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d
50 #cat ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf
51
52 # Use a unix socket for communication between apache and php-fpm - same as Ubuntu does by default
53 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
54
55 sudo mkdir /run/php
56 sudo chown travis:travis /run/php
57 # @todo run php-fpm as root, and set up 'travis' as user in www.conf, instead ?
58 ~/.phpenv/versions/${PHPVER}/sbin/php-fpm
59
60 # configure apache for php-fpm via mod_proxy_fcgi
61 sudo cp -f "$SCRIPT_DIR/../config/apache_phpfpm_proxyfcgi" "/etc/apache2/conf-available/php${PHPVER}-fpm.conf"
62 sudo a2enconf php${PHPVER}-fpm
63 sudo sed -i -e "s,www-data,travis,g" /etc/apache2/envvars
64 sudo service apache2 restart