Last active
December 22, 2020 19:09
-
-
Save vsyrovat/57dc3c68679dbf3c4b9bbcefed40ee7b to your computer and use it in GitHub Desktop.
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 | |
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