=========== | |||||
php-formula | |||||
=========== | |||||
0.2.0 | |||||
----- | |||||
- Added .ng states | |||||
0.1.0 | |||||
----- | |||||
- Initial version |
Installs the php-apc package. | Installs the php-apc package. | ||||
``php.adodb`` | ``php.adodb`` | ||||
------------ | |||||
------------- | |||||
Installs the php-adodb package. | Installs the php-adodb package. | ||||
``php.cgi`` | ``php.cgi`` | ||||
------------ | |||||
----------- | |||||
Installs the php-cgi package. | Installs the php-cgi package. | ||||
``php.cli`` | ``php.cli`` | ||||
------------ | |||||
----------- | |||||
Installs the php-cli package. | Installs the php-cli package. | ||||
``php.imagick`` | ``php.imagick`` | ||||
------------ | |||||
--------------- | |||||
Installs the php-imagick package. | Installs the php-imagick package. | ||||
Installs the php-ldap package. | Installs the php-ldap package. | ||||
``php.mbstring`` | ``php.mbstring`` | ||||
--------------- | |||||
---------------- | |||||
Installs the php-mbstring package. | Installs the php-mbstring package. | ||||
``php.memcache`` | ``php.memcache`` | ||||
------------ | |||||
---------------- | |||||
Installs the php-memcache package. | Installs the php-memcache package. | ||||
``php.memcached`` | ``php.memcached`` | ||||
------------ | |||||
----------------- | |||||
Installs the php-memcached package. | Installs the php-memcached package. | ||||
Installs the php-mysql package. | Installs the php-mysql package. | ||||
``php.mysqlnd`` | ``php.mysqlnd`` | ||||
------------ | |||||
--------------- | |||||
Installs the php-mysqlnd package. | Installs the php-mysqlnd package. | ||||
Installs the php-pear package. | Installs the php-pear package. | ||||
``php.pgsql`` | ``php.pgsql`` | ||||
------------ | |||||
------------- | |||||
Installs the php-pgsql package. | Installs the php-pgsql package. | ||||
Installs the php-soap package. | Installs the php-soap package. | ||||
``php.suhosin`` | ``php.suhosin`` | ||||
------------ | |||||
--------------- | |||||
Installs the php-suhosin package. | Installs the php-suhosin package. | ||||
``php.xml`` | ``php.xml`` | ||||
------------ | |||||
----------- | |||||
Installs the php-xml package. | Installs the php-xml package. | ||||
Next-generation, alternate approach | |||||
=================================== | |||||
The following states provide an alternate approach to managing PHP and FPM | |||||
pools, as well as code organization. Please provide feedback by filing issues, | |||||
discussing in ``#salt`` in Freenode and the mailing list as normal. | |||||
**Note:** php.ng states require the merge parameter of salt.modules.pillar.get(), | |||||
first available in the Helium release. | |||||
.. contents:: | |||||
:local: | |||||
``php.ng`` | |||||
---------- | |||||
Installs the php package. | |||||
``php.ng.adodb`` | |||||
---------------- | |||||
Installs the php-adodb package. | |||||
``php.ng.apc`` | |||||
-------------- | |||||
Installs the php-apc package. | |||||
``php.ng.cgi`` | |||||
-------------- | |||||
Installs the php-cgi package. | |||||
``php.ng.cli`` | |||||
-------------- | |||||
Meta-state that combines `php.ng.cli.install`_ and `php.ng.cli.ini`_. | |||||
``php.ng.cli.install`` | |||||
---------------------- | |||||
Installs the php-cli package. | |||||
``php.ng.cli.ini`` | |||||
------------------ | |||||
Manages the php-cli ini file. | |||||
``php.ng.curl`` | |||||
--------------- | |||||
Installs the php5-curl package on Debian, and ensures that curl itself is | |||||
installed for RedHat systems, this is due to the curl libs being provided by | |||||
php-common, which will get installed with the main php package. | |||||
``php.ng.fpm`` | |||||
-------------- | |||||
Meta-state that combines all php.ng.fpm states. | |||||
``php.ng.fpm.config`` | |||||
--------------------- | |||||
Manages the (non-pool) php-fpm config files. | |||||
``php.ng.fpm.install`` | |||||
---------------------- | |||||
Installs the php-fpm package. | |||||
``php.ng.fpm.pools`` | |||||
-------------------- | |||||
Meta-state that combines `php.ng.fpm.service`_ and `php.ng.fpm.pools_config`_ | |||||
``php.ng.fpm.pools_config`` | |||||
--------------------------- | |||||
Manages php-fpm pool config files. | |||||
``php.ng.fpm.service`` | |||||
---------------------- | |||||
Manages the php-fpm service. | |||||
``php.ng.gd`` | |||||
------------- | |||||
Installs the php-gd package. | |||||
``php.ng.imagick`` | |||||
------------------ | |||||
Installs the php-imagick package. | |||||
``php.ng.imap`` | |||||
--------------- | |||||
Installs the php-imap package. | |||||
``php.ng.json`` | |||||
--------------- | |||||
Installs the php-json package. | |||||
``php.ng.ldap`` | |||||
--------------- | |||||
Installs the php-ldap package. | |||||
``php.ng.mbstring`` | |||||
------------------- | |||||
Installs the php-mbstring package. | |||||
``php.ng.mcrypt`` | |||||
----------------- | |||||
Installs the php-mcrypt package. | |||||
``php.ng.memcache`` | |||||
------------------- | |||||
Installs the php-memcache package. | |||||
``php.ng.memcached`` | |||||
-------------------- | |||||
Installs the php-memcached package. | |||||
``php.ng.mysql`` | |||||
---------------- | |||||
Installs the php-mysql package. | |||||
``php.ng.mysqlnd`` | |||||
------------------ | |||||
Installs the php-mysqlnd package. | |||||
``php.ng.pear`` | |||||
--------------- | |||||
Installs the php-pear package. | |||||
``php.ng.pgsql`` | |||||
---------------- | |||||
Installs the php-pgsql package. | |||||
``php.ng.soap`` | |||||
--------------- | |||||
Installs the php-soap package. | |||||
``php.ng.suhosin`` | |||||
------------------ | |||||
Installs the php-suhosin package. | |||||
``php.ng.xml`` | |||||
-------------- | |||||
Installs the php-xml package. |
0.0.4 |
'adodb_pkg': 'php5-adodb', | 'adodb_pkg': 'php5-adodb', | ||||
'pgsql_pkg': 'php5-pgsql', | 'pgsql_pkg': 'php5-pgsql', | ||||
'ldap_pkg': 'php5-ldap', | 'ldap_pkg': 'php5-ldap', | ||||
'php_ini': '/etc/php5/apache2/php.ini', | |||||
}, | }, | ||||
'RedHat': { | 'RedHat': { | ||||
'php_pkg': 'php', | 'php_pkg': 'php', | ||||
'adodb_pkg': 'php-adodb', | 'adodb_pkg': 'php-adodb', | ||||
'pgsql_pkg': 'php-pgsql', | 'pgsql_pkg': 'php-pgsql', | ||||
'ldap_pkg': 'php-ldap', | 'ldap_pkg': 'php-ldap', | ||||
'php_ini': '/etc/php.ini', | |||||
}, | }, | ||||
}, merge=salt['pillar.get']('php:lookup')) %} | }, merge=salt['pillar.get']('php:lookup')) %} |
{% set state = 'adodb' %} | |||||
{% include "php/ng/installed.jinja" %} |
{% set state = 'apc' %} | |||||
{% include "php/ng/installed.jinja" %} |
{% set state = 'cgi' %} | |||||
{% include "php/ng/installed.jinja" %} |
# Manages the php cli main ini file | |||||
{% from 'php/ng/map.jinja' import php with context %} | |||||
{% from "php/ng/ini.jinja" import php_ini %} | |||||
{% set settings = php.ini.defaults %} | |||||
{% do settings.update(php.cli.ini.settings) %} | |||||
php_cli_ini: | |||||
{{ php_ini(php.lookup.cli.ini, php.cli.ini.opts, settings) }} |
# Installs php-cli and manages the associated php.ini | |||||
include: | |||||
- php.ng.cli.install | |||||
- php.ng.cli.ini | |||||
extend: | |||||
php_cli_ini: | |||||
file: | |||||
- require: | |||||
- sls: php.ng.cli.install |
{% set state = 'cli' %} | |||||
{% include "php/ng/installed.jinja" %} |
{% set state = 'curl' %} | |||||
{% include "php/ng/installed.jinja" %} |
{%- macro php_block(config) %} | |||||
{% for sections in config %} | |||||
{%- for section, settings in sections.items() -%} | |||||
{%- if settings is number or settings is string %} | |||||
{{ section }} = {{ settings }} | |||||
{%- else %} | |||||
[{{ section }}] | |||||
{%- for setting in settings -%} | |||||
{%- for key, value in setting.items() %} | |||||
{%- if value is number or value is string %} | |||||
{{ key }} = {{ value }} | |||||
{%- elif value is iterable -%} | |||||
{%- if key == 'error_reporting' %} | |||||
{{ key }} = {{ value|join(" & ") }} | |||||
{%- else %} | |||||
{{ key }} = {{ value|join(",") }} | |||||
{%- endif -%} | |||||
{%- endif -%} | |||||
{%- endfor -%} | |||||
{%- endfor -%} | |||||
{%- endif -%} | |||||
{%- endfor -%} | |||||
{% endfor %} | |||||
{%- endmacro -%} | |||||
; PHP configuration file. | |||||
; | |||||
; **** DO NOT EDIT THIS FILE **** | |||||
; | |||||
; This file is managed by Salt via {{ source }} | |||||
{{ php_block(config) }} |
# Manages the php-fpm main ini file | |||||
{% from 'php/ng/map.jinja' import php with context %} | |||||
{% from "php/ng/ini.jinja" import php_ini %} | |||||
{% set ini_settings = php.ini.defaults %} | |||||
{% do ini_settings.update(php.fpm.config.ini.settings) %} | |||||
{% set conf_settings = php.lookup.fpm.defaults %} | |||||
{% do conf_settings.update(php.fpm.config.conf.settings) %} | |||||
php_fpm_ini_config: | |||||
{{ php_ini(php.lookup.fpm.ini, php.fpm.config.ini.opts, ini_settings) }} | |||||
php_fpm_conf_config: | |||||
{{ php_ini(php.lookup.fpm.conf, php.fpm.config.conf.opts, conf_settings) }} |
# Meta-state to fully install php.fpm | |||||
include: | |||||
- php.ng.fpm.config | |||||
- php.ng.fpm.service | |||||
- php.ng.fpm.pools | |||||
extend: | |||||
php_fpm_service: | |||||
service: | |||||
- watch: | |||||
- file: php_fpm_ini_config | |||||
- file: php_fpm_conf_config | |||||
- require: | |||||
- sls: php.ng.fpm.config |
{% set state = 'fpm' %} | |||||
{% include "php/ng/installed.jinja" %} |
# Manages the php-fpm pools config files | |||||
{% from "php/ng/map.jinja" import php with context %} | |||||
{% from "php/ng/macro.jinja" import sls_block %} | |||||
{% from "php/ng/fpm/pools_config.sls" import pool_states with context %} | |||||
{% macro file_requisites(states) %} | |||||
{%- for state in states %} | |||||
- file: {{ state }} | |||||
{%- endfor -%} | |||||
{% endmacro %} | |||||
include: | |||||
- php.ng.fpm.service | |||||
- php.ng.fpm.pools_config | |||||
extend: | |||||
php_fpm_service: | |||||
service: | |||||
- watch: | |||||
{{ file_requisites(pool_states) }} | |||||
- require: | |||||
{{ file_requisites(pool_states) }} |
# Manages the php-fpm pools config files | |||||
{% from 'php/ng/map.jinja' import php with context %} | |||||
{% from "php/ng/macro.jinja" import sls_block, serialize %} | |||||
# Simple path concatenation. | |||||
{% macro path_join(file, root) -%} | |||||
{{ root ~ '/' ~ file }} | |||||
{%- endmacro %} | |||||
{% set pool_states = [] %} | |||||
{% for pool, config in php.fpm.pools.items() %} | |||||
{% set state = 'php_fpm_pool_conf_' ~ loop.index0 %} | |||||
{% set fpath = path_join(pool, php.lookup.fpm.pools) %} | |||||
{{ state }}: | |||||
{% if config.enabled %} | |||||
file.managed: | |||||
{{ sls_block(config.get('opts', {})) }} | |||||
- name: {{ fpath }} | |||||
- source: salt://php/ng/files/php.ini | |||||
- template: jinja | |||||
- context: | |||||
config: {{ serialize(config.get('settings', {})) }} | |||||
{% else %} | |||||
file.absent: | |||||
- name: {{ fpath }} | |||||
{% endif %} | |||||
{% do pool_states.append(state) %} | |||||
{% endfor %} | |||||
# Manages the php-fpm service. | |||||
{% from "php/ng/map.jinja" import php with context %} | |||||
{% from "php/ng/macro.jinja" import sls_block %} | |||||
{% set service_function = {True:'running', False:'dead'}.get(php.fpm.service.enabled) %} | |||||
include: | |||||
- php.ng.fpm.install | |||||
php_fpm_service: | |||||
service.{{ service_function }}: | |||||
{{ sls_block(php.fpm.service.opts) }} | |||||
- name: {{ php.lookup.fpm.service }} | |||||
- enable: {{ php.fpm.service.enabled }} | |||||
- require: | |||||
- sls: php.ng.fpm.install | |||||
- watch: | |||||
- pkg: php_install_fpm |
{% set state = 'gd' %} | |||||
{% include "php/ng/installed.jinja" %} |
{% set state = 'imagick' %} | |||||
{% include "php/ng/installed.jinja" %} |
{% set state = 'imap' %} | |||||
{% include "php/ng/installed.jinja" %} |
# php.ini management macro. | |||||
{% from "php/ng/macro.jinja" import sls_block, serialize %} | |||||
{% macro php_ini(filename, opts={}, settings={}) %} | |||||
file.managed: | |||||
{{ sls_block(opts) }} | |||||
- name: {{ filename }} | |||||
- source: salt://php/ng/files/php.ini | |||||
- template: jinja | |||||
- context: | |||||
config: {{ serialize(settings) }} | |||||
{%- endmacro -%} |
{% set state = 'php' %} | |||||
{% include "php/ng/installed.jinja" %} |
# Template for installing packages. | |||||
{% from "php/ng/map.jinja" import php with context %} | |||||
{% from "php/ng/macro.jinja" import sls_block %} | |||||
{% set pkginfo = php.lookup.pkgs.get(state) %} | |||||
{% set pkgs = [] %} | |||||
{% set specials = [] %} | |||||
{% if pkginfo is iterable and pkginfo is not string %} | |||||
{% for pkg in pkginfo %} | |||||
{% if pkg is mapping %} | |||||
{% do specials.append(pkg) %} | |||||
{% else %} | |||||
{% do pkgs.append(pkg) %} | |||||
{% endif %} | |||||
{% endfor %} | |||||
{% else %} | |||||
{% do pkgs.append(pkginfo) %} | |||||
{% endif %} | |||||
php_install_{{ state }}: | |||||
pkg.installed: | |||||
- name: {{ state }} | |||||
- pkgs: {{ pkgs|json() }} | |||||
{% for pkg in specials %} | |||||
php_install_{{ state }}_{{ pkg.get('name') }}: | |||||
pkg.installed: | |||||
{{ sls_block(pkg) }} | |||||
{% endfor %} |
{% set state = 'json' %} | |||||
{% include "php/ng/installed.jinja" %} |
{% set state = 'ldap' %} | |||||
{% include "php/ng/installed.jinja" %} |
# Returns a generic block of values suitable for inclusion in most states. | |||||
{% macro sls_block(dict, ind=4) %} | |||||
{% for key, value in dict.items() %} | |||||
{{ '-'|indent(ind, True) }} {{ key }}: {{ value|json() }} | |||||
{% endfor %} | |||||
{% endmacro %} | |||||
# Serializes dicts into sequenced data | |||||
{%- macro serialize(data) -%} | |||||
{%- if data is mapping -%} | |||||
{%- set ret = [] -%} | |||||
{%- for key, value in data.items() -%} | |||||
{%- set value = serialize(value)|load_json() -%} | |||||
{%- do ret.append({key: value}) -%} | |||||
{%- endfor -%} | |||||
{%- elif data is iterable and data is not string -%} | |||||
{%- set ret = [] -%} | |||||
{%- for value in data -%} | |||||
{%- set value = serialize(value)|load_json() -%} | |||||
{%- do ret.append(value) -%} | |||||
{%- endfor -%} | |||||
{%- else -%} | |||||
{% set ret = data %} | |||||
{%- endif -%} | |||||
{{ ret|json() }} | |||||
{%- endmacro -%} |
{% set php = salt['pillar.get']('php:ng', { | |||||
'lookup': salt['grains.filter_by']({ | |||||
'Debian': { | |||||
'pkgs': { | |||||
'php': 'php5', | |||||
'apc': 'php-apc', | |||||
'cgi': 'php5-cgi', | |||||
'cli': 'php5-cli', | |||||
'curl': 'php5-curl', | |||||
'fpm': 'php5-fpm', | |||||
'gd': 'php5-gd', | |||||
'mbstring': 'php5', | |||||
'mcrypt': 'php5-mcrypt', | |||||
'memcache': 'php5-memcache', | |||||
'memcached': 'php5-memcached', | |||||
'mysql': 'php5-mysql', | |||||
'mysqlnd': 'php5-mysqlnd', | |||||
'pear': ' php-pear', | |||||
'soap': ' php-soap', | |||||
'xml': ' php5-xml', | |||||
'imagick': 'php5-imagick', | |||||
'suhosin': 'php5-suhosin', | |||||
'imap': 'php5-imap', | |||||
'adodb': 'php5-adodb', | |||||
'pgsql': 'php5-pgsql', | |||||
'ldap': 'php5-ldap', | |||||
'json': 'php5-json', | |||||
}, | |||||
'fpm': { | |||||
'conf': '/etc/php5/fpm/php-fpm.conf', | |||||
'ini': '/etc/php5/fpm/php.ini', | |||||
'pools': '/etc/php5/fpm/pool.d', | |||||
'service': 'php5-fpm', | |||||
'defaults': odict([ | |||||
('global', odict([ | |||||
('pid', '/var/run/php5-fpm.pid'), | |||||
('error_log', '/var/log/php5-fpm.log'), | |||||
('include', '/etc/php5/fpm/pool.d/*.conf'), | |||||
])), | |||||
]), | |||||
}, | |||||
'cli': { | |||||
'ini': '/etc/php5/cli/php.ini', | |||||
}, | |||||
}, | |||||
'RedHat': { | |||||
'pkgs': { | |||||
'php': 'php', | |||||
'apc': 'php-pecl-apc', | |||||
'cgi': 'php-cgi', | |||||
'cli': 'php-cli', | |||||
'curl': ['php-common', 'curl'], | |||||
'fpm': 'php-fpm', | |||||
'gd': 'php-gd', | |||||
'mbstring': 'php-mbstring', | |||||
'mcrypt': 'php-mcrypt', | |||||
'memcache': 'php-pecl-memcache', | |||||
'memcached': 'php-pecl-memcached', | |||||
'mysql': 'php-mysql', | |||||
'mysqlnd': 'php-mysqlnd', | |||||
'pear': ' php-pear', | |||||
'soap': ' php-soap', | |||||
'xml': ' php-xml', | |||||
'imagick': 'php-imagick', | |||||
'suhosin': 'php-suhosin', | |||||
'imap': 'php-imap', | |||||
'adodb': 'php-adodb', | |||||
'pgsql': 'php-pgsql', | |||||
'ldap': 'php-ldap', | |||||
'json': 'php-common', | |||||
}, | |||||
'fpm': { | |||||
'conf': '/etc/php-fpm.conf', | |||||
'ini': '/etc/php.ini', | |||||
'pools': '/etc/php-fpm.d', | |||||
'service': 'php-fpm', | |||||
'defaults': { | |||||
'global': { | |||||
'pid': '/var/run/php-fpm/php-fpm.pid', | |||||
'error_log': '/var/log/php-fpm/error.log', | |||||
'include': '/etc/php-fpm.d/*.conf', | |||||
}, | |||||
}, | |||||
}, | |||||
'cli': { | |||||
'ini': '/etc/php.ini', | |||||
}, | |||||
}, | |||||
}), | |||||
'fpm': { | |||||
'service': { | |||||
'enabled': True, | |||||
'opts': {}, | |||||
}, | |||||
'config': { | |||||
'ini': { | |||||
'opts': {}, | |||||
'settings': {}, | |||||
}, | |||||
'conf': { | |||||
'opts': {}, | |||||
'settings': {}, | |||||
}, | |||||
}, | |||||
'pools': {}, | |||||
}, | |||||
'cli': { | |||||
'ini': { | |||||
'opts': {}, | |||||
'settings': {}, | |||||
} | |||||
}, | |||||
'ini': { | |||||
'defaults': { | |||||
'PHP': { | |||||
'engine': 'On', | |||||
'short_open_tag': 'Off', | |||||
'asp_tags': 'Off', | |||||
'precision': 14, | |||||
'output_buffering': 4096, | |||||
'zlib.output_compression': 'Off', | |||||
'implicit_flush': 'Off', | |||||
'serialize_precision': 17, | |||||
'disable_functions': ['pcntl_alarm','pcntl_fork','pcntl_waitpid','pcntl_wait','pcntl_wifexited','pcntl_wifstopped','pcntl_wifsignaled', | |||||
'pcntl_wexitstatus','pcntl_wtermsig','pcntl_wstopsig','pcntl_signal','pcntl_signal_dispatch','pcntl_get_last_error','pcntl_strerror', | |||||
'pcntl_sigprocmask','pcntl_sigwaitinfo','pcntl_sigtimedwait','pcntl_exec','pcntl_getpriority','pcntl_setpriority'], | |||||
'zend.enable_gc': 'On', | |||||
'expose_php': 'On', | |||||
'max_execution_time': 30, | |||||
'max_input_time': 60, | |||||
'max_input_nesting_level': 64, | |||||
'max_input_vars': 1000, | |||||
'memory_limit': '128M', | |||||
'error_reporting': ['E_ALL', '~E_DEPRECATED', '~E_STRICT'], | |||||
'display_errors': 'Off', | |||||
'display_startup_errors': 'Off', | |||||
'log_errors': 'On', | |||||
'log_errors_max_len': 1024, | |||||
'ignore_repeated_errors': 'Off', | |||||
'ignore_repeated_source': 'Off', | |||||
'report_memleaks': 'On', | |||||
'track_errors': 'Off', | |||||
'html_errors': 'On', | |||||
'variables_order': 'GPCS', | |||||
'request_order': 'GP', | |||||
'register_argc_argv': 'Off', | |||||
'auto_globals_jit': 'On', | |||||
'post_max_size': '8M', | |||||
'default_mimetype': '"text/html"', | |||||
'enable_dl': 'Off', | |||||
'file_uploads': 'On', | |||||
'upload_max_filesize': '2M', | |||||
'max_file_uploads': 20, | |||||
'allow_url_fopen': 'On', | |||||
'allow_url_include': 'Off', | |||||
'default_socket_timeout': 60 | |||||
}, | |||||
'CLI Server': { | |||||
'cli_server.color': 'On' | |||||
}, | |||||
'Date': { | |||||
'date.timezone': 'America/New_York' | |||||
}, | |||||
'Pdo_mysql': { | |||||
'pdo_mysql.cache_size': 2000 | |||||
}, | |||||
'mail function': { | |||||
'SMTP': 'localhost', | |||||
'mail.add_x_header': 'On' | |||||
}, | |||||
'SQL': { | |||||
'sql.safe_mode': 'Off' | |||||
}, | |||||
'ODBC': { | |||||
'odbc.allow_persistent': 'On', | |||||
'odbc.check_persistent': 'On', | |||||
'odbc.max_persistent': '-1', | |||||
'odbc.max_links': '-1', | |||||
'odbc.defaultlrl': 4096, | |||||
'odbc.defaultbinmode': 1 | |||||
}, | |||||
'Interbase': { | |||||
'ibase.allow_persistent': 1, | |||||
'ibase.max_persistent': -1, | |||||
'ibase.max_links': -1, | |||||
'ibase.timestampformat': '"%Y-%m-%d %H:%M:%S"', | |||||
'ibase.dateformat': '"%Y-%m-%d"', | |||||
'ibase.timeformat': '"%H:%M:%S"' | |||||
}, | |||||
'MySQL': { | |||||
'mysql.allow_local_infile': 'On', | |||||
'mysql.allow_persistent': 'On', | |||||
'mysql.cache_size': '2000', | |||||
'mysql.max_persistent': -1, | |||||
'mysql.max_links': -1, | |||||
'mysql.connect_timeout': 60, | |||||
'mysql.trace_mode': 'Off' | |||||
}, | |||||
'MySQLi': { | |||||
'mysqli.max_persistent': -1, | |||||
'mysqli.allow_persistent': 'On', | |||||
'mysqli.max_links': -1, | |||||
'mysqli.cache_size': 2000, | |||||
'mysqli.default_port': 3306, | |||||
'mysqli.reconnect': 'Off' | |||||
}, | |||||
'mysqlnd': { | |||||
'mysqlnd.collect_statistics': 'On', | |||||
'mysqlnd.collect_memory_statistics': 'Off' | |||||
}, | |||||
'PostgreSQL': { | |||||
'pgsql.allow_persistent': 'On', | |||||
'pgsql.auto_reset_persistent': 'Off', | |||||
'pgsql.max_persistent': -1, | |||||
'pgsql.max_links': -1, | |||||
'pgsql.ignore_notice': 0, | |||||
'pgsql.log_notice': 0 | |||||
}, | |||||
'Sybase-CT': { | |||||
'sybct.allow_persistent': 'On', | |||||
'sybct.max_persistent': -1, | |||||
'sybct.max_links': -1, | |||||
'sybct.min_server_severity': 10, | |||||
'sybct.min_client_severity': 10 | |||||
}, | |||||
'bcmath': { | |||||
'bcmath.scale': 0 | |||||
}, | |||||
'Session': { | |||||
'session.save_handler': 'files', | |||||
'session.use_strict_mode': 0, | |||||
'session.use_cookies': 1, | |||||
'session.use_only_cookies': 1, | |||||
'session.name': 'PHPSESSID', | |||||
'session.auto_start': 0, | |||||
'session.cookie_lifetime': 0, | |||||
'session.cookie_path': '/', | |||||
'session.serialize_handler': 'php', | |||||
'session.gc_probability': 0, | |||||
'session.gc_divisor': 1000, | |||||
'session.gc_maxlifetime': 1440, | |||||
'session.bug_compat_42': 'Off', | |||||
'session.bug_compat_warn': 'Off', | |||||
'session.cache_limiter': 'nocache', | |||||
'session.cache_expire': '180', | |||||
'session.use_trans_sid': 0, | |||||
'session.hash_function': 0, | |||||
'session.hash_bits_per_character': 5, | |||||
'url_rewriter.tags': '"a=href,area=href,frame=src,input=src,form=fakeentry"' | |||||
}, | |||||
'MSSQL': { | |||||
'mssql.allow_persistent': 'On', | |||||
'mssql.max_persistent': -1, | |||||
'mssql.max_links': -1, | |||||
'mssql.min_error_severity': 10, | |||||
'mssql.min_message_severity': 10, | |||||
'mssql.compatibility_mode': 'Off', | |||||
'mssql.secure_connection': 'Off' | |||||
}, | |||||
'Tidy': { | |||||
'tidy.clean_output': 'Off' | |||||
}, | |||||
'soap': { | |||||
'soap.wsdl_cache_enabled': 1, | |||||
'soap.wsdl_cache_dir': '"/tmp"', | |||||
'soap.wsdl_cache_ttl': 86400, | |||||
'soap.wsdl_cache_limit': 5 | |||||
}, | |||||
'ldap': { | |||||
'ldap.max_links': -1 | |||||
}, | |||||
}, | |||||
}, | |||||
}, merge=True) %} |
{% set state = 'mbstring' %} | |||||
{% include "php/ng/installed.jinja" %} |
{% set state = 'mcrypt' %} | |||||
{% include "php/ng/installed.jinja" %} |
{% set state = 'memcache' %} | |||||
{% include "php/ng/installed.jinja" %} |
{% set state = 'memcached' %} | |||||
{% include "php/ng/installed.jinja" %} |
{% set state = 'mysql' %} | |||||
{% include "php/ng/installed.jinja" %} |
{% set state = 'mysqld' %} | |||||
{% include "php/ng/installed.jinja" %} |
{% set state = 'pear' %} | |||||
{% include "php/ng/installed.jinja" %} |
{% set state = 'pgsql' %} | |||||
{% include "php/ng/installed.jinja" %} |
{% set state = 'soap' %} | |||||
{% include "php/ng/installed.jinja" %} |
{% set state = 'suhosin' %} | |||||
{% include "php/ng/installed.jinja" %} |
{% set state = 'xml' %} | |||||
{% include "php/ng/installed.jinja" %} |
## php.ng pillar examples | |||||
php: | |||||
ng: | |||||
# this section contains mostly grain filtered data, while overrides | |||||
# are possible in the pillar for unique cases, if your OS is not | |||||
# represented, please consider adding it to the map.jinja for | |||||
# upstream inclusion | |||||
lookup: | |||||
# package definitions, these can strings, lists of strings, or | |||||
# lists of dictionaries | |||||
pkgs: | |||||
memcached: php5-memcached | |||||
# ensures both will be installed | |||||
curl: | |||||
- php-common | |||||
- curl | |||||
# a dictionary can be used in more complex cases where you want | |||||
# to pass forward special arguments to the pkg.installed call | |||||
# you MUST include the name argument for this to work | |||||
cli: | |||||
- | |||||
name: php-cli | |||||
fromrepo: my-specialrepo | |||||
- | |||||
name: php-common | |||||
skip_verify: True | |||||
# php-fpm os-specific settings | |||||
fpm: | |||||
conf: /location/of/php-fpm/config.conf | |||||
ini: /location/of/php-fpm/php.ini | |||||
pools: /location/of/php-fpm/pool.d | |||||
service: name-of-php5-fpm-service | |||||
# the default content of the php5-fpm main config file | |||||
defaults: | |||||
global: | |||||
pid: /var/run/php5-fpm.pid | |||||
# php-cli os-specific settings | |||||
cli: | |||||
ini: /location/of/php-cli/php.ini | |||||
# php-fpm settings | |||||
fpm: | |||||
# settings for the php-fpm service | |||||
service: | |||||
# if True, enables the php-fpm service, if False disables it | |||||
enabled: True | |||||
# additional arguments passed forward to | |||||
# service.enabled/disabled | |||||
opts: | |||||
reload: True | |||||
# settings for the relevant php-fpm configuration files | |||||
config: | |||||
# options to manage the php.ini file used by php-fpm | |||||
ini: | |||||
# arguments passed through to file.managed | |||||
opts: | |||||
recurse: True | |||||
# php.ini file contents that will be merged with the | |||||
# defaults in php.ng.ini.defaults. See php.ng.ini.defaults for | |||||
# syntax guidelines. | |||||
settings: | |||||
PHP: | |||||
engine: 'Off' | |||||
# options to manage the php-fpm conf file | |||||
conf: | |||||
# arguments passed through to file.managed | |||||
opts: | |||||
recurse: True | |||||
# php-fpm conf file contents that will be merged with | |||||
# php.ng.lookup.fpm.defaults. See php.ng.ini.defaults for | |||||
# ini-style syntax guidelines. | |||||
settings: | |||||
global: | |||||
pid: /var/run/php-fpm/special-pid.file | |||||
# settings for fpm-pools | |||||
pools: | |||||
# name of the pool file to be managed, this will be appended | |||||
# to the path specified in php.ng.lookup.fpm.pools | |||||
'mypool.conf': | |||||
# If true, the pool file will be managed, if False it will be | |||||
# absent | |||||
enabled: True | |||||
# arguments passed forward to file.managed or file.absent | |||||
opts: | |||||
replace: False | |||||
# pool file contents. See php.ng.ini.defaults for ini-style | |||||
# syntax guidelines. | |||||
settings: | |||||
myapp: | |||||
user: www-data | |||||
group: www-data | |||||
listen: /var/run/php5-fpm-myapp.sock | |||||
pm: dynamic | |||||
pm.max_children: 5 | |||||
pm.start_servers: 2 | |||||
pm.min_spare_servers: 1 | |||||
pm.max_spare_servers: 3 | |||||
'php_admin_value[memory_limit]': 300M | |||||
# php-cli settings | |||||
cli: | |||||
# settings to manage the cli's php.ini | |||||
ini: | |||||
# opts passed forward directly to file.managed | |||||
opts: | |||||
replace: False | |||||
# contents of the php.ini file that are merged with defaults | |||||
# from php.ng.ini.defaults. See php.ng.ini.defaults for ini-style | |||||
# syntax guidelines | |||||
settings: | |||||
PHP: | |||||
engine: 'Off' | |||||
# global php.ini settings | |||||
ini: | |||||
# Default php.ini contents. These follow a strict format. The top- | |||||
# level dict keys form ini group headings. Nested key/value | |||||
# pairs represent setting=value statements. If a value is a list, | |||||
# its contents will be joined by commas in final rendering. | |||||
defaults: | |||||
PHP: | |||||
engine: on | |||||
output_buffering: 4096 | |||||
disable_functions: | |||||
- pcntl_alarm | |||||
- pcntl_fork | |||||
- pcntl_wait | |||||
'CLI Server': | |||||
cli_server_color: 'On' |