Last active
September 23, 2016 15:27
-
-
Save arthurprogramming/6a68c6152a9e4650ab34 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
if [ ! -z $(which whiptail) ]; | |
then | |
DIALOGPROGRAM="whiptail" | |
elif [ ! -z $(which dialog) ]; | |
then | |
DIALOGPROGRAM="dialog" | |
else | |
echo -e "You need 'whiptail' or 'dialog' to use this script" | |
exit 1 | |
fi | |
if [ $UID -ne 0 ]; | |
then | |
$DIALOGPROGRAM --msgbox "You need run this script with sudo!" 10 60 | |
exit 1 | |
elif [ $HOME == "/root" ]; | |
then | |
$DIALOGPROGRAM --msgbox "Please, run with sudo, but not as root user!" 10 60 | |
exit 1 | |
fi | |
if [ -z $LOGFILE ]; | |
then | |
LOGFILE="/tmp/myenvironment-`date +'%Y-%m-%d_%H-%M-%S'`".log | |
touch $LOGFILE | |
$DIALOGPROGRAM --msgbox "To see what's going on:\n tail -f $LOGFILE" 10 60 | |
fi | |
{ | |
sudo apt-get build-dep php5 -y >> $LOGFILE 2>> $LOGFILE | |
PACKAGES=("php5-dev" "php-pear" "autoconf" "automake" "curl" "build-essential" "libxslt1-dev" "re2c" "libxml2" "libxml2-dev" "php5-cli" "bison" "libbz2-dev" "libreadline-dev" "libfreetype6" "libfreetype6-dev" "libpng12-0" "libpng12-dev" "libjpeg-dev" "libjpeg8-dev" "libjpeg8" "libgd-dev" "libgd3" "libxpm4" "libltdl7" "libltdl-dev" "libssl-dev" "openssl" "gettext" "libgettextpo-dev" "libgettextpo0" "libicu-dev" "libmhash-dev" "libmhash2" "libmcrypt-dev" "libmcrypt4") | |
NUMPACKAGES=${#PACKAGES[@]} | |
PROGRESS=$((100 / $NUMPACKAGES)) | |
START=0 | |
for PACKAGE in ${PACKAGES[@]} | |
do | |
sudo apt-get install $PACKAGE -y >> $LOGFILE 2>> $LOGFILE | |
START=$(($START+1)) | |
echo $START | |
done | |
echo 100 | |
sleep 1 | |
} > >($DIALOGPROGRAM --gauge "Installing php requirements..." 6 50 0) | |
$DIALOGPROGRAM --msgbox "Done" 8 30 | |
{ | |
echo 25 | |
curl -sL -O https://github.com/phpbrew/phpbrew/raw/master/phpbrew >> $LOGFILE 2>&1 | |
echo 75 | |
chmod +x phpbrew >> $LOGFILE 2>> $LOGFILE | |
sudo mv phpbrew /usr/bin/phpbrew >> $LOGFILE 2>> $LOGFILE | |
phpbrew init >> $LOGFILE | |
echo "source ~/.phpbrew/bashrc" >> ~/.bashrc | |
source ~/.bashrc | |
phpbrew update >> $LOGFILE | |
echo 99 | |
sleep 1 | |
} > >($DIALOGPROGRAM --gauge "Installing phpbrew..." 6 50 0) | |
$DIALOGPROGRAM --msgbox "Done" 8 30 | |
ALLVERSIONS=`phpbrew known | grep -o '[0-9]\.[0-9]\.[0-9]\{2\}'` | |
TITLE="Versions available" | |
MENU="Choose the versions you wanna install" | |
OPTIONS=() | |
for VERSIONPHP in $ALLVERSIONS; | |
do | |
OPTIONS+=($VERSIONPHP $VERSIONPHP "OFF") | |
done | |
PHPVERSIONS=$($DIALOGPROGRAM --title "$TITLE" --checklist "$MENU" 30 30 16 ${OPTIONS[@]} 3>&1 1>&2 2>&3) | |
FPMPORT=9001 | |
for VERSIONPHP in ${PHPVERSIONS[@]} | |
do | |
VERSIONPHP=${VERSIONPHP#'"'} | |
VERSIONPHP=${VERSIONPHP%'"'} | |
{ | |
echo 5 | |
sleep 1 | |
phpbrew install $VERSIONPHP +default +fpm +dbs +mb +iconv +mcrypt +soap >> $LOGFILE 2>> $LOGFILE | |
echo 50 | |
sed -i.bak s/127\.0\.0\.1:900./127\.0\.0\.1:$FPMPORT/g ~/.phpbrew/php/php-$VERSIONPHP/etc/php-fpm.conf >> $LOGFILE 2>> $LOGFILE | |
. ~/.phpbrew/bashrc | |
phpbrew use $VERSIONPHP >> $LOGFILE 2>> $LOGFILE | |
phpbrew ext install xdebug >> $LOGFILE 2>> $LOGFILE | |
echo 75 | |
echo 99 | |
sleep 1 | |
} > >($DIALOGPROGRAM --gauge "Installing php version $VERSIONPHP" 6 50 0) | |
$DIALOGPROGRAM --msgbox "Done.\nFpm for $VERSIONPHP will be running at port $FPMPORT" 8 60 | |
FPMPORT=$(($FPMPORT+1)) | |
done | |
phpbrew off >> $LOGFILE | |
$DIALOGPROGRAM --msgbox "To use a version (you should create an alias):\n \ | |
phpbrew use 5.5.17\nTo start fpm for this version:\n \ | |
phpbrew fpm start" 10 58 | |
clear |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment