Last active
July 27, 2016 09:51
-
-
Save friedemannsommer/e5e1aaa0ee7945fa6284 to your computer and use it in GitHub Desktop.
This file contains 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 | |
# Some help from the various places like these. | |
# http://www.zimuel.it/install-php-7/ | |
# http://www.hashbangcode.com/blog/compiling-and-installing-php7-ubuntu | |
# https://gist.github.com/m1st0/1c41b8d0eb42169ce71a | |
sudo apt-get update | |
sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password password development' | |
sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password development' | |
sudo apt-get install libldap2-dev \ | |
libldap-2.4-2 \ | |
libtool \ | |
libzip-dev \ | |
lbzip2 \ | |
libxml2-dev \ | |
bzip2 \ | |
re2c \ | |
libbz2-dev \ | |
apache2-dev \ | |
libjpeg-dev \ | |
libxpm-dev \ | |
libxpm-dev \ | |
libgmp-dev \ | |
libgmp3-dev \ | |
libmcrypt-dev \ | |
libmysqlclient-dev \ | |
mysql-server \ | |
mysql-common \ | |
libpspell-dev \ | |
librecode-dev | |
sudo ln -sf /usr/lib/x86_64-linux-gnu/libldap.so /usr/lib/libldap.so | |
sudo ln -sf /usr/lib/x86_64-linux-gnu/liblber.so /usr/lib/liblber.so | |
sudo ln -sf /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h | |
# pull git repo | |
git clone https://github.com/php/php-src | |
cd php-src | |
git checkout PHP-7.1 | |
# fix configure issues. | |
./buildconf | |
# compile options | |
./configure --prefix="/usr/local/php7" \ | |
--with-config-file-path="/etc/php7/apache2" \ | |
--with-config-file-scan-dir="/etc/php7/apache2/conf.d" \ | |
--disable-all \ | |
--enable-bcmath \ | |
--enable-pcntl \ | |
--enable-ftp \ | |
--enable-calendar \ | |
--enable-sysvmsg \ | |
--enable-sysvsem \ | |
--enable-sysvshm \ | |
--enable-wddx \ | |
--enable-intl \ | |
--with-iconv \ | |
--with-gmp \ | |
--with-pspell \ | |
--with-jpeg-dir="/usr" \ | |
--with-png-dir="/usr" \ | |
--with-zlib-dir="/usr" \ | |
--with-xpm-dir="/usr" \ | |
--with-freetype-dir="/usr" \ | |
--with-t1lib="/usr" \ | |
--enable-gd-native-ttf \ | |
--enable-gd-jis-conv \ | |
--with-openssl \ | |
--with-pdo-mysql="/usr" \ | |
--with-gettext="/usr" \ | |
--with-zlib="/usr" \ | |
--with-bz2 \ | |
--with-mysqli="/usr/bin/mysql_config" \ | |
--with-ldap \ | |
--with-openssl \ | |
--with-gd \ | |
--enable-gd-native-ttf \ | |
--enable-intl \ | |
--enable-mbstring \ | |
--with-mcrypt \ | |
--with-mysqli="mysqlnd" \ | |
--with-zlib \ | |
--with-bz2 \ | |
--enable-exif \ | |
--with-pdo-mysql="mysqlnd" \ | |
--with-libedit \ | |
--enable-zip \ | |
--enable-pdo \ | |
--enable-sockets \ | |
--with-pcre-regex \ | |
--with-tsrm-pthreads \ | |
--enable-fpm \ | |
--with-fpm-user="www-data" \ | |
--with-fpm-group="www-data" \ | |
--enable-cli \ | |
--enable-maintainer-zts \ | |
--enable-opcache \ | |
--enable-simplexml \ | |
--enable-json \ | |
--enable-hash \ | |
--enable-session \ | |
--enable-xml \ | |
--enable-wddx \ | |
--with-xsl \ | |
--with-enchant \ | |
--with-gettext \ | |
--with-curl \ | |
--with-readline | |
# Cleanup for previous failures. | |
sudo make clean | |
# Using as many threads as possible. | |
sudo make -j `cat /proc/cpuinfo | grep processor | wc -l` | |
# Install it accoridng to the configured path. | |
sudo make install | |
# It's own make script said to do this, but it didn't do much on my system. | |
libtool --finish ./libs | |
# Work on non-threaded version as compiled for now. | |
sudo a2dismod mpm_worker | |
sudo a2enmod mpm_event | |
# Since it is built with axps2, it sets things up correctly. | |
sudo a2enmod php7 | |
# Restart Apache if all went well. | |
sudo systemctl restart apache2 | |
# Update the paths on the system according to Ubuntu. Can be later removed and switched back. | |
sudo update-alternatives --install /usr/bin/php php /usr/local/php7/bin/php 50 \ | |
--slave /usr/share/man/man1/php.1.gz php.1.gz \ | |
/usr/local/php7/php/man/man1/php.1 | |
# ask user which version to use | |
sudo update-alternatives --config php |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment