php-compile.sh 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #!/bin/bash
  2. MAIN_DIR=$(pwd)
  3. # Build Essentials
  4. sudo apt-get install build-essential
  5. # Install Dependencies
  6. sudo apt install \
  7. autoconf \
  8. re2c \
  9. bison \
  10. libsqlite3-dev \
  11. libpq-dev \
  12. libonig-dev \
  13. libfcgi-dev \
  14. libfcgi0ldbl \
  15. libjpeg-dev \
  16. libpng-dev \
  17. libssl-dev \
  18. libxml2-dev \
  19. libcurl4-openssl-dev \
  20. libxpm-dev \
  21. libgd-dev \
  22. libmysqlclient-dev \
  23. libfreetype6-dev \
  24. libxslt1-dev \
  25. libpspell-dev \
  26. libzip-dev \
  27. libgccjit-10-dev
  28. # Download PHP source
  29. wget http://de2.php.net/distributions/php-8.2.0.tar.gz
  30. tar -zxvf php-8.2.0.tar.gz
  31. cd php-8.2.0
  32. # Configure PHP
  33. sudo ./configure --prefix=/usr/local/phyre/php \
  34. --enable-fpm --with-fpm-user=admin --with-fpm-group=admin \
  35. --with-openssl \
  36. --with-mysqli \
  37. --with-gettext \
  38. --with-curl \
  39. --with-zip
  40. # --enable-mbstring
  41. # --with-libdir=lib/$(arch)-linux-gnu
  42. # Compile PHP
  43. sudo make
  44. sudo make install
  45. PACKAGE_MAIN_DIR=$MAIN_DIR/phyre-php-8.2.0
  46. sudo mkdir $PACKAGE_MAIN_DIR
  47. # Create debian package directories
  48. sudo mkdir -p $PACKAGE_MAIN_DIR/DEBIAN
  49. sudo mkdir -p $PACKAGE_MAIN_DIR/usr/local/phyre
  50. # Copy php compiled files
  51. sudo mv /usr/local/phyre/php $PACKAGE_MAIN_DIR/usr/local/phyre
  52. sudo cp $MAIN_DIR/php-fpm.conf $PACKAGE_MAIN_DIR/usr/local/phyre/php/etc
  53. # Copy debian package META file
  54. sudo cp $MAIN_DIR/control $PACKAGE_MAIN_DIR/DEBIAN
  55. sudo cp $MAIN_DIR/postinst $PACKAGE_MAIN_DIR/DEBIAN
  56. sudo cp $MAIN_DIR/postrm $PACKAGE_MAIN_DIR/DEBIAN
  57. # Set debian package post files permissions
  58. sudo chmod +x $PACKAGE_MAIN_DIR/DEBIAN/postinst
  59. sudo chmod +x $PACKAGE_MAIN_DIR/DEBIAN/postrm
  60. # Make debian package
  61. sudo dpkg-deb --build $PACKAGE_MAIN_DIR
  62. sudo dpkg --info $MAIN_DIR/phyre-php-8.2.0.deb
  63. sudo dpkg --contents $MAIN_DIR/phyre-php-8.2.0.deb
  64. # Move debian package to dist folder
  65. sudo mkdir -p $MAIN_DIR/dist
  66. sudo mv $MAIN_DIR/phyre-php-8.2.0.deb $MAIN_DIR/dist