php-compile.sh 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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. binutils \
  29. autoconf \
  30. libtool \
  31. bison \
  32. re2c \
  33. make \
  34. automake
  35. # Download PHP source
  36. wget http://de2.php.net/distributions/php-8.2.0.tar.gz
  37. tar -zxvf php-8.2.0.tar.gz
  38. cd php-8.2.0
  39. # Configure PHP
  40. sudo ./configure --prefix=/usr/local/phyre/php \
  41. --enable-fpm --with-fpm-user=admin --with-fpm-group=admin \
  42. --with-openssl \
  43. --with-mysqli \
  44. --with-gettext \
  45. --with-curl \
  46. --with-zip
  47. # --enable-mbstring
  48. # --with-libdir=lib/$(arch)-linux-gnu
  49. # Compile PHP
  50. sudo make -j 4
  51. sudo make install
  52. PACKAGE_MAIN_DIR=$MAIN_DIR/phyre-php-8.2.0
  53. sudo mkdir $PACKAGE_MAIN_DIR
  54. # Create debian package directories
  55. sudo mkdir -p $PACKAGE_MAIN_DIR/DEBIAN
  56. sudo mkdir -p $PACKAGE_MAIN_DIR/usr/local/phyre
  57. # Copy php compiled files
  58. sudo mv /usr/local/phyre/php $PACKAGE_MAIN_DIR/usr/local/phyre
  59. sudo cp $MAIN_DIR/php-fpm.conf $PACKAGE_MAIN_DIR/usr/local/phyre/php/etc
  60. # Copy debian package META file
  61. sudo cp $MAIN_DIR/control $PACKAGE_MAIN_DIR/DEBIAN
  62. sudo cp $MAIN_DIR/postinst $PACKAGE_MAIN_DIR/DEBIAN
  63. sudo cp $MAIN_DIR/postrm $PACKAGE_MAIN_DIR/DEBIAN
  64. # Set debian package post files permissions
  65. sudo chmod +x $PACKAGE_MAIN_DIR/DEBIAN/postinst
  66. sudo chmod +x $PACKAGE_MAIN_DIR/DEBIAN/postrm
  67. # Make debian package
  68. sudo dpkg-deb --build $PACKAGE_MAIN_DIR
  69. sudo dpkg --info $MAIN_DIR/phyre-php-8.2.0.deb
  70. sudo dpkg --contents $MAIN_DIR/phyre-php-8.2.0.deb
  71. # Move debian package to dist folder
  72. sudo mkdir -p $MAIN_DIR/dist
  73. sudo mv $MAIN_DIR/phyre-php-8.2.0.deb $MAIN_DIR/dist