php.sh 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. #!/bin/sh
  2. #move to script directory so all relative paths work
  3. cd "$(dirname "$0")"
  4. #includes
  5. . ./config.sh
  6. . ./colors.sh
  7. . ./environment.sh
  8. #send a message
  9. verbose "Configuring PHP"
  10. #add the repository
  11. if [ ."$os_name" = ."Ubuntu" ]; then
  12. #16.10.x - */yakkety/
  13. #16.04.x - */xenial/
  14. #14.04.x - */trusty/
  15. if [ ."$os_codename" = ."trusty" ]; then
  16. which add-apt-repository || apt-get install -y software-properties-common
  17. LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php
  18. fi
  19. elif [ ."$cpu_architecture" = ."arm" ]; then
  20. #Pi2 and Pi3 Raspbian, #Odroid
  21. #if [ ."$os_codename" = ."stretch" ]; then
  22. # php_version=7.0
  23. #fi
  24. if [ ."$os_codename" = ."buster" ]; then
  25. php_version=7.3
  26. fi
  27. if [ ."$os_codename" = ."bullseye" ]; then
  28. php_version=7.4
  29. fi
  30. if [ ."$os_codename" = ."bookworm" ]; then
  31. php_version=8.2
  32. fi
  33. else
  34. #11.x - bullseye
  35. #10.x - buster
  36. #9.x - stretch
  37. #8.x - jessie
  38. apt-get -y install apt-transport-https lsb-release ca-certificates
  39. #make sure keyrings directory exits
  40. mkdir /etc/apt/keyrings
  41. if [ ."$os_codename" = ."jessie" ]; then
  42. wget -O - https://packages.sury.org/php/apt.gpg | gpg --dearmor -o /etc/apt/keyrings/php.gpg
  43. sh -c 'echo "deb [signed-by=/etc/apt/keyrings/php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
  44. fi
  45. if [ ."$os_codename" = ."stretch" ]; then
  46. wget -O - https://packages.sury.org/php/apt.gpg | gpg --dearmor -o /etc/apt/keyrings/php.gpg
  47. sh -c 'echo "deb [signed-by=/etc/apt/keyrings/php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
  48. fi
  49. if [ ."$os_codename" = ."buster" ]; then
  50. wget -O - https://packages.sury.org/php/apt.gpg | gpg --dearmor -o /etc/apt/keyrings/php.gpg
  51. sh -c 'echo "deb [signed-by=/etc/apt/keyrings/php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
  52. fi
  53. if [ ."$os_codename" = ."bullseye" ]; then
  54. if [ ."$php_version" = ."8.1" ]; then
  55. /usr/bin/apt -y install apt-transport-https lsb-release ca-certificates curl wget gnupg2
  56. /usr/bin/wget -qO- https://packages.sury.org/php/apt.gpg | gpg --dearmor > /etc/apt/keyrings/sury-php-8.x.gpg
  57. /usr/bin/sh -c 'echo "deb [signed-by=/etc/apt/keyrings/sury-php-8.x.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
  58. fi
  59. if [ ."$php_version" = ."8.2" ]; then
  60. /usr/bin/apt -y install apt-transport-https lsb-release ca-certificates curl wget gnupg2
  61. /usr/bin/wget -qO- https://packages.sury.org/php/apt.gpg | gpg --dearmor > /etc/apt/keyrings/sury-php-8.x.gpg
  62. /usr/bin/sh -c 'echo "deb [signed-by=/etc/apt/keyrings/sury-php-8.x.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
  63. fi
  64. if [ ."$php_version" = ."8.3" ]; then
  65. /usr/bin/apt -y install apt-transport-https lsb-release ca-certificates curl wget gnupg2
  66. /usr/bin/wget -qO- https://packages.sury.org/php/apt.gpg | gpg --dearmor > /etc/apt/keyrings/sury-php-8.x.gpg
  67. /usr/bin/sh -c 'echo "deb [signed-by=/etc/apt/keyrings/sury-php-8.x.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
  68. fi
  69. if [ ."$php_version" = ."8.4" ]; then
  70. /usr/bin/apt -y install apt-transport-https lsb-release ca-certificates curl wget gnupg2
  71. /usr/bin/wget -qO- https://packages.sury.org/php/apt.gpg | gpg --dearmor > /etc/apt/keyrings/sury-php-8.x.gpg
  72. /usr/bin/sh -c 'echo "deb [signed-by=/etc/apt/keyrings/sury-php-8.x.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
  73. fi
  74. fi
  75. if [ ."$os_codename" = ."bookworm" ]; then
  76. if [ ."$php_version" = ."8.1" ]; then
  77. /usr/bin/apt -y install apt-transport-https lsb-release ca-certificates curl wget gnupg2
  78. /usr/bin/wget -qO- https://packages.sury.org/php/apt.gpg | gpg --dearmor > /etc/apt/keyrings/sury-php-8.x.gpg
  79. /usr/bin/chmod 644 /etc/apt/keyrings/sury-php-8.x.gpg
  80. /usr/bin/sh -c 'echo "deb [signed-by=/etc/apt/keyrings/sury-php-8.x.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
  81. fi
  82. if [ ."$php_version" = ."8.2" ]; then
  83. /usr/bin/apt -y install apt-transport-https lsb-release ca-certificates curl wget gnupg2
  84. /usr/bin/wget -qO- https://packages.sury.org/php/apt.gpg | gpg --dearmor > /etc/apt/keyrings/sury-php-8.x.gpg
  85. /usr/bin/chmod 644 /etc/apt/keyrings/sury-php-8.x.gpg
  86. /usr/bin/sh -c 'echo "deb [signed-by=/etc/apt/keyrings/sury-php-8.x.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
  87. fi
  88. if [ ."$php_version" = ."8.3" ]; then
  89. /usr/bin/apt -y install apt-transport-https lsb-release ca-certificates curl wget gnupg2
  90. /usr/bin/wget -qO- https://packages.sury.org/php/apt.gpg | gpg --dearmor > /etc/apt/keyrings/sury-php-8.x.gpg
  91. /usr/bin/chmod 644 /etc/apt/keyrings/sury-php-8.x.gpg
  92. /usr/bin/sh -c 'echo "deb [signed-by=/etc/apt/keyrings/sury-php-8.x.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
  93. fi
  94. if [ ."$php_version" = ."8.4" ]; then
  95. /usr/bin/apt -y install apt-transport-https lsb-release ca-certificates curl wget gnupg2
  96. /usr/bin/wget -qO- https://packages.sury.org/php/apt.gpg | gpg --dearmor > /etc/apt/keyrings/sury-php-8.x.gpg
  97. /usr/bin/chmod 644 /etc/apt/keyrings/sury-php-8.x.gpg
  98. /usr/bin/sh -c 'echo "deb [signed-by=/etc/apt/keyrings/sury-php-8.x.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
  99. fi
  100. fi
  101. fi
  102. apt-get update -y
  103. #install dependencies
  104. apt-get install -y nginx
  105. if [ ."$php_version" = ."" ]; then
  106. apt-get install -y php php-cli php-fpm php-pgsql php-sqlite3 php-odbc php-curl php-imap php-xml php-gd php-inotify
  107. fi
  108. if [ ."$php_version" = ."7.1" ]; then
  109. apt-get install -y --no-install-recommends php7.1 php7.1-common php7.1-cli php7.1-fpm php7.1-pgsql php7.1-sqlite3 php7.1-odbc php7.1-curl php7.1-imap php7.1-xml php7.1-gd php7.1-mbstring php7.1-inotify
  110. fi
  111. if [ ."$php_version" = ."7.2" ]; then
  112. apt-get install -y --no-install-recommends php7.2 php7.2-common php7.2-cli php7.2-fpm php7.2-pgsql php7.2-sqlite3 php7.2-odbc php7.2-curl php7.2-imap php7.2-xml php7.2-gd php7.2-mbstring php7.2-inotify
  113. fi
  114. if [ ."$php_version" = ."7.3" ]; then
  115. apt-get install -y --no-install-recommends php7.3 php7.3-common php7.3-cli php7.3-fpm php7.3-pgsql php7.3-sqlite3 php7.3-odbc php7.3-curl php7.3-imap php7.3-xml php7.3-gd php7.3-mbstring php7.3-inotify
  116. fi
  117. if [ ."$php_version" = ."7.4" ]; then
  118. apt-get install -y --no-install-recommends php7.4 php7.4-common php7.4-cli php7.4-dev php7.4-fpm php7.4-pgsql php7.4-sqlite3 php7.4-odbc php7.4-curl php7.4-imap php7.4-xml php7.4-gd php7.4-mbstring php7.4-inotify
  119. fi
  120. if [ ."$php_version" = ."8.1" ]; then
  121. apt-get install -y --no-install-recommends php8.1 php8.1-common php8.1-cli php8.1-dev php8.1-fpm php8.1-pgsql php8.1-sqlite3 php8.1-odbc php8.1-curl php8.1-imap php8.1-xml php8.1-gd php8.1-mbstring php8.1-ldap php8.1-inotify
  122. fi
  123. if [ ."$php_version" = ."8.2" ]; then
  124. apt-get install -y --no-install-recommends php8.2 php8.2-common php8.2-cli php8.2-dev php8.2-fpm php8.2-pgsql php8.2-sqlite3 php8.2-odbc php8.2-curl php8.2-imap php8.2-xml php8.2-gd php8.2-mbstring php8.2-ldap php8.2-inotify
  125. fi
  126. if [ ."$php_version" = ."8.3" ]; then
  127. apt-get install -y --no-install-recommends php8.3 php8.3-common php8.3-cli php8.3-dev php8.3-fpm php8.3-pgsql php8.3-sqlite3 php8.3-odbc php8.3-curl php8.3-imap php8.3-xml php8.3-gd php8.3-mbstring php8.3-ldap php8.3-inotify
  128. fi
  129. if [ ."$php_version" = ."8.4" ]; then
  130. apt-get install -y --no-install-recommends php8.4 php8.4-common php8.4-cli php8.4-dev php8.4-fpm php8.4-pgsql php8.4-sqlite3 php8.4-odbc php8.4-curl php8.4-imap php8.4-xml php8.4-gd php8.4-mbstring php8.4-ldap php8.4-inotify
  131. fi
  132. #update config if source is being used
  133. if [ ."$php_version" = ."7.1" ]; then
  134. verbose "version 7.1"
  135. php_ini_file='/etc/php/7.1/fpm/php.ini'
  136. fi
  137. if [ ."$php_version" = ."7.2" ]; then
  138. verbose "version 7.2"
  139. php_ini_file='/etc/php/7.2/fpm/php.ini'
  140. fi
  141. if [ ."$php_version" = ."7.3" ]; then
  142. verbose "version 7.3"
  143. php_ini_file='/etc/php/7.3/fpm/php.ini'
  144. fi
  145. if [ ."$php_version" = ."7.4" ]; then
  146. verbose "version 7.4"
  147. php_ini_file='/etc/php/7.4/fpm/php.ini'
  148. fi
  149. if [ ."$php_version" = ."8.1" ]; then
  150. verbose "version 8.1"
  151. php_ini_file='/etc/php/8.1/fpm/php.ini'
  152. fi
  153. if [ ."$php_version" = ."8.2" ]; then
  154. verbose "version 8.2"
  155. php_ini_file='/etc/php/8.2/fpm/php.ini'
  156. fi
  157. if [ ."$php_version" = ."8.3" ]; then
  158. verbose "version 8.3"
  159. php_ini_file='/etc/php/8.3/fpm/php.ini'
  160. fi
  161. if [ ."$php_version" = ."8.4" ]; then
  162. verbose "version 8.4"
  163. php_ini_file='/etc/php/8.4/fpm/php.ini'
  164. fi
  165. sed 's#post_max_size = .*#post_max_size = 80M#g' -i $php_ini_file
  166. sed 's#upload_max_filesize = .*#upload_max_filesize = 80M#g' -i $php_ini_file
  167. sed 's#;max_input_vars = .*#max_input_vars = 8000#g' -i $php_ini_file
  168. sed 's#; max_input_vars = .*#max_input_vars = 8000#g' -i $php_ini_file
  169. #install ioncube
  170. if [ .$cpu_architecture = .'x86' ]; then
  171. . ./ioncube.sh
  172. fi
  173. #restart php-fpm
  174. systemctl daemon-reload
  175. if [ ."$php_version" = ."7.1" ]; then
  176. systemctl restart php7.1-fpm
  177. fi
  178. if [ ."$php_version" = ."7.2" ]; then
  179. systemctl restart php7.2-fpm
  180. fi
  181. if [ ."$php_version" = ."7.3" ]; then
  182. systemctl restart php7.3-fpm
  183. fi
  184. if [ ."$php_version" = ."7.4" ]; then
  185. systemctl restart php7.4-fpm
  186. fi
  187. if [ ."$php_version" = ."8.1" ]; then
  188. systemctl restart php8.1-fpm
  189. fi
  190. if [ ."$php_version" = ."8.2" ]; then
  191. systemctl restart php8.2-fpm
  192. fi
  193. if [ ."$php_version" = ."8.3" ]; then
  194. systemctl restart php8.3-fpm
  195. fi
  196. if [ ."$php_version" = ."8.3" ]; then
  197. systemctl restart php8.3-fpm
  198. fi
  199. #init.d
  200. #/usr/sbin/service php5-fpm restart
  201. #/usr/sbin/service php7.0-fpm restart