php.sh 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  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" = ."5.6" ]; then
  109. apt-get install -y php5 php5-cli php5-fpm php5-pgsql php5-sqlite php5-odbc php5-curl php5-imap php5-gd
  110. fi
  111. if [ ."$php_version" = ."7.0" ]; then
  112. apt-get install -y --no-install-recommends php7.0 php7.0-common php7.0-cli php7.0-fpm php7.0-pgsql php7.0-sqlite3 php7.0-odbc php7.0-curl php7.0-imap php7.0-xml php7.0-gd php7.0-mbstring php7.0-inotify
  113. fi
  114. if [ ."$php_version" = ."7.1" ]; then
  115. 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
  116. fi
  117. if [ ."$php_version" = ."7.2" ]; then
  118. 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
  119. fi
  120. if [ ."$php_version" = ."7.3" ]; then
  121. 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
  122. fi
  123. if [ ."$php_version" = ."7.4" ]; then
  124. 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
  125. fi
  126. if [ ."$php_version" = ."8.1" ]; then
  127. 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
  128. fi
  129. if [ ."$php_version" = ."8.2" ]; then
  130. 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
  131. fi
  132. if [ ."$php_version" = ."8.3" ]; then
  133. 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
  134. fi
  135. if [ ."$php_version" = ."8.4" ]; then
  136. 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
  137. fi
  138. #update config if source is being used
  139. if [ ."$php_version" = ."5" ]; then
  140. verbose "version 5.x"
  141. php_ini_file='/etc/php5/fpm/php.ini'
  142. fi
  143. if [ ."$php_version" = ."7.0" ]; then
  144. verbose "version 7.0"
  145. php_ini_file='/etc/php/7.0/fpm/php.ini'
  146. fi
  147. if [ ."$php_version" = ."7.1" ]; then
  148. verbose "version 7.1"
  149. php_ini_file='/etc/php/7.1/fpm/php.ini'
  150. fi
  151. if [ ."$php_version" = ."7.2" ]; then
  152. verbose "version 7.2"
  153. php_ini_file='/etc/php/7.2/fpm/php.ini'
  154. fi
  155. if [ ."$php_version" = ."7.3" ]; then
  156. verbose "version 7.3"
  157. php_ini_file='/etc/php/7.3/fpm/php.ini'
  158. fi
  159. if [ ."$php_version" = ."7.4" ]; then
  160. verbose "version 7.4"
  161. php_ini_file='/etc/php/7.4/fpm/php.ini'
  162. fi
  163. if [ ."$php_version" = ."8.1" ]; then
  164. verbose "version 8.1"
  165. php_ini_file='/etc/php/8.1/fpm/php.ini'
  166. fi
  167. if [ ."$php_version" = ."8.2" ]; then
  168. verbose "version 8.2"
  169. php_ini_file='/etc/php/8.2/fpm/php.ini'
  170. fi
  171. if [ ."$php_version" = ."8.3" ]; then
  172. verbose "version 8.3"
  173. php_ini_file='/etc/php/8.3/fpm/php.ini'
  174. fi
  175. if [ ."$php_version" = ."8.4" ]; then
  176. verbose "version 8.4"
  177. php_ini_file='/etc/php/8.4/fpm/php.ini'
  178. fi
  179. sed 's#post_max_size = .*#post_max_size = 80M#g' -i $php_ini_file
  180. sed 's#upload_max_filesize = .*#upload_max_filesize = 80M#g' -i $php_ini_file
  181. sed 's#;max_input_vars = .*#max_input_vars = 8000#g' -i $php_ini_file
  182. sed 's#; max_input_vars = .*#max_input_vars = 8000#g' -i $php_ini_file
  183. #install ioncube
  184. if [ .$cpu_architecture = .'x86' ]; then
  185. . ./ioncube.sh
  186. fi
  187. #restart php-fpm
  188. systemctl daemon-reload
  189. if [ ."$php_version" = ."5.6" ]; then
  190. systemctl restart php5-fpm
  191. fi
  192. if [ ."$php_version" = ."7.0" ]; then
  193. systemctl restart php7.0-fpm
  194. fi
  195. if [ ."$php_version" = ."7.1" ]; then
  196. systemctl restart php7.1-fpm
  197. fi
  198. if [ ."$php_version" = ."7.2" ]; then
  199. systemctl restart php7.2-fpm
  200. fi
  201. if [ ."$php_version" = ."7.3" ]; then
  202. systemctl restart php7.3-fpm
  203. fi
  204. if [ ."$php_version" = ."7.4" ]; then
  205. systemctl restart php7.4-fpm
  206. fi
  207. if [ ."$php_version" = ."8.1" ]; then
  208. systemctl restart php8.1-fpm
  209. fi
  210. if [ ."$php_version" = ."8.2" ]; then
  211. systemctl restart php8.2-fpm
  212. fi
  213. if [ ."$php_version" = ."8.3" ]; then
  214. systemctl restart php8.3-fpm
  215. fi
  216. if [ ."$php_version" = ."8.3" ]; then
  217. systemctl restart php8.3-fpm
  218. fi
  219. #init.d
  220. #/usr/sbin/service php5-fpm restart
  221. #/usr/sbin/service php7.0-fpm restart