php-compile.sh 2.3 KB

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