#!/bin/bash # EXT=php7 TCZ=/tmp/$EXT/TCZ sudo rm -rf /tmp/$EXT for a in compiletc bash file squashfs-tools \ apache2.4-dev apache2.4 apr-dev apr apr-util-dev apr-util \ openldap-dev openldap libxml2-dev recode-dev recode net-snmp-dev net-snmp \ libgd-dev libgd libmcrypt-dev libmcrypt curl-dev curl db-dev \ enchant-dev mariadb-10.1-dev libwebp libwebp-dev mariadb-10.1 \ libXpm-dev libXpm libgd-dev libgd libvpx-dev gmp-dev gmp \ icu-dev cyrus-sasl-dev cyrus-sasl libxslt-dev libxslt \ fontconfig-dev libXft-dev xorg-server-dev libltdl \ postgresql-9.5 postgresql-9.5-dev perl5 unixODBC unixODBC-dev \ tzdata do tce-load -i $a done # configure will fail if Apache httpd throws an error when trying to start # make sure that /usr/local/etc/httpc/httpd.conf is correct # Oracle and LDAP have name conflicts in their header files # Compile with LDAP first, then make a second pass adding OCI # don't bother compiling executables on first pass # apply fixes: # support Berkeley DB 6 # busybox expr lack of support for -- meaning no more options # phpdbg libraries are not added passed to the linker # patch -Np0 -i ../php-configure.patch for a in $(grep -r -l 'DB_VERSION_MAJOR == 5') do sed -i 's/DB_VERSION_MAJOR == 5/DB_VERSION_MAJOR >= 5/' $a done sed -i 's/Berkeley DB (4|5)/Berkeley DB (4|5|6)/' ext/dba/tests/dba_db4_handlers.phpt sed -i 's/expr -- /expr /g' configure grep -q 'PHPDBG_EXTRA_LIBS -lreadline -lncurses' configure || \ sed -i '\#BUILD_BINARY="sapi/phpdbg/phpdbg"#i \ PHPDBG_EXTRA_LIBS="$PHPDBG_EXTRA_LIBS -lreadline -lncurses"\ ' configure export CC="gcc -mtune=generic -Os -pipe" export CXX="g++ -mtune=generic -Os -pipe -fno-exceptions" echo $PATH | grep -q mysql || export PATH=$PATH:/usr/local/mysql/bin:/usr/local/pgsql95/bin:/usr/local/oracle/client/12.1 ./configure \ --prefix=/usr/local \ --sysconfdir=/usr/local/etc \ --localstatedir=/var \ --mandir=/usr/local/share/man \ --with-config-file-path=/usr/local/etc/httpd/php7/ \ --with-config-file-scan-dir=/usr/local/etc/httpd/php7/extensions/ \ --enable-shared \ --with-apxs2=/usr/local/bin/apxs \ --enable-dmalloc=shared \ --enable-libgcc \ --disable-cgi \ --disable-cli \ --disable-phpdbg \ --disable-fpm \ --without-pear \ --with-system-ciphers \ --enable-pdo=shared \ --disable-embed \ --disable-inline-optimization \ --disable-mysqlnd \ --disable-rpath \ --disable-static \ --enable-bcmath=shared \ --with-bz2=shared,/usr/local \ --enable-calendar=shared \ --enable-ctype=shared \ --with-curl=shared,/usr/local \ --enable-dba=shared \ --with-db4=shared,/usr/local \ --without-cdb \ --enable-dom=shared \ --with-enchant=shared,/usr/local \ --enable-exif=shared \ --enable-fileinfo=shared \ --enable-filter \ --with-freetype-dir=/usr/local \ --enable-ftp=shared \ --with-gd=shared,/usr/local \ --enable-gd-jis-conv \ --enable-gd-native-ttf \ --with-gdbm=shared,/usr/local \ --with-gettext=shared,/usr/local \ --with-gmp=shared,/usr/local \ --enable-hash=shared \ --with-iconv=shared \ --with-icu-dir=/usr/local \ --enable-intl=shared \ --with-jpeg-dir=/usr/local \ --enable-json=shared \ --with-ldap-sasl=/usr/local \ --with-ldap=shared,/usr/local \ --with-libxml-dir=/usr/local \ --enable-libxml \ --enable-mbstring=shared \ --with-mcrypt=shared,/usr/local \ --with-mhash=shared,/usr/local \ --with-mysqli=shared,/usr/local/mysql/bin/mysql_config \ --with-pdo-mysql=shared,/usr/local/mysql \ --enable-opcache=shared \ --disable-opcache-file \ --with-openssl-dir=/usr/local \ --with-openssl=shared,/usr/local \ --enable-pcntl=shared \ --with-pcre-regex=/usr/local \ --with-unixODBC=shared,/usr/local \ --with-pdo-odbc=shared,unixODBC \ --with-pgsql=shared,/usr/local/pgsql95 \ --with-pdo-pgsql=shared,/usr/local/pgsql95 \ --enable-phar=shared \ --enable-phpdbg-webhelper=shared \ --with-png-dir=/usr/local \ --enable-posix=shared \ --with-readline=shared,/usr/local \ --with-recode=shared,/usr/local \ --enable-session=shared \ --enable-shmop=shared \ --enable-simplexml=shared \ --with-snmp=shared,/usr/local \ --enable-soap=shared \ --enable-sockets=shared \ --with-sqlite3=shared,/usr/local \ --with-pdo-sqlite=shared,/usr/local \ --enable-sysvmsg=shared \ --enable-sysvsem=shared \ --enable-sysvshm=shared \ --enable-tokenizer=shared \ --with-tsrm-pthreads \ --enable-wddx=shared \ --with-webp-dir=/usr/local \ --enable-xml \ --enable-xmlreader=shared \ --with-xmlrpc=shared \ --enable-xmlwriter=shared \ --with-xpm-dir=/usr/local \ --with-xsl=shared,/usr/local \ --enable-zend-signals \ --enable-zip=shared \ --with-zlib-dir=/usr \ --with-zlib=shared,/usr \ || exit make || exit ./configure \ --prefix=/usr/local \ --sysconfdir=/usr/local/etc \ --localstatedir=/var \ --mandir=/usr/local/share/man \ --with-config-file-path=/usr/local/etc/httpd/php7/ \ --with-config-file-scan-dir=/usr/local/etc/httpd/php7/extensions/ \ --enable-shared \ --with-apxs2=/usr/local/bin/apxs \ --enable-dmalloc=shared \ --enable-libgcc \ --enable-cgi \ --enable-cli \ --enable-phpdbg \ --enable-fpm \ --with-pear=shared,/usr/local/lib/php/pear \ --with-system-ciphers \ --enable-pdo=shared \ --disable-embed \ --disable-inline-optimization \ --disable-mysqlnd \ --disable-rpath \ --disable-static \ --enable-bcmath=shared \ --with-bz2=shared,/usr/local \ --enable-calendar=shared \ --enable-ctype=shared \ --with-curl=shared,/usr/local \ --enable-dba=shared \ --with-db4=shared,/usr/local \ --without-cdb \ --enable-dom=shared \ --with-enchant=shared,/usr/local \ --enable-exif=shared \ --enable-fileinfo=shared \ --enable-filter \ --with-freetype-dir=/usr/local \ --enable-ftp=shared \ --with-gd=shared,/usr/local \ --enable-gd-jis-conv \ --enable-gd-native-ttf \ --with-gdbm=shared,/usr/local \ --with-gettext=shared,/usr/local \ --with-gmp=shared,/usr/local \ --enable-hash=shared \ --with-iconv=shared \ --with-icu-dir=/usr/local \ --enable-intl=shared \ --with-jpeg-dir=/usr/local \ --enable-json=shared \ --with-ldap-sasl=/usr/local \ --with-ldap=shared,/usr/local \ --with-libxml-dir=/usr/local \ --enable-libxml \ --enable-mbstring=shared \ --with-mcrypt=shared,/usr/local \ --with-mhash=shared,/usr/local \ --with-mysqli=shared,/usr/local/mysql/bin/mysql_config \ --with-pdo-mysql=shared,/usr/local/mysql \ --enable-opcache=shared \ --disable-opcache-file \ --with-openssl-dir=/usr/local \ --with-openssl=shared,/usr/local \ --enable-pcntl=shared \ --with-pcre-dir=/usr/local \ --with-pcre-regex=/usr/local \ --with-oci8=shared,instantclient,/usr/local/oracle/client/12.1 \ --with-pdo-oci=shared,/usr/local/oracle/client/12.1 \ --with-unixODBC=shared,/usr/local \ --with-pdo-odbc=shared,unixODBC \ --with-pgsql=shared,/usr/local/pgsql95 \ --with-pdo-pgsql=shared,/usr/local/pgsql95 \ --enable-phar=shared \ --enable-phpdbg-webhelper=shared \ --with-png-dir=/usr/local \ --enable-posix=shared \ --with-pspell=shared,/usr/local \ --with-readline=shared,/usr/local \ --with-recode=shared,/usr/local \ --enable-session=shared \ --enable-shmop=shared \ --enable-simplexml=shared \ --with-snmp=shared,/usr/local \ --enable-soap=shared \ --enable-sockets=shared \ --with-sqlite3=shared,/usr/local \ --with-pdo-sqlite=shared,/usr/local \ --enable-sysvmsg=shared \ --enable-sysvsem=shared \ --enable-sysvshm=shared \ --enable-tokenizer=shared \ --with-tsrm-pthreads \ --enable-wddx=shared \ --with-webp-dir=/usr/local \ --enable-xml \ --enable-xmlreader=shared \ --with-xmlrpc=shared \ --enable-xmlwriter=shared \ --with-xpm-dir=/usr/local \ --with-xsl=shared,/usr/local \ --enable-zend-signals \ --enable-zip=shared \ --with-zlib-dir=/usr \ --with-zlib=shared,/usr \ || exit make || exit # make install will complain and die if a copy of the current httpd.conf # file isn't in the install tree in the right place mkdir -p $TCZ-dev/usr/local/etc/httpd cp /usr/local/etc/httpd/httpd.conf $TCZ-dev/usr/local/etc/httpd make install INSTALL_ROOT=$TCZ-dev for a in $(find $TCZ-dev -type f); do file -b $a | grep -q '^ELF .*not stripped$' && strip $a; done rm -rf $TCZ-dev/var rm -rf $TCZ-dev/.[a-z]* rm $TCZ-dev/usr/local/etc/httpd/httpd.conf.bak mkdir -p $TCZ-cli/usr/local/bin mv $TCZ-dev/usr/local/bin/php $TCZ-cli/usr/local/bin mkdir -p $TCZ-cgi/usr/local/bin mv $TCZ-dev/usr/local/bin/php-cgi $TCZ-cgi/usr/local/bin mkdir -p $TCZ-fpm/usr/local/etc mv $TCZ-dev/usr/local/etc/php-fpm* $TCZ-fpm/usr/local/etc mv $TCZ-dev/usr/local/php $TCZ-fpm/usr/local mv $TCZ-dev/usr/local/sbin $TCZ-fpm/usr/local mkdir -p $TCZ-mod/usr/local mv $TCZ-dev/usr/local/etc $TCZ-mod/usr/local mkdir -p $TCZ-mod/usr/local/etc/httpd/php7/extensions cp ~/php.ini-sample $TCZ-mod/usr/local/etc/httpd/php7 mkdir -p $TCZ-mod/usr/local/etc/httpd/original/conf.d cp ~/mod_php7.conf $TCZ-mod/usr/local/etc/httpd/original/conf.d mv $TCZ-dev/usr/local/apache2 $TCZ-mod/usr/local mv $TCZ-mod/usr/local/apache2/modules/libphp7.so $TCZ-mod/usr/local/apache2/modules/mod_php7.so mkdir -p $TCZ-ext/usr/local/lib/php mv $TCZ-dev/usr/local/lib/php/extensions $TCZ-ext/usr/local/lib/php sudo chown -R root.root $TCZ* mksquashfs $TCZ-cli /tmp/$EXT/$EXT-cli.tcz -noappend mksquashfs $TCZ-cgi /tmp/$EXT/$EXT-cgi.tcz -noappend mksquashfs $TCZ-fpm /tmp/$EXT/$EXT-fpm.tcz -noappend mksquashfs $TCZ-mod /tmp/$EXT/$EXT-mod.tcz -noappend mksquashfs $TCZ-ext /tmp/$EXT/$EXT-ext.tcz -noappend mksquashfs $TCZ-dev /tmp/$EXT/$EXT-dev.tcz -noappend