3 # Has to be run as admin
5 # @todo make it optional to install xdebug. It is fe. missing in sury's ppa for Xenial
6 # @todo make it optional to install fpm. It is not needed for the cd workflow
7 # @todo make it optional to disable xdebug ?
12 # note: these settings are not required for cli config
13 echo "cgi.fix_pathinfo = 1" >> "${1}"
14 echo "always_populate_raw_post_data = -1" >> "${1}"
16 # we disable xdebug for speed for both cli and web mode
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 # on GHA runners ubuntu version, php 7.4 and 8.0 seem to be preinstalled. Remove them if found
41 for PHP_CURRENT in $(dpkg -l | grep -E 'php.+-common' | awk '{print $2}'); do
42 if [ "${PHP_CURRENT}" != "php${PHP_VERSION}-common" ]; then
43 apt-get purge -y "${PHP_CURRENT}"
47 DEBIAN_FRONTEND=noninteractive apt-get install -y language-pack-en-base software-properties-common
48 LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
51 DEBIAN_FRONTEND=noninteractive apt-get install -y \
53 php${PHP_VERSION}-cli \
54 php${PHP_VERSION}-dom \
55 php${PHP_VERSION}-curl \
56 php${PHP_VERSION}-fpm \
57 php${PHP_VERSION}-mbstring \
58 php${PHP_VERSION}-xdebug
60 update-alternatives --set php /usr/bin/php${PHP_VERSION}
63 PHPVER=$(php -r 'echo implode(".",array_slice(explode(".",PHP_VERSION),0,2));' 2>/dev/null)
65 configure_php_ini /etc/php/${PHPVER}/fpm/php.ini
67 # use a nice name for the php-fpm service, so that it does not depend on php version running. Try to make that work
68 # both for docker and VMs
69 service "php${PHPVER}-fpm" stop
70 if [ -f "/etc/init.d/php${PHPVER}-fpm" ]; then
71 ln -s "/etc/init.d/php${PHPVER}-fpm" /etc/init.d/php-fpm
73 if [ -f "/lib/systemd/system/php${PHPVER}-fpm.service" ]; then
74 ln -s "/lib/systemd/system/php${PHPVER}-fpm.service" /lib/systemd/system/php-fpm.service
75 if [ ! -f /.dockerenv ]; then
76 systemctl daemon-reload
80 # @todo shall we configure php-fpm?
84 # configure apache (if installed)
85 if [ -n "$(dpkg --list | grep apache)" ]; then
86 a2enconf php${PHPVER}-fpm
87 service apache2 restart