php-compile.sh 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  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 locales \
  10. language-pack-de \
  11. re2c \
  12. ccache \
  13. mysql-server \
  14. libbz2-dev \
  15. libcurl4-gnutls-dev \
  16. libenchant-dev \
  17. libfreetype6-dev \
  18. libgmp-dev \
  19. libicu-dev \
  20. libjpeg-dev \
  21. libkrb5-dev \
  22. libonig-dev \
  23. libpng-dev \
  24. libpq-dev \
  25. libsasl2-dev \
  26. libsqlite3-dev \
  27. libsodium-dev \
  28. libtidy-dev \
  29. libwebp-dev \
  30. libxml2-dev \
  31. libxpm-dev \
  32. libxslt1-dev \
  33. libzip-dev \
  34. autoconf \
  35. re2c \
  36. bison \
  37. sqlite3 \
  38. libsqlite3-dev \
  39. libpq-dev \
  40. libfcgi-dev \
  41. libfcgi0ldbl \
  42. libjpeg-dev \
  43. libpng-dev \
  44. libssl-dev \
  45. libxml2-dev \
  46. libcurl4-openssl-dev \
  47. libxpm-dev \
  48. libgd-dev \
  49. libmysqlclient-dev \
  50. libfreetype6-dev \
  51. libxslt1-dev \
  52. libpspell-dev \
  53. libzip-dev \
  54. libicu-dev \
  55. libldap2-dev \
  56. libxslt-dev \
  57. libssl-dev \
  58. libldb-dev \
  59. libgccjit-10-dev \
  60. libargon2-dev \
  61. zlib1g-dev \
  62. binutils \
  63. libtool \
  64. bison \
  65. re2c \
  66. pkg-config \
  67. make \
  68. autoconf \
  69. automake
  70. sudo apt-get update -y
  71. # Download PHP source
  72. wget http://de2.php.net/distributions/php-8.2.0.tar.gz
  73. tar -zxvf php-8.2.0.tar.gz
  74. cd php-8.2.0
  75. # Configure PHP
  76. sudo make LIBDIR=/usr/lib/$(arch)-linux-gnu install
  77. ./buildconf --force
  78. sudo ./configure --prefix=/usr/local/phyre/php \
  79. --enable-fpm \
  80. --with-fpm-user=admin \
  81. --with-fpm-group=admin \
  82. --enable-phpdbg \
  83. --enable-fpm \
  84. --with-pdo-mysql=mysqlnd \
  85. --with-mysqli=mysqlnd \
  86. --with-pgsql \
  87. --with-pdo-pgsql \
  88. --with-pdo-sqlite \
  89. --enable-intl \
  90. --without-pear \
  91. --enable-gd \
  92. --with-jpeg \
  93. --with-webp \
  94. --with-freetype \
  95. --with-xpm \
  96. --enable-exif \
  97. --with-zip \
  98. --with-zlib \
  99. --enable-soap \
  100. --enable-xmlreader \
  101. --with-xsl \
  102. --with-tidy \
  103. --enable-sysvsem \
  104. --enable-sysvshm \
  105. --enable-shmop \
  106. --enable-pcntl \
  107. --with-readline \
  108. --enable-mbstring \
  109. --with-curl \
  110. --with-gettext \
  111. --enable-sockets \
  112. --with-bz2 \
  113. --with-openssl \
  114. --with-gmp \
  115. --enable-bcmath \
  116. --enable-calendar \
  117. --enable-ftp \
  118. --with-enchant=/usr \
  119. --enable-sysvmsg \
  120. --with-ffi \
  121. --with-sodium \
  122. --enable-zend-test=shared \
  123. --enable-dl-test=shared \
  124. --enable-werror \
  125. --with-pear \
  126. --with-libdir=lib/$(arch)-linux-gnu
  127. # Compile PHP
  128. sudo make -j 4
  129. sudo make test
  130. sudo make install
  131. /usr/local/phyre/php/bin/php -v
  132. PACKAGE_MAIN_DIR=$MAIN_DIR/phyre-php-8.2.0
  133. sudo mkdir $PACKAGE_MAIN_DIR
  134. # Create debian package directories
  135. sudo mkdir -p $PACKAGE_MAIN_DIR/DEBIAN
  136. sudo mkdir -p $PACKAGE_MAIN_DIR/usr/local/phyre
  137. # Copy php compiled files
  138. sudo mv /usr/local/phyre/php $PACKAGE_MAIN_DIR/usr/local/phyre
  139. sudo cp $MAIN_DIR/php-fpm.conf $PACKAGE_MAIN_DIR/usr/local/phyre/php/etc
  140. # Copy debian package META file
  141. sudo cp $MAIN_DIR/control $PACKAGE_MAIN_DIR/DEBIAN
  142. sudo cp $MAIN_DIR/postinst $PACKAGE_MAIN_DIR/DEBIAN
  143. sudo cp $MAIN_DIR/postrm $PACKAGE_MAIN_DIR/DEBIAN
  144. # Set debian package post files permissions
  145. sudo chmod +x $PACKAGE_MAIN_DIR/DEBIAN/postinst
  146. sudo chmod +x $PACKAGE_MAIN_DIR/DEBIAN/postrm
  147. # Make debian package
  148. sudo dpkg-deb --build $PACKAGE_MAIN_DIR
  149. sudo dpkg --info $MAIN_DIR/phyre-php-8.2.0.deb
  150. sudo dpkg --contents $MAIN_DIR/phyre-php-8.2.0.deb
  151. # Move debian package to dist folder
  152. sudo mkdir -p $MAIN_DIR/dist
  153. sudo mv $MAIN_DIR/phyre-php-8.2.0.deb $MAIN_DIR/dist