Saltstack Official PHP Formula
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

427 lines
20KB

  1. # -*- coding: utf-8 -*-
  2. # vim: ft=jinja
  3. {%- if salt['grains.get']('os') == "Ubuntu" %}
  4. {%- set use_external_repo = salt['pillar.get']('php:use_external_repo', False) %}
  5. {%- if use_external_repo %}
  6. {%- set php_version = salt['pillar.get']('php:version', '7.0')|string %}
  7. {%- if salt['grains.get']('osrelease')|string >= '16.04' %}
  8. {# Ubuntu 16.04+ specific PHP definitions #}
  9. {%- set php = salt['grains.filter_by']({
  10. 'Ubuntu': {
  11. 'adodb_pkg': 'libphp-adodb',
  12. 'apc_pkg': 'php-apcu',
  13. 'apcu_pkg': 'php-apcu-bc',
  14. 'bcmath_pkg': 'php' + php_version + '-bcmath',
  15. 'build_pkgs': ['libssl-dev', 'libcurl4-openssl-dev', 'pkg-config', 'libsslcommon2-dev', 'gcc', 'make', 'autoconf', 'libc-dev', 'pkg-config'],
  16. 'cgi_pkg': 'php' + php_version + '-cgi',
  17. 'cli_pkg': 'php' + php_version + '-cli',
  18. 'composer_bin': 'composer',
  19. 'curl_pkg': 'php' + php_version + '-curl',
  20. 'dev_pkg': 'php' + php_version + '-dev',
  21. 'ext_conf_path': '/etc/php/' + php_version + '/mods-available',
  22. 'fpm_pkg': 'php' + php_version + '-fpm',
  23. 'fpm_service': 'php' + php_version + '-fpm',
  24. 'gd_pkg': 'php' + php_version + '-gd',
  25. 'imagick_pkg': 'php-imagick',
  26. 'imap_pkg': 'php' + php_version + '-imap',
  27. 'intl_pkg': 'php' + php_version + '-intl',
  28. 'json_pkg': 'php' + php_version + '-json',
  29. 'ldap_pkg': 'php' + php_version + '-ldap',
  30. 'local_bin': '/usr/local/bin',
  31. 'mail_pkg': 'php-mail',
  32. 'mbstring_pkg': 'php' + php_version + '-mbstring',
  33. 'mcrypt_pkg': 'php' + php_version + '-mcrypt',
  34. 'memcache_pkg': 'php-memcache',
  35. 'memcached_pkg': 'php-memcached',
  36. 'mongo_ext': 'mongodb.so',
  37. 'mongo_pecl': 'mongodb',
  38. 'mysql_pkg': 'php' + php_version + '-mysql',
  39. 'mysqlnd_pkg': 'php' + php_version + '-mysql',
  40. 'oauth_pkg': 'php-oauth',
  41. 'pear_pkg': 'php-pear',
  42. 'pgsql_pkg': 'php' + php_version + '-pgsql',
  43. 'php_ini': '/etc/php/' + php_version + '/apache2/php.ini',
  44. 'php_pkg': 'php' + php_version,
  45. 'phpenmod_command': 'phpenmod -v' + php_version,
  46. 'readline_pkg': 'php' + php_version + '-readline',
  47. 'redis_pkg': 'php-redis',
  48. 'soap_pkg': 'php' + php_version + '-soap',
  49. 'sqlite_pkg': 'php' + php_version + '-sqlite3',
  50. 'suhosin5_ext': 'suhosin.so',
  51. 'suhosin5_repo': 'https://github.com/sektioneins/suhosin',
  52. 'suhosin7_ext': 'suhosin7.so',
  53. 'suhosin7_repo': 'https://github.com/sektioneins/suhosin7',
  54. 'sybase_pkg': 'php' + php_version + '-sybase',
  55. 'temp_dir': '/tmp',
  56. 'xml_pkg': 'php' + php_version + '-xml',
  57. 'zip_pkg': 'php' + php_version + '-zip',
  58. }
  59. }, grain="os", merge=salt['pillar.get']('php:lookup')) %}
  60. {%- else %}
  61. {# All other Ubuntu PHP definitions #}
  62. {%- set php = salt['grains.filter_by']({
  63. 'Ubuntu': {
  64. 'adodb_pkg': 'libphp-adodb',
  65. 'apc_pkg': 'php-apcu',
  66. 'apcu_pkg': 'php-apcu',
  67. 'bcmath_pkg': 'php' + php_version + '-bcmath',
  68. 'build_pkgs': ['libssl-dev', 'libcurl4-openssl-dev', 'gcc', 'make', 'autoconf', 'libc-dev', 'pkg-config'],
  69. 'cgi_pkg': 'php' + php_version + '-cgi',
  70. 'cli_pkg': 'php' + php_version + '-cli',
  71. 'composer_bin': 'composer',
  72. 'curl_pkg': 'php' + php_version + '-curl',
  73. 'dev_pkg': 'php' + php_version + '-dev',
  74. 'ext_conf_path': '/etc/php/' + php_version + '/mods-available',
  75. 'fpm_pkg': 'php' + php_version + '-fpm',
  76. 'fpm_service': 'php' + php_version + '-fpm',
  77. 'gd_pkg': 'php' + php_version + '-gd',
  78. 'imagick_pkg': 'php-imagick',
  79. 'imap_pkg': 'php' + php_version + '-imap',
  80. 'intl_pkg': 'php' + php_version + '-intl',
  81. 'json_pkg': 'php' + php_version + '-json',
  82. 'ldap_pkg': 'php' + php_version + '-ldap',
  83. 'local_bin': '/usr/local/bin',
  84. 'mail_pkg': 'php-mail',
  85. 'mbstring_pkg': 'php' + php_version + '-mbstring',
  86. 'mcrypt_pkg': 'php' + php_version + '-mcrypt',
  87. 'memcache_pkg': 'php-memcache',
  88. 'memcached_pkg': 'php-memcached',
  89. 'mongo_ext': 'mongodb.so',
  90. 'mongo_pecl': 'mongodb',
  91. 'mysql_pkg': 'php' + php_version + '-mysql',
  92. 'mysqlnd_pkg': 'php' + php_version + '-mysql',
  93. 'oauth_pkg': 'php-oauth',
  94. 'pear_pkg': 'php-pear',
  95. 'pgsql_pkg': 'php' + php_version + '-pgsql',
  96. 'php_ini': '/etc/php/' + php_version + '/apache2/php.ini',
  97. 'php_pkg': 'php' + php_version,
  98. 'phpenmod_command': 'phpenmod -v' + php_version,
  99. 'readline_pkg': 'php' + php_version + '-readline',
  100. 'redis_pkg': 'php-redis',
  101. 'soap_pkg': 'php' + php_version + '-soap',
  102. 'sqlite_pkg': 'php' + php_version + '-sqlite3',
  103. 'suhosin5_ext': 'suhosin.so',
  104. 'suhosin5_repo': 'https://github.com/sektioneins/suhosin',
  105. 'suhosin7_ext': 'suhosin7.so',
  106. 'suhosin7_repo': 'https://github.com/sektioneins/suhosin7',
  107. 'sybase_pkg': 'php' + php_version + '-sybase',
  108. 'temp_dir': '/tmp',
  109. 'xml_pkg': 'php' + php_version + '-xml',
  110. 'zip_pkg': 'php' + php_version + '-zip',
  111. }
  112. }, grain="os", merge=salt['pillar.get']('php:lookup')) %}
  113. {%- endif %}
  114. {%- else %}
  115. {%- if salt['grains.get']('osrelease')|string >= '17.10' %}
  116. {# Ubuntu 17.10+ specific PHP definitions #}
  117. {%- set php = salt['grains.filter_by']({
  118. 'Ubuntu': {
  119. 'adodb_pkg': 'libphp-adodb',
  120. 'apc_pkg': 'php',
  121. 'apcu_pkg': 'php-apcu',
  122. 'bcmath_pkg': 'php-bcmath',
  123. 'build_pkgs': ['libssl-dev', 'libcurl4-openssl-dev', 'pkg-config', 'libsslcommon2-dev'],
  124. 'cgi_pkg': 'php-cgi',
  125. 'cli_pkg': 'php-cli',
  126. 'composer_bin': 'composer',
  127. 'curl_pkg': 'php-curl',
  128. 'dev_pkg': 'php-dev',
  129. 'ext_conf_path': '/etc/php/7.1/mods-available',
  130. 'fpm_pkg': 'php-fpm',
  131. 'fpm_service': 'php7.1-fpm',
  132. 'gd_pkg': 'php-gd',
  133. 'imagick_pkg': 'php-imagick',
  134. 'imap_pkg': 'php-imap',
  135. 'intl_pkg': 'php-intl',
  136. 'json_pkg': 'php-json',
  137. 'ldap_pkg': 'php-ldap',
  138. 'local_bin': '/usr/local/bin',
  139. 'mail_pkg': 'php-mail',
  140. 'mbstring_pkg': 'php-mbstring',
  141. 'mcrypt_pkg': 'php-mcrypt',
  142. 'memcache_pkg': 'php-memcache',
  143. 'memcached_pkg': 'php-memcached',
  144. 'mongo_ext': 'mongodb.so',
  145. 'mongo_pecl': 'php-mongodb',
  146. 'mysql_pkg': 'php-mysql',
  147. 'mysqlnd_pkg': 'php',
  148. 'oauth_pkg': 'php-oauth',
  149. 'pear_pkg': 'php-pear',
  150. 'pgsql_pkg': 'php-pgsql',
  151. 'php_ini': '/etc/php/7.1/apache2/php.ini',
  152. 'php_pkg': 'php',
  153. 'phpenmod_command': 'phpenmod',
  154. 'readline_pkg': ' php-readline',
  155. 'redis_pkg': 'php-redis',
  156. 'soap_pkg': 'php-soap',
  157. 'sqlite_pkg': 'php-sqlite3',
  158. 'suhosin5_ext': 'suhosin.so',
  159. 'suhosin5_repo': 'https://github.com/sektioneins/suhosin',
  160. 'suhosin7_ext': 'suhosin7.so',
  161. 'suhosin7_repo': 'https://github.com/sektioneins/suhosin7',
  162. 'sybase_pkg': 'php-sybase',
  163. 'temp_dir': '/tmp',
  164. 'xml_pkg': 'php-xml',
  165. 'zip_pkg': 'php-zip',
  166. }
  167. }, grain="os", merge=salt['pillar.get']('php:lookup')) %}
  168. {%- elif salt['grains.get']('osrelease')|string >= '16.04' %}
  169. {# Ubuntu 16.04+ specific PHP definitions #}
  170. {%- set php = salt['grains.filter_by']({
  171. 'Ubuntu': {
  172. 'adodb_pkg': 'libphp-adodb',
  173. 'apc_pkg': 'php',
  174. 'apcu_pkg': 'php-apcu',
  175. 'bcmath_pkg': 'php-bcmath',
  176. 'build_pkgs': ['libssl-dev', 'libcurl4-openssl-dev', 'pkg-config', 'libsslcommon2-dev'],
  177. 'cgi_pkg': 'php-cgi',
  178. 'cli_pkg': 'php-cli',
  179. 'composer_bin': 'composer',
  180. 'curl_pkg': 'php-curl',
  181. 'dev_pkg': 'php-dev',
  182. 'ext_conf_path': '/etc/php/7.0/mods-available',
  183. 'fpm_pkg': 'php-fpm',
  184. 'fpm_service': 'php7.0-fpm',
  185. 'gd_pkg': 'php-gd',
  186. 'imagick_pkg': 'php-imagick',
  187. 'imap_pkg': 'php-imap',
  188. 'intl_pkg': 'php-intl',
  189. 'json_pkg': 'php-json',
  190. 'ldap_pkg': 'php-ldap',
  191. 'local_bin': '/usr/local/bin',
  192. 'mail_pkg': 'php-mail',
  193. 'mbstring_pkg': 'php-mbstring',
  194. 'mcrypt_pkg': 'php-mcrypt',
  195. 'memcache_pkg': 'php-memcache',
  196. 'memcached_pkg': 'php-memcached',
  197. 'mongo_ext': 'mongodb.so',
  198. 'mongo_pecl': 'php-mongodb',
  199. 'mysql_pkg': 'php-mysql',
  200. 'mysqlnd_pkg': 'php',
  201. 'oauth_pkg': 'php-oauth',
  202. 'pear_pkg': 'php-pear',
  203. 'pgsql_pkg': 'php-pgsql',
  204. 'php_ini': '/etc/php/7.0/apache2/php.ini',
  205. 'php_pkg': 'php',
  206. 'phpenmod_command': 'phpenmod',
  207. 'readline_pkg': ' php-readline',
  208. 'redis_pkg': 'php-redis',
  209. 'soap_pkg': 'php-soap',
  210. 'sqlite_pkg': 'php-sqlite3',
  211. 'suhosin5_ext': 'suhosin.so',
  212. 'suhosin5_repo': 'https://github.com/sektioneins/suhosin',
  213. 'suhosin7_ext': 'suhosin7.so',
  214. 'suhosin7_repo': 'https://github.com/sektioneins/suhosin7',
  215. 'sybase_pkg': 'php-sybase',
  216. 'temp_dir': '/tmp',
  217. 'xml_pkg': 'php-xml',
  218. 'zip_pkg': 'php-zip',
  219. }
  220. }, grain="os", merge=salt['pillar.get']('php:lookup')) %}
  221. {%- else %}
  222. {# All other Ubuntu PHP definitions #}
  223. {%- set php = salt['grains.filter_by']({
  224. 'Ubuntu': {
  225. 'adodb_pkg': 'php5-adodb',
  226. 'apc_pkg': 'php-apc',
  227. 'apcu_pkg': 'php5-apcu',
  228. 'bcmath_pkg': 'php5',
  229. 'build_pkgs': ['libssl-dev', 'libcurl4-openssl-dev'],
  230. 'cgi_pkg': 'php5-cgi',
  231. 'cli_pkg': 'php5-cli',
  232. 'composer_bin': 'composer',
  233. 'curl_pkg': 'php5-curl',
  234. 'dev_pkg': 'php5-dev',
  235. 'ext_conf_path': salt['grains.filter_by']({
  236. 'precise': '/etc/php5/conf.d',
  237. 'default': '/etc/php5/mods-available',
  238. }, grain='oscodename'),
  239. 'fpm_pkg': 'php5-fpm',
  240. 'fpm_service': 'php5-fpm',
  241. 'gd_pkg': 'php5-gd',
  242. 'imagick_pkg': 'php5-imagick',
  243. 'imap_pkg': 'php5-imap',
  244. 'intl_pkg': 'php5-intl',
  245. 'json_pkg': 'php5-json',
  246. 'ldap_pkg': 'php5-ldap',
  247. 'local_bin': '/usr/local/bin',
  248. 'mail_pkg': 'php-mail',
  249. 'mbstring_pkg': 'php5',
  250. 'mcrypt_pkg': 'php5-mcrypt',
  251. 'memcache_pkg': 'php5-memcache',
  252. 'memcached_pkg': 'php5-memcached',
  253. 'mongo_ext': 'mongo.so',
  254. 'mongo_pecl': 'mongo',
  255. 'mysql_pkg': 'php5-mysql',
  256. 'mysqlnd_pkg': 'php5-mysqlnd',
  257. 'oauth_pkg': 'php5-oauth',
  258. 'pear_pkg': 'php-pear',
  259. 'pgsql_pkg': 'php5-pgsql',
  260. 'php_ini': '/etc/php5/apache2/php.ini',
  261. 'php_pkg': 'php5',
  262. 'phpenmod_command': salt['grains.filter_by']({
  263. 'precise': 'true',
  264. 'default': 'php5enmod',
  265. }, grain='oscodename'),
  266. 'phpenmod_command': 'php5enmod',
  267. 'readline_pkg': ' php5-readline',
  268. 'redis_pkg': 'php5-redis',
  269. 'soap_pkg': 'php-soap',
  270. 'sqlite_pkg': 'php5-sqlite',
  271. 'suhosin5_ext': 'suhosin.so',
  272. 'suhosin5_repo': 'https://github.com/sektioneins/suhosin',
  273. 'suhosin7_ext': 'suhosin7.so',
  274. 'suhosin7_repo': 'https://github.com/sektioneins/suhosin7',
  275. 'sybase_pkg': 'php5-sybase',
  276. 'temp_dir': '/tmp',
  277. 'xml_pkg': 'php5',
  278. 'zip_pkg': 'php5',
  279. },
  280. }, grain='os', merge=salt['pillar.get']('php:lookup')) %}
  281. {%- endif %}
  282. {%- endif %}
  283. {%- else %}
  284. {%- set php = salt['grains.filter_by']({
  285. 'Debian': {
  286. 'adodb_pkg': 'php5-adodb',
  287. 'apc_pkg': 'php-apc',
  288. 'apcu_pkg': salt['grains.filter_by']({
  289. 'wheezy': 'php-apc',
  290. 'jessie': 'php5-apcu',
  291. }, grain='oscodename'),
  292. 'bcmath_pkg': 'php5-fpm',
  293. 'build_pkgs': ['libssl-dev', 'libcurl4-openssl-dev', 'build-essential'],
  294. 'cgi_pkg': 'php5-cgi',
  295. 'cli_pkg': 'php5-cli',
  296. 'composer_bin': 'composer',
  297. 'curl_pkg': 'php5-curl',
  298. 'dev_pkg': 'php5-dev',
  299. 'ext_conf_path': '/etc/php5/mods-available',
  300. 'fpm_pkg': 'php5-fpm',
  301. 'fpm_service': 'php5-fpm',
  302. 'gd_pkg': 'php5-gd',
  303. 'imagick_pkg': 'php5-imagick',
  304. 'imap_pkg': 'php5-imap',
  305. 'intl_pkg': 'php5-intl',
  306. 'json_pkg': 'php5-json',
  307. 'ldap_pkg': 'php5-ldap',
  308. 'local_bin': '/usr/local/bin',
  309. 'mail_pkg': 'php-mail',
  310. 'mbstring_pkg': 'php5',
  311. 'mcrypt_pkg': 'php5-mcrypt',
  312. 'memcache_pkg': 'php5-memcache',
  313. 'memcached_pkg': 'php5-memcached',
  314. 'mongo_ext': 'mongo.so',
  315. 'mongo_pecl': 'mongo',
  316. 'mysql_pkg': 'php5-mysql',
  317. 'mysqlnd_pkg': 'php5-mysqlnd',
  318. 'oauth_pkg': 'php5-oauth',
  319. 'pear_pkg': 'php-pear',
  320. 'pgsql_pkg': 'php5-pgsql',
  321. 'php_ini': '/etc/php5/apache2/php.ini',
  322. 'php_pkg': 'php5',
  323. 'phpenmod_command': 'php5enmod',
  324. 'readline_pkg': ' php5-readline',
  325. 'redis_pkg': 'php5-redis',
  326. 'soap_pkg': 'php-soap',
  327. 'sqlite_pkg': 'php5-sqlite',
  328. 'suhosin5_ext': 'suhosin.so',
  329. 'suhosin5_repo': 'https://github.com/sektioneins/suhosin',
  330. 'suhosin7_ext': 'suhosin7.so',
  331. 'suhosin7_repo': 'https://github.com/sektioneins/suhosin7',
  332. 'sybase_pkg': 'php5-sybase',
  333. 'temp_dir': '/tmp',
  334. 'xml_pkg': 'php5',
  335. 'zip_pkg': 'php5',
  336. },
  337. 'RedHat': {
  338. 'adodb_pkg': 'php-adodb',
  339. 'apc_pkg': 'php-pecl-apcu',
  340. 'apcu_pkg': 'php-pecl-apcu',
  341. 'bcmath_pkg': 'php-bcmath',
  342. 'build_pkgs': ['openssl-devel', 'gcc'],
  343. 'cgi_pkg': 'php-cgi',
  344. 'cli_pkg': 'php-cli',
  345. 'composer_bin': 'composer',
  346. 'curl_pkg': 'curl',
  347. 'dev_pkg': 'php-devel',
  348. 'ext_conf_path': '/etc/php.d',
  349. 'fpm_pkg': 'php-fpm',
  350. 'fpm_service': 'php-fpm',
  351. 'gd_pkg': 'php-gd',
  352. 'imagick_pkg': 'php-pecl-imagick',
  353. 'imap_pkg': 'php-imap',
  354. 'intl_pkg': 'php-intl',
  355. 'json_pkg': 'php-common',
  356. 'ldap_pkg': 'php-ldap',
  357. 'local_bin': '/usr/local/bin',
  358. 'mail_pkg': 'php-pear-Mail',
  359. 'mbstring_pkg': 'php-mbstring',
  360. 'mcrypt_pkg': 'php-mcrypt',
  361. 'memcache_pkg': 'php-pecl-memcache',
  362. 'memcached_pkg': 'php-pecl-memcached',
  363. 'mongo_ext': 'mongo.so',
  364. 'mongo_pecl': 'mongo',
  365. 'mysql_pkg': 'php-mysql',
  366. 'mysqlnd_pkg': 'php-mysqlnd',
  367. 'oauth_pkg': 'php-pecl-oauth',
  368. 'pear_pkg': 'php-pear',
  369. 'pgsql_pkg': 'php-pgsql',
  370. 'php_ini': '/etc/php.ini',
  371. 'php_pkg': 'php',
  372. 'readline_pkg': 'php-cli',
  373. 'redis_pkg': 'php-pecl-redis',
  374. 'soap_pkg': 'php-soap',
  375. 'sqlite_pkg': 'php-pdo',
  376. 'suhosin5_ext': 'suhosin.so',
  377. 'suhosin5_repo': 'https://github.com/sektioneins/suhosin',
  378. 'suhosin7_ext': 'suhosin7.so',
  379. 'suhosin7_repo': 'https://github.com/sektioneins/suhosin7',
  380. 'temp_dir': '/tmp',
  381. 'xml_pkg': 'php-xml',
  382. 'zip_pkg': 'php',
  383. },
  384. 'Suse': {
  385. 'adodb_pkg': 'php5-dba',
  386. 'cli_pkg': 'php5-cli',
  387. 'composer_bin': 'composer',
  388. 'curl_pkg': 'php5-curl',
  389. 'dev_pkg': 'php5-devel',
  390. 'ext_conf_path': '/etc/php5/conf.d',
  391. 'fpm_pkg': 'php5-fpm',
  392. 'fpm_service': 'php5-fpm',
  393. 'gd_pkg': 'php5-gd',
  394. 'imap_pkg': 'php5-imap',
  395. 'intl_pkg': 'php5-intl',
  396. 'json_pkg': 'php5-json',
  397. 'ldap_pkg': 'php5-ldap',
  398. 'local_bin': '/usr/local/bin',
  399. 'mbstring_pkg': 'php5-mbstring',
  400. 'mcrypt_pkg': 'php5-mcrypt',
  401. 'mongo_ext': 'mongo.so',
  402. 'mongo_pecl': 'mongo',
  403. 'mysql_pkg': 'php5-mysql',
  404. 'pear_pkg': 'php5-pear',
  405. 'pgsql_pkg': 'php5-pgsql',
  406. 'php_ini': '/etc/php5/apache2/php.ini',
  407. 'php_pkg': 'php5',
  408. 'readline_pkg': ' php5-readline',
  409. 'soap_pkg': 'php5-soap',
  410. 'sqlite_pkg': 'php5-sqlite',
  411. 'suhosin5_ext': 'suhosin.so',
  412. 'suhosin5_repo': 'https://github.com/sektioneins/suhosin',
  413. 'suhosin7_ext': 'suhosin7.so',
  414. 'suhosin7_repo': 'https://github.com/sektioneins/suhosin7',
  415. 'temp_dir': '/tmp',
  416. 'xml_pkg': ['php5-xmlreader','php5-xmlwriter','php5-xmlrpc'],
  417. 'zip_pkg': 'php5-zip',
  418. },
  419. 'FreeBSD': {
  420. 'local_bin': '/usr/local/bin',
  421. 'composer_bin': 'composer',
  422. 'temp_dir': '/tmp',
  423. },
  424. }, merge=salt['pillar.get']('php:lookup')) %}
  425. {%- endif %}