#!/bin/bash MAIN_DIR=$(pwd) sudo apt-get update -y && sudo apt-get upgrade -y # Build Essentials sudo apt-get install -y build-essential sudo apt-get install -y libsodium-dev sudo apt-get install -y libonig-dev # Install Dependencies DEPENDENCIES_LIST=( "re2c" "ccache" "mysql-server" "libbz2-dev" "libcurl4-gnutls-dev" "libenchant-dev" "libfreetype6-dev" "libgmp-dev" "libicu-dev" "libjpeg-dev" "libkrb5-dev" "libonig-dev" "libpng-dev" "libpq-dev" "libsasl2-dev" "libsqlite3-dev" "libsodium-dev" "libtidy-dev" "libwebp-dev" "libxml2-dev" "libxpm-dev" "libxslt1-dev" "libzip-dev" "autoconf" "re2c" "bison" "sqlite3" "libsqlite3-dev" "libpq-dev" "libfcgi-dev" "libfcgi0ldbl" "libjpeg-dev" "libpng-dev" "libssl-dev" "libcurl4-openssl-dev" "libxpm-dev" "libgd-dev" "libmysqlclient-dev" "libfreetype6-dev" "libxslt1-dev" "libpspell-dev" "libzip-dev" "libicu-dev" "libldap2-dev" "libxslt-dev" "libssl-dev" "libldb-dev" "libgccjit-10-dev" "libargon2-dev" "zlib1g-dev" "binutils" "libtool" "bison" "re2c" "pkg-config" "make" "autoconf" "automake" ) # Check if the dependencies are installed for DEPENDENCY in "${DEPENDENCIES_LIST[@]}"; do echo "Installing $DEPENDENCY..." sudo apt install -y $DEPENDENCY done # Download PHP source wget http://de2.php.net/distributions/php-8.2.0.tar.gz tar -zxvf php-8.2.0.tar.gz cd php-8.2.0 # Configure PHP sudo make LIBDIR=/usr/lib/$(arch)-linux-gnu install ./buildconf --force sudo ./configure --prefix=/usr/local/phyre/php \ --enable-fpm \ --with-fpm-user=admin \ --with-fpm-group=admin \ --enable-phpdbg \ --enable-fpm \ --with-pdo-mysql=mysqlnd \ --with-mysqli=mysqlnd \ --with-pgsql \ --with-pdo-pgsql \ --with-pdo-sqlite \ --enable-intl \ --without-pear \ --enable-gd \ --with-jpeg \ --with-webp \ --with-freetype \ --with-xpm \ --enable-exif \ --with-zip \ --with-zlib \ --enable-soap \ --enable-xmlreader \ --with-xsl \ --with-tidy \ --enable-sysvsem \ --enable-sysvshm \ --enable-shmop \ --enable-pcntl \ --with-readline \ --enable-mbstring \ --with-curl \ --with-gettext \ --enable-sockets \ --with-bz2 \ --with-openssl \ --with-gmp \ --enable-bcmath \ --enable-calendar \ --enable-ftp \ --enable-sysvmsg \ --with-sodium \ --enable-zend-test=shared \ --enable-dl-test=shared \ --enable-werror \ --with-pear \ --with-libdir=lib/$(arch)-linux-gnu # Compile PHP sudo make -j 4 sudo make test sudo make install /usr/local/phyre/php/bin/php -v PACKAGE_MAIN_DIR=$MAIN_DIR/phyre-php-8.2.0 sudo mkdir $PACKAGE_MAIN_DIR # Create debian package directories sudo mkdir -p $PACKAGE_MAIN_DIR/DEBIAN sudo mkdir -p $PACKAGE_MAIN_DIR/usr/local/phyre # Copy php compiled files sudo mv /usr/local/phyre/php $PACKAGE_MAIN_DIR/usr/local/phyre sudo cp $MAIN_DIR/php-fpm.conf $PACKAGE_MAIN_DIR/usr/local/phyre/php/etc # Copy debian package META file sudo cp $MAIN_DIR/control $PACKAGE_MAIN_DIR/DEBIAN sudo cp $MAIN_DIR/postinst $PACKAGE_MAIN_DIR/DEBIAN sudo cp $MAIN_DIR/postrm $PACKAGE_MAIN_DIR/DEBIAN # Set debian package post files permissions sudo chmod +x $PACKAGE_MAIN_DIR/DEBIAN/postinst sudo chmod +x $PACKAGE_MAIN_DIR/DEBIAN/postrm # Make debian package sudo dpkg-deb --build $PACKAGE_MAIN_DIR sudo dpkg --info $MAIN_DIR/phyre-php-8.2.0.deb sudo dpkg --contents $MAIN_DIR/phyre-php-8.2.0.deb # Move debian package to dist folder sudo mkdir -p $MAIN_DIR/dist sudo mv $MAIN_DIR/phyre-php-8.2.0.deb $MAIN_DIR/dist