Skip to content

Instantly share code, notes, and snippets.

@vsyrovat
Last active December 22, 2020 19:09
Show Gist options
  • Save vsyrovat/57dc3c68679dbf3c4b9bbcefed40ee7b to your computer and use it in GitHub Desktop.
Save vsyrovat/57dc3c68679dbf3c4b9bbcefed40ee7b to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
set -eo pipefail
#CC=/usr/bin/gcc-8
# CFLAGS="-O3 -pipe -march=native -mtune=generic"
echo "CC=\"$CC\""
echo "CFLAGS=\"$CFLAGS\""
echo "CXXFLAGS=\"$CXXFLAGS\""
echo "MAKEFLAGS=\"$MAKEFLAGS\""
echo "MAKEOPTS=\"$MAKEOPTS\""
if [ $1 == '' ]; then
echo "Error: required php version to install. Example: install-php7.sh 7.4.13"
exit
fi
version="${1}"
v=${version//./ }
patchV=$(echo $v | awk '{print $3}')
minorV=$(echo $v | awk '{print $2}')
majorV=$(echo $v | awk '{print $1}')
phpbrew update
#phpbrew install $1 +default +dbs +pdo +fpm +apxs2 -- --with-libdir=lib/x86_64-linux-gnu
phpbrew install $1 +default +dbs +pdo +fpm -- --with-libdir=lib/x86_64-linux-gnu --with-libxml --with-password-argon2 --with-sodium
source $HOME/.phpbrew/bashrc
phpbrew use $1
( echo "OPCACHE ext:" && phpbrew ext install opcache )
( echo "APCU ext:" && phpbrew ext install apcu )
( echo "GD ext:" && phpbrew ext install gd -- --with-jpeg-dir=/usr --with-png-dir=/usr --with-freetype-dir=/usr --enable-gd-native-ttf --with-xpm-dir=/usr --with-vpx-dir=/usr )
( echo "DBA ext:" && phpbrew ext install dba )
( echo "EXIF ext:" && phpbrew ext install exif )
( echo "FTP ext:" && phpbrew ext install ftp )
( echo "GETTEXT ext:" && phpbrew ext install gettext )
( echo "ICONV ext:" && phpbrew ext install iconv )
( echo "INTL ext:" && phpbrew ext install intl )
( echo "IMAGICK ext:" && phpbrew ext install imagick )
( echo "MONGODB ext:" && phpbrew ext install mongodb )
( echo "REDIS ext:" && phpbrew ext install redis )
( echo "SCRYPT ext:" && phpbrew ext install scrypt )
#( echo "LIBSODIUM ext:" && phpbrew ext install libsodium )
( echo "SOAP ext:" && phpbrew ext install soap )
( echo "TIDY ext:" && phpbrew ext install tidy )
( echo "TIMEZONEDB ext:" && phpbrew ext install timezonedb )
( echo "YAML ext:" && phpbrew ext install yaml )
( echo "AMQP ext:" && phpbrew ext install amqp )
( echo "ZMQ ext:" && git clone https://github.com/zeromq/php-zmq.git /tmp/php-zmq && cd /tmp/php-zmq && phpize && ./configure && make && make install && cd - && rm -rf /tmp/php-zmq && phpbrew ext enable zmq )
( echo "MEMCACHED ext:" && phpbrew ext install memcached )
( echo "IMAP ext:" && PHP_OPENSSL=yes phpbrew ext install imap -- --with-kerberos --with-imap-ssl )
# required: unixodbc-dev
( echo "SQLSRV ext:" && phpbrew ext install sqlsrv )
( echo "PDO_SQLSRV ext:" && phpbrew ext install pdo_sqlsrv )
( echo "XDEBUG ext:" && phpbrew ext install xdebug )
echo "Sane memory_limit"
sed -i 's/^memory_limit\s*=.*$/memory_limit = 6G/g' $HOME/.phpbrew/php/php-$version/etc/php.ini
echo "Enable xDebug in php.ini"
cat >>$HOME/.phpbrew/php/php-$version/etc/php.ini <<EOL
[xdebug]
xdebug.mode=debug
xdebug.start_with_request=trigger
xdebug.client_port=9003
xdebug.max_nesting_level=1000
xdebug.output_dir=/tmp/xdebug
EOL
php -v
phpbrew ext disable xdebug
php -v
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment