Last active
February 2, 2017 12:08
-
-
Save Abukamel/37cf67198ab72c7cb6ae8f6ecefd6623 to your computer and use it in GitHub Desktop.
Install PHP version 7 from source on Ubuntu 14.04+
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
#!/usr/bin/env bash | |
# Names of latest versions of PHP package | |
export VERSION_PHP=php-5.6.26 | |
# PHP mirror URL | |
export SOURCE_PHP=http://php.net/get/${VERSION_PHP}.tar.bz2/from/this/mirror | |
# Path to local build | |
export BUILD_DIR=/usr/local/src/php | |
function setup() { | |
# create and clean build directory | |
mkdir -p ${BUILD_DIR} | |
rm -Rf ${BUILD_DIR}/* | |
# install build environment tools | |
apt -y install supervisor \ | |
build-essential \ [109/3262]│ | |
zlib1g-dev \ │ | |
libpcre3 \ │ | |
libpcre3-dev \ │ | |
unzip \ │ | |
libxpm-dev \ │ | |
libgmp-dev \ │ | |
libxmp-dev \ │ | |
libjpeg-dev \ │ | |
libpng12-dev \ │ | |
libcurl4-gnutls-dev \ │ | |
libbz2-dev \ │ | |
libxml2-dev \ │ | |
libfreetype6-dev \ │ | |
libmcrypt-dev \ │ | |
libxml2-dev \ │ | |
libbz2-dev \ │ | |
libjpeg-dev \ │ | |
libx11-dev \ │ | |
libgd-dev \ │ | |
libmcrypt-dev \ │ | |
libmysqld-dev \ │ | |
libmysqlclient-dev \ │ | |
libmhash-dev \ │ | |
libevent-dev \ │ | |
libc-client-dev \ │ | |
zlib1g-dev \ │ | |
libpng-dev \ │ | |
libxslt-dev \ │ | |
libfreetype6-dev \ │ | |
libgmp-dev \ │ | |
libxml2-dev \ │ | |
libpcre3-dev \ │ | |
libbz2-dev \ │ | |
libjpeg-dev \ │ | |
libxpm-dev \ │ | |
libfreetype6-dev \ │ | |
libmysqlclient-dev \ │ | |
libt1-dev \ │ | |
libgd2-xpm-dev \ │ | |
libgmp-dev \ │ | |
libsasl2-dev \ │ | |
libmhash-dev \ │ | |
unixodbc-dev \ │ | |
freetds-dev \ │ | |
libpspell-dev \ │ | |
libsnmp-dev \ │ | |
libtidy-dev \ │ | |
libmcrypt-dev | |
} | |
function download_sources() { | |
# todo: verify checksum / integrity of downloads! | |
echo "Download sources" | |
pushd ${BUILD_DIR} | |
wget ${SOURCE_PHP} -O ${VERSION_PHP}.tar.bz2 | |
popd | |
} | |
function extract_sources() { | |
pushd ${BUILD_DIR} | |
tar xvf ${VERSION_PHP}.tar.bz2 | |
popd | |
} | |
function compile_php() { | |
pushd ${BUILD_DIR}/${VERSION_PHP} | |
make clean | |
./configure \ | |
'--prefix=/usr/local/php7-fpm' \ | |
'--with-mysql' \ | |
'--with-gd' \ | |
'--with-gettext' \ | |
'--with-libdir=lib64' \ | |
'--with-jpeg-dir' \ | |
'--with-zlib' \ | |
'--with-curl' \ | |
'--with-config-file-scan-dir=/usr/local/php7-fpm/lib/php.d' \ | |
'--with-freetype-dir' \ | |
'--with-png-dir' \ | |
'--with-xpm-dir' \ | |
'--enable-gd-native-ttf' \ | |
'--with-mysqli' \ | |
'--with-pdo-mysql' \ | |
'--with-gmp' \ | |
'--enable-ftp' \ | |
'--enable-magic-quotes' \ | |
'--enable-sysvsem' \ | |
'--enable-fpm' \ | |
'--enable-sysvshm' \ | |
'--enable-sysvmsg' \ | |
'--with-kerberos' \ | |
'--enable-shmop' \ | |
'--with-libxml-dir' \ | |
'--enable-xml' \ | |
'--with-mcrypt' \ | |
'--enable-soap' | |
make && make install | |
(/usr/local/php7-fpm/bin/pecl config-set php_ini /usr/local/php7-fpm/lib/php.ini; /usr/local/php7-fpm/bin/pear config-set php_ini /usr/local/php7-fpm/lib/php.ini) && (/usr/local/php7-fpm/bin/pecl config-set temp_dir /root || /usr/local/php7-fpm/bin/pear config-set temp_dir /root) | |
popd | |
# Create supervisord service file | |
} | |
echo "Building ${VERSION_PHP}" | |
setup && download_sources && extract_sources && compile_php | |
retval=$? | |
echo "" | |
if [ $retval -eq 0 ]; then | |
echo "Your php binary is located at /usr/local/php7-fpm/sbin/php7-fpm" | |
else | |
echo "Ooops, build failed. Check output!" | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment