6 # @todo make this idempotent so that it can be run multiple times in a row
7 echo "cgi.fix_pathinfo = 1" >> "${1}"
8 echo "always_populate_raw_post_data = -1" >> "${1}"
10 # @todo this only disables xdebug for CLI. To do the same for the FPM config as well, should we use instead `phpdismod` ?
11 XDEBUG_INI=$(php -i | grep xdebug.ini | grep -v '=>' | head -1)
12 if [ "$XDEBUG_INI" != "" ]; then
13 XDEBUG_INI="$(echo "$XDEBUG_INI" | tr -d ',')"
14 mv "$XDEBUG_INI" "$XDEBUG_INI.bak";
18 if ! which php >/dev/null; then
22 DEBIAN_VERSION="$(lsb_release -s -c)"
24 if [ "${PHP_VERSION}" = default ]; then
25 if [ "${DEBIAN_VERSION}" = jessie -o "${DEBIAN_VERSION}" = precise -o "${DEBIAN_VERSION}" = trusty ]; then
30 # @todo check for mbstring presence in php5 (jessie) packages
31 DEBIAN_FRONTEND=noninteractive apt-get install -y \
35 php${PHPSUFFIX}-curl \
37 php${PHPSUFFIX}-mbstring \
38 php${PHPSUFFIX}-xdebug
40 DEBIAN_FRONTEND=noninteractive apt-get install -y language-pack-en-base software-properties-common
41 LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
44 DEBIAN_FRONTEND=noninteractive apt-get install -y \
46 php${PHP_VERSION}-cli \
47 php${PHP_VERSION}-dom \
48 php${PHP_VERSION}-curl \
49 php${PHP_VERSION}-fpm \
50 php${PHP_VERSION}-mbstring \
51 php${PHP_VERSION}-xdebug
53 update-alternatives --set php /usr/bin/php${PHP_VERSION}
56 PHPVER=$(php -r 'echo implode(".",array_slice(explode(".",PHP_VERSION),0,2));' 2>/dev/null)
58 configure_php_ini /etc/php/${PHPVER}/fpm/php.ini
60 # use a nice name for the php-fpm service, so that it does not depend on php version running
61 service "php${PHPVER}-fpm" stop
62 ln -s "/etc/init.d/php${PHPVER}-fpm" /etc/init.d/php-fpm
64 # @todo shall we configure php-fpm?
69 a2enconf php${PHPVER}-fpm
70 service apache2 restart
73 if [ -n "$TRAVIS" ]; then
75 # php is already installed, via phpenv
77 PHPVER=$(phpenv version-name)
79 configure_php_ini ~/.phpenv/versions/${PHPVER}/etc/php.ini
82 cp ~/.phpenv/versions/${PHPVER}/etc/php-fpm.conf.default ~/.phpenv/versions/${PHPVER}/etc/php-fpm.conf
84 # work around travis issue #3385
85 if [ -d ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d ]; then
86 if [ "$TRAVIS_PHP_VERSION" = "7.0" -a -n "$(ls -A ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d)" ]; then
87 cp ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf.default ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf
89 if [ "$TRAVIS_PHP_VERSION" = "7.1" -a -n "$(ls -A ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d)" ]; then
90 cp ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf.default ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf
92 if [ "$TRAVIS_PHP_VERSION" = "7.2" -a -n "$(ls -A ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d)" ]; then
93 cp ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf.default ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf
95 if [ "$TRAVIS_PHP_VERSION" = "7.3" -a -n "$(ls -A ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d)" ]; then
96 cp ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf.default ~/.phpenv/versions/${PHPVER}/etc/php-fpm.d/www.conf
100 ~/.phpenv/versions/${PHPVER}/sbin/php-fpm
102 # @todo configure apache for php-fpm via mod_proxy_fcgi
103 a2enconf php${PHPVER}-fpm
104 service apache2 restart