Skip to content

Instantly share code, notes, and snippets.

@ekinhbayar
Created June 3, 2016 21:41
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ekinhbayar/972524e03755c4a218fc909176ecf676 to your computer and use it in GitHub Desktop.
Save ekinhbayar/972524e03755c4a218fc909176ecf676 to your computer and use it in GitHub Desktop.
Bash script to install PHP 7.0 on Debian 8 (assumes apache2 is installed)
#!/bin/bash
cd "$(dirname "$0")"
# ADD SOURCES
echo "# jessie all" >> /etc/apt/sources.list
echo "deb http://packages.dotdeb.org jessie all" >> /etc/apt/sources.list
echo "deb-src http://packages.dotdeb.org jessie all" >> /etc/apt/sources.list
wget https://www.dotdeb.org/dotdeb.gpg
apt-key add dotdeb.gpg
rm -rf dotdeb.gpg
sudo apt-get update
echo -e "... Installing Aptitude Packages ...\n"
# DEPENDENCIES
sudo apt-get install -y \
build-essential \
pkg-config \
git-core \
autoconf \
bison \
libxml2-dev \
libbz2-dev \
libmcrypt-dev \
libicu-dev \
libssl-dev \
libcurl4-openssl-dev \
libltdl-dev \
libjpeg-dev \
libpng-dev \
libpspell-dev \
libreadline-dev \
libpq-dev \
libxslt1-dev
sleep 2
echo -e "... Installing PHP 7.0 :) ...\n"
# PHP 7.0 GOODIES
sudo apt-get install -y \
php7.0 \
php7.0-dev \
php7.0-cgi \
php7.0-cli \
php7.0-fpm \
php7.0-curl \
php7.0-gd \
php7.0-json \
php7.0-mcrypt \
php7.0-mysql \
php7.0-sqlite3 \
php7.0-pgsql \
php7.0-xml \
php7.0-imap \
php7.0-intl \
php7.0-ldap \
php7.0-odbc \
php7.0-opcache \
php7.0-readline \
php7.0-pspell \
php7.0-apcu \
php7.0-bz2 \
php7.0-xsl \
php-gettext \
libapache2-mod-php7.0
INSTALL_SUCCESS=$?
# VERIFY INSTALLATION
if [ ! $INSTALL_SUCCESS -eq 0 ]; then
echo "There was an error while installing!"
else
# INSTALL PEAR
wget http://pear.php.net/go-pear.phar
php go-pear.phar
rm -rf go-pear.phar
# UPDATE ERROR
sed -i "s,error_reporting =.*,error_reporting = E_ALL,g" /etc/php/7.0/apache2/php.ini
sed -i "s,display_errors =.*,display_errors = On,g" /etc/php/7.0/apache2/php.ini
sed -i "s,;default_charset =.*,default_charset = \"UTF-8\",g" /etc/php/7.0/apache2/php.ini
# ENABLE <?=
sed -i "s,short_open_tag =.*,short_open_tag = On,g" /etc/php/7.0/apache2/php.ini
# Just in case, disable apache2 module for PHP5 and enable PHP7.0 module
a2dismod php5
a2enmod php7.0
service apache2 restart
fi
@ekinhbayar
Copy link
Author

ekinhbayar commented Jun 3, 2016

The following NEW packages will be installed:
autopoint debhelper gettext intltool-debian libapache2-mod-php5 libapache2-mod-php7.0 libapparmor1 libasprintf-dev libc-client2007e libgettextpo-dev libgettextpo0
libmail-sendmail-perl libodbc1 libonig2 libpcre3-dev libpcrecpp0 libqdbm14 libsys-hostname-long-perl libunistring0 libxmlrpc-epi0 mlock php-common php-gettext
php-pear php-readline php5 php5-cli php5-common php5-json php5-readline php7.0 php7.0-apcu php7.0-bz2 php7.0-cgi php7.0-cli php7.0-common php7.0-curl php7.0-dev
php7.0-fpm php7.0-gd php7.0-imap php7.0-intl php7.0-json php7.0-ldap php7.0-mcrypt php7.0-mysql php7.0-odbc php7.0-opcache php7.0-pgsql php7.0-pspell
php7.0-readline php7.0-sqlite3 php7.0-xmlrpc php7.0-xsl pkg-php-tools po-debconf shtool

Not sure what causes the php5 stuff inclusion, but this is why I disable apache2 module for PHP5 and enable PHP7.0 module :
a2dismod php5
a2enmod php7.0
service apache2 restart

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment