php-compile.sh 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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. sqlite3 \
  11. libsqlite3-dev \
  12. libpq-dev \
  13. libonig-dev \
  14. libfcgi-dev \
  15. libfcgi0ldbl \
  16. libjpeg-dev \
  17. libpng-dev \
  18. libssl-dev \
  19. libxml2-dev \
  20. libcurl4-openssl-dev \
  21. libxpm-dev \
  22. libgd-dev \
  23. libmysqlclient-dev \
  24. libfreetype6-dev \
  25. libxslt1-dev \
  26. libpspell-dev \
  27. libzip-dev \
  28. libicu-dev \
  29. libldap2-dev \
  30. libxslt-dev \
  31. libssl-dev \
  32. libldb-dev \
  33. libgccjit-10-dev \
  34. binutils \
  35. libtool \
  36. bison \
  37. re2c \
  38. pkg-config \
  39. zlib1g-dev \
  40. libargon2-dev \
  41. libsodium-dev \
  42. make \
  43. autoconf\
  44. automake
  45. # Download PHP source
  46. wget http://de2.php.net/distributions/php-8.2.0.tar.gz
  47. tar -zxvf php-8.2.0.tar.gz
  48. cd php-8.2.0
  49. # Configure PHP
  50. sudo ./configure --prefix=/usr/local/phyre/php \
  51. --enable-fpm --with-fpm-user=admin --with-fpm-group=admin \
  52. --with-openssl \
  53. --with-mysqli \
  54. --with-gettext \
  55. --with-curl \
  56. --with-zip \
  57. --enable-mbstring
  58. # --with-libdir=lib/$(arch)-linux-gnu
  59. # Compile PHP
  60. sudo make -jN
  61. sudo make install
  62. PACKAGE_MAIN_DIR=$MAIN_DIR/phyre-php-8.2.0
  63. sudo mkdir $PACKAGE_MAIN_DIR
  64. # Create debian package directories
  65. sudo mkdir -p $PACKAGE_MAIN_DIR/DEBIAN
  66. sudo mkdir -p $PACKAGE_MAIN_DIR/usr/local/phyre
  67. # Copy php compiled files
  68. sudo mv /usr/local/phyre/php $PACKAGE_MAIN_DIR/usr/local/phyre
  69. sudo cp $MAIN_DIR/php-fpm.conf $PACKAGE_MAIN_DIR/usr/local/phyre/php/etc
  70. # Copy debian package META file
  71. sudo cp $MAIN_DIR/control $PACKAGE_MAIN_DIR/DEBIAN
  72. sudo cp $MAIN_DIR/postinst $PACKAGE_MAIN_DIR/DEBIAN
  73. sudo cp $MAIN_DIR/postrm $PACKAGE_MAIN_DIR/DEBIAN
  74. # Set debian package post files permissions
  75. sudo chmod +x $PACKAGE_MAIN_DIR/DEBIAN/postinst
  76. sudo chmod +x $PACKAGE_MAIN_DIR/DEBIAN/postrm
  77. # Make debian package
  78. sudo dpkg-deb --build $PACKAGE_MAIN_DIR
  79. sudo dpkg --info $MAIN_DIR/phyre-php-8.2.0.deb
  80. sudo dpkg --contents $MAIN_DIR/phyre-php-8.2.0.deb
  81. # Move debian package to dist folder
  82. sudo mkdir -p $MAIN_DIR/dist
  83. sudo mv $MAIN_DIR/phyre-php-8.2.0.deb $MAIN_DIR/dist