Skip to content

Instantly share code, notes, and snippets.

@kherge
Last active February 12, 2022 12:20
Show Gist options
  • Save kherge/cd0afc542232e1563677 to your computer and use it in GitHub Desktop.
Save kherge/cd0afc542232e1563677 to your computer and use it in GitHub Desktop.
Installs PHPBrew and its dependencies.

PHPBrew Installer

This script is for simplifying the process of installing phpbrew for managing different versions of PHP.

  • The phpbrew.sh script installs dependencies and sets up the current user to use phpbrew.
  • The gd.sh script install the GD extension if you get errors using the usual install command.

Tips

  • On Ubuntu, if you get an error about the gd.so not being loaded, try installing php5-gd first and then reinstall the gd extension. It will install any additional dependencies that were needed and were not available during the first build.
phpbrew ext install gd -- \
--enable-gd-native-ttf \
--with-gd=shared \
--with-freetype-dir=/usr/include/freetype2/freetype \
--with-jpeg-dir=/usr \
--with-libdir=lib/x86_64-linux-gnu \
--with-png-dir=/usr \
--with-vpx-dir=/usr \
--with-xpm-dir=/usr
#!/usr/bin/env bash
# make sure we are root
if [ 'root' != "$(whoami)" ]; then
echo "You need to be root to run this script."
exit 1
fi
# configure owner
CHOWN_USER=$SUDO_USER
if [ '' = "$CHOWN_USER" ]; then
CHOWN_USER=$USER
fi
CHOWN_GROUP=$(id "$SUDO_USER" -gn)
CHOWN_HOME="/home/$CHOWN_USER"
###
# Require that the command successfully exit.
#
# @param string ARG... The command line argument.
##
function must
{
"$@"
STATUS=$?
if [ 0 -ne $STATUS ]; then
exit $STATUS
fi
}
# install dependencies
#must apt-get build-dep php5
must apt-get install -y autoconf automake autotools-dev bison build-essential chrpath comerr-dev debhelper dh-apparmor dpkg-dev flex freetds-common freetds-dev g++ g++-4.8 icu-devtools krb5-multidev language-pack-de language-pack-de-base lcov libaio1 libapr1 libapr1-dev libaprutil1 libaprutil1-dev libaspell-dev libbison-dev libbsd-dev libbz2-dev libct4 libcurl4-openssl-dev libdb-dev libdb5.3-dev libdbd-mysql-perl libdbi-perl libedit-dev libenchant-dev libevent-core-2.0-5 libevent-dev libevent-extra-2.0-5 libevent-openssl-2.0-5 libevent-pthreads-2.0-5 libexpat1-dev libfl-dev libfontconfig1-dev libfreetype6-dev libgcrypt11-dev libgd-dev libglib2.0-dev libgmp-dev libgmp3-dev libgmpxx4ldbl libgnutls-dev libgnutlsxx27 libgpg-error-dev libgssrpc4 libice-dev libicu-dev libidn11-dev libjbig-dev libjpeg-dev libjpeg-turbo8-dev libjpeg8-dev libkadm5clnt-mit9 libkadm5srv-mit9 libkdb5-7 libkrb5-dev libldap2-dev libltdl-dev liblzma-dev libmagic-dev libmhash-dev libmysqlclient-dev libmysqlclient18 libodbc1 libp11-kit-dev libpam0g-dev libpcre3-dev libpcrecpp0 libpng12-dev libpq-dev libpq5 libpspell-dev libpthread-stubs0-dev librecode-dev librecode0 librtmp-dev libsasl2-dev libsctp-dev libsctp1 libsensors4-dev libsigsegv2 libsm-dev libsnmp-dev libsqlite3-dev libssl-dev libstdc++-4.8-dev libsybdb5 libsystemd-daemon-dev libtasn1-6-dev libterm-readkey-perl libtidy-0.99-0 libtidy-dev libtiff5-dev libtiffxx5 libtinfo-dev libtool libvpx-dev libwrap0-dev libx11-dev libxau-dev libxcb1-dev libxdmcp-dev libxml2-dev libxmltok1 libxmltok1-dev libxpm-dev libxslt1-dev libxt-dev m4 mysql-client-5.5 mysql-client-core-5.5 mysql-common odbcinst odbcinst1debian2 po-debconf re2c systemtap-sdt-dev unixodbc unixodbc-dev uuid-dev x11proto-core-dev x11proto-input-dev x11proto-kb-dev xorg-sgml-doctools xtrans-dev zlib1g-dev
must apt-get install -y php5 php5-dev php-pear autoconf automake curl build-essential libxslt1-dev re2c libxml2 libxml2-dev php5-cli bison libbz2-dev libreadline-dev
must apt-get install -y libfreetype6 libfreetype6-dev libpng12-0 libpng12-dev libjpeg-dev libjpeg8-dev libjpeg8 libgd-dev libgd3 libxpm4 libltdl7 libltdl-dev
must apt-get install -y libssl-dev openssl
must apt-get install -y gettext libgettextpo-dev libgettextpo0
must apt-get install -y libicu-dev
must apt-get install -y libmhash-dev libmhash2
must apt-get install -y libmcrypt-dev libmcrypt4
must apt-get install -y mysql-client libmysqlclient-dev libmysqld-dev
must apt-get install -y postgresql-client postgresql-contrib
# download phpbrew
must curl -L -O https://github.com/phpbrew/phpbrew/raw/master/phpbrew
# set up phpbrew
must mv phpbrew /usr/local/bin
must chmod 755 /usr/local/bin/phpbrew
# replace home path
HOME=$CHOWN_HOME
# install phpbrew
must phpbrew init
echo >> ~/.bashrc
echo '. ~/.phpbrew/bashrc' >> ~/.bashrc
# fix permissions
chown -R "$CHOWN_USER:$CHOWN_GROUP" ~/.phpbrew
# phpbrew can't find gmp.h unless its in a specific location
if [ ! -f /usr/include/gmp.h ] && [ -f /usr/include/x86_64-linux-gnu/gmp.h ]; then
ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment