wip travis
[plcapi.git] / tests / ci / setup / setup_php.sh
1 #!/bin/sh
2
3 # To be kept in sync with setup_php_travis.sh
4
5 set -e
6
7 configure_php_ini() {
8     echo "cgi.fix_pathinfo = 1" >> "${1}"
9     echo "always_populate_raw_post_data = -1" >> "${1}"
10
11     # @todo this only disables xdebug for CLI. To do the same for the FPM config as well, should we use instead `phpdismod` ?
12     XDEBUG_INI=$(php -i | grep xdebug.ini | grep -v '=>' | head -1)
13     if [ "$XDEBUG_INI" != "" ]; then
14         XDEBUG_INI="$(echo "$XDEBUG_INI" | tr -d ',')"
15         mv "$XDEBUG_INI" "$XDEBUG_INI.bak";
16     fi
17 }
18
19 # install php
20 PHP_VERSION="$1"
21 DEBIAN_VERSION="$(lsb_release -s -c)"
22
23 if [ "${PHP_VERSION}" = default ]; then
24     if [ "${DEBIAN_VERSION}" = jessie -o "${DEBIAN_VERSION}" = precise -o "${DEBIAN_VERSION}" = trusty ]; then
25         PHPSUFFIX=5
26     else
27         PHPSUFFIX=
28     fi
29     # @todo check for mbstring presence in php5 (jessie) packages
30     DEBIAN_FRONTEND=noninteractive apt-get install -y \
31         php${PHPSUFFIX} \
32         php${PHPSUFFIX}-cli \
33         php${PHPSUFFIX}-dom \
34         php${PHPSUFFIX}-curl \
35         php${PHPSUFFIX}-fpm \
36         php${PHPSUFFIX}-mbstring \
37         php${PHPSUFFIX}-xdebug
38 else
39     DEBIAN_FRONTEND=noninteractive apt-get install -y language-pack-en-base software-properties-common
40     LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
41     apt-get update
42
43     DEBIAN_FRONTEND=noninteractive apt-get install -y \
44         php${PHP_VERSION} \
45         php${PHP_VERSION}-cli \
46         php${PHP_VERSION}-dom \
47         php${PHP_VERSION}-curl \
48         php${PHP_VERSION}-fpm \
49         php${PHP_VERSION}-mbstring \
50         php${PHP_VERSION}-xdebug
51
52     update-alternatives --set php /usr/bin/php${PHP_VERSION}
53 fi
54
55 PHPVER=$(php -r 'echo implode(".",array_slice(explode(".",PHP_VERSION),0,2));' 2>/dev/null)
56
57 configure_php_ini /etc/php/${PHPVER}/fpm/php.ini
58
59 # use a nice name for the php-fpm service, so that it does not depend on php version running
60 service "php${PHPVER}-fpm" stop
61 ln -s "/etc/init.d/php${PHPVER}-fpm" /etc/init.d/php-fpm
62
63 # @todo shall we configure php-fpm?
64
65 service php-fpm start
66
67 # configure apache
68 a2enconf php${PHPVER}-fpm
69 service apache2 restart