# define default php version for this project
if [ -z "$projectPhpForceVersion" ]
then
requirePhpVersion="{{ constant('App\\Service\\ProjectManager::CONFIG_PHP_DEFAULT_VERSION') }}"
requirePhpExt=(common cli json mysql zip gd mbstring curl xml)
else
requirePhpVersion="$projectPhpForceVersion"
requirePhpExt=(common cli mysql zip gd mbstring curl xml)
fi
phpCliPath="/usr/bin/php$requirePhpVersion"
ppaIsPresent=$(apt-cache search php$requirePhpVersion)
if [ -z "$ppaIsPresent" ]
then
sudo apt -y install lsb-release apt-transport-https ca-certificates
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
# todo : temporary use impish (Ub 21.04) source for Hirsute (21.10)
# @see: http://ppa.launchpad.net/ondrej/php/ubuntu/dists/
currentRelease=$(lsb_release -sc)
if [ "impish" == "$currentRelease" ]
then
sudo add-apt-repository universe -y
echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu/ hirsute main" | sudo tee /etc/apt/sources.list.d/php.list
else
echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu/ $currentRelease main" | sudo tee /etc/apt/sources.list.d/php.list
fi
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4F4EA0AAE5267A6C
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php -y > /dev/null
sudo apt-get update > /dev/null 2>&1
fi
# install require versions
packages=(php$requirePhpVersion ${requirePhpExt[@]/#/php$requirePhpVersion-})
apt-check "${packages[@]}"
# install fpm after for non default usage
apt-check php${requirePhpVersion}-fpm
sudo service php${requirePhpVersion}-fpm start
# install composer if not present
if [ ! -f "/usr/local/bin/composer" ]
then
wget -O composer-setup.php https://getcomposer.org/installer
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
rm composer-setup.php
fi
# set php version
echo "Switch PHP to version $requirePhpVersion";
echo "sudo update-alternatives --set php /usr/bin/php$requirePhpVersion"
sudo update-alternatives --set php /usr/bin/php$requirePhpVersion
sudo a2enmod proxy_fcgi setenvif rewrite