diff --git a/php/map.jinja b/php/map.jinja index ec49f3b..fec2d7e 100644 --- a/php/map.jinja +++ b/php/map.jinja @@ -113,7 +113,60 @@ }, grain="os", merge=salt['pillar.get']('php:lookup')) %} {%- endif %} {%- else %} - {%- if salt['grains.get']('osrelease')|string >= '16.04' %} + {%- if salt['grains.get']('osrelease')|string >= '17.10' %} + {# Ubuntu 17.10+ specific PHP definitions #} + {%- set php = salt['grains.filter_by']({ + 'Ubuntu': { + 'adodb_pkg': 'libphp-adodb', + 'apc_pkg': 'php', + 'apcu_pkg': 'php-apcu', + 'bcmath_pkg': 'php-bcmath', + 'build_pkgs': ['libssl-dev', 'libcurl4-openssl-dev', 'pkg-config', 'libsslcommon2-dev'], + 'cgi_pkg': 'php-cgi', + 'cli_pkg': 'php-cli', + 'composer_bin': 'composer', + 'curl_pkg': 'php-curl', + 'dev_pkg': 'php-dev', + 'ext_conf_path': '/etc/php/7.1/mods-available', + 'fpm_pkg': 'php-fpm', + 'fpm_service': 'php7.1-fpm', + 'gd_pkg': 'php-gd', + 'imagick_pkg': 'php-imagick', + 'imap_pkg': 'php-imap', + 'intl_pkg': 'php-intl', + 'json_pkg': 'php-json', + 'ldap_pkg': 'php-ldap', + 'local_bin': '/usr/local/bin', + 'mail_pkg': 'php-mail', + 'mbstring_pkg': 'php-mbstring', + 'mcrypt_pkg': 'php-mcrypt', + 'memcache_pkg': 'php-memcache', + 'memcached_pkg': 'php-memcached', + 'mongo_ext': 'mongodb.so', + 'mongo_pecl': 'php-mongodb', + 'mysql_pkg': 'php-mysql', + 'mysqlnd_pkg': 'php', + 'oauth_pkg': 'php-oauth', + 'pear_pkg': 'php-pear', + 'pgsql_pkg': 'php-pgsql', + 'php_ini': '/etc/php/7.1/apache2/php.ini', + 'php_pkg': 'php', + 'phpenmod_command': 'phpenmod', + 'readline_pkg': ' php-readline', + 'redis_pkg': 'php-redis', + 'soap_pkg': 'php-soap', + 'sqlite_pkg': 'php-sqlite3', + 'suhosin5_ext': 'suhosin.so', + 'suhosin5_repo': 'https://github.com/sektioneins/suhosin', + 'suhosin7_ext': 'suhosin7.so', + 'suhosin7_repo': 'https://github.com/sektioneins/suhosin7', + 'sybase_pkg': 'php-sybase', + 'temp_dir': '/tmp', + 'xml_pkg': 'php-xml', + 'zip_pkg': 'php-zip', + } + }, grain="os", merge=salt['pillar.get']('php:lookup')) %} + {%- elif salt['grains.get']('osrelease')|string >= '16.04' %} {# Ubuntu 16.04+ specific PHP definitions #} {%- set php = salt['grains.filter_by']({ 'Ubuntu': { diff --git a/php/ng/map.jinja b/php/ng/map.jinja index ec18d71..da8b1b1 100644 --- a/php/ng/map.jinja +++ b/php/ng/map.jinja @@ -650,7 +650,371 @@ }, merge=True) %} {%- endif %} {%- else %} - {%- if salt['grains.get']('osrelease')|string >= '16.04' %} + {%- if salt['grains.get']('osrelease')|string >= '17.10' %} + {%- set php = salt['pillar.get']('php:ng', { + 'lookup': salt['grains.filter_by']({ + 'Ubuntu': { + 'pkgs': { + 'adodb': 'libphp-adodb', + 'apache2': 'libapache2-mod-php', + 'apc': 'php', + 'apcu': 'php-apcu', + 'bcmath': 'php7.1-bcmath', + 'cache-lite': 'php-cache-lite', + 'cgi': 'php-cgi', + 'cli': 'php-cli', + 'console-table': 'php-console-table', + 'curl': 'php-curl', + 'dev': 'php7.1-dev', + 'fpm': 'php-fpm', + 'gd': 'php-gd', + 'geoip': 'php-geoip', + 'geshi': 'php-geshi', + 'gmp': 'php-gmp', + 'hhvm': 'hhvm', + 'imagick': 'php-imagick', + 'imap': 'php-imap', + 'intl': 'php-intl', + 'json': 'php-json', + 'ldap': 'php-ldap', + 'mbstring': 'php-mbstring', + 'mcrypt': 'php-mcrypt', + 'memcache': 'php-memcache', + 'memcached': 'php-memcached', + 'mongodb': 'php-mongodb', + 'mysql': 'php-mysql', + 'mysqlnd': 'php', + 'net4': 'php-net-ipv4', + 'net6': 'php-net-ipv6', + 'oauth': 'php-oauth', + 'opcache': 'php7.1-opcache', + 'pear': 'php-pear', + 'pgsql': 'php-pgsql', + 'php': 'php', + 'phpenmod_command': 'phpenmod', + 'pspell': 'php-pspell', + 'redis': 'php-redis', + 'seclib': ['php-phpseclib', 'php-seclib'], + 'snmp': 'php-snmp', + 'soap': 'php-soap', + 'sqlite': 'php-sqlite3', + 'ssh2': 'php-ssh2', + 'suhosin': 'php', + 'sybase': 'php-sybase', + 'tcpdf': 'php-tcpdf', + 'tidy': 'php7.1-tidy', + 'xcache': 'php', + 'xdebug': 'php-xdebug', + 'xml': 'php-xml', + 'xsl': 'php7.1-xsl', + 'zip': 'php-zip', + }, + 'fpm': { + 'conf': '/etc/php/7.1/fpm/php-fpm.conf', + 'ini': '/etc/php/7.1/fpm/php.ini', + 'pools': '/etc/php/7.1/fpm/pool.d', + 'service': 'php7.1-fpm', + 'defaults': odict([ + ('global', odict([ + ('pid', '/var/run/php7.1-fpm.pid'), + ('error_log', '/var/log/php7.1-fpm.log'), + ])), + ('include', '/etc/php/7.1/fpm/pool.d/*.conf'), + ]), + }, + 'hhvm': { + 'conf': '/etc/hhvm/server.ini', + 'ini': '/etc/hhvm/php.ini', + 'service': 'hhvm', + 'defaults': {}, + 'server': odict([ + ('pid', '/var/run/hhvm/pid'), + ('hhvm.server.port', '9000'), + ('hhvm.server.type', 'fastcgi'), + ('hhvm.server.default_document', 'index.php'), + ('hhvm.log.use_log_file', 'true'), + ('hhvm.log.file', '/var/log/hhvm/error.log'), + ('hhvm.repo.central.path', '/var/run/hhvm/hhvm.hhbc'), + ]), + 'php': odict([ + ('session.save_handler', 'files'), + ('session.save_path', '/var/lib/hhvm/sessions'), + ('session.gc_maxlifetime', '1440'), + ('hhvm.log.level', 'Warning'), + ('hhvm.log.always_log_unhandled_exceptions', 'true'), + ('hhvm.log.runtime_error_reporting_level', '8191'), + ('hhvm.mysql.typed_results', 'false'), + ]), + }, + 'cli': { + 'ini': '/etc/php/7.1/cli/php.ini', + }, + 'apache2': { + 'ini': '/etc/php/7.1/apache2/php.ini', + }, + 'xcache': { + 'ini': '/etc/php/7.1/mods-available/xcache.ini', + 'defaults': {}, + }, + }, + }, grain="os"), + 'fpm': { + 'service': { + 'enabled': True, + 'opts': {}, + }, + 'config': { + 'ini': { + 'opts': {}, + 'settings': {}, + }, + 'conf': { + 'opts': {}, + 'settings': {}, + }, + }, + 'pools': { + 'default.conf': { + 'enabled': False, + 'opts': {}, + }, + }, + }, + 'hhvm': { + 'service': { + 'enabled': True, + 'opts': {}, + }, + 'config': { + 'server': { + 'opts': {}, + 'settings': {}, + }, + 'php': { + 'opts': {}, + 'settings': {}, + }, + }, + }, + 'cli': { + 'ini': { + 'opts': {}, + 'settings': {}, + } + }, + 'apache2': { + 'ini': { + 'opts': {}, + 'settings': {}, + } + }, + 'xcache': { + 'ini': { + 'defaults': { + 'xcache-common': { + 'extension': 'xcache.so', + }, + 'xcache.admin': { + 'xcache.admin.enable_auth': 'On', + }, + 'xcache': { + 'xcache.shm_scheme': '"mmap"', + 'xcache.size': '60M', + 'xcache.count': '1', + 'xcache.slots': '8K', + 'xcache.ttl': '0', + 'xcache.gc_interval': '0', + 'xcache.var_size': '4M', + 'xcache.var_count': '1', + 'xcache.var_slots': '8K', + 'xcache.var_ttl': '0', + 'xcache.var_maxttl': '0', + 'xcache.var_gc_interval': '300', + 'xcache.var_namespace_mode': '0', + 'xcache.var_namespace': '""', + 'xcache.readonly_protection': 'Off', + 'xcache.mmap_path': '"/dev/zero"', + 'xcache.coredump_directory': '""', + 'xcache.coredump_type': '0', + 'xcache.disable_on_crash': 'Off', + 'xcache.experimental': 'Off', + 'xcache.cacher': 'On', + 'xcache.stat': 'On', + 'xcache.optimizer': 'Off', + }, + 'xcache.coverager': { + 'xcache.coverager': 'Off', + 'xcache.coverager_autostart': 'On', + 'xcache.coveragedump_directory': '""', + }, + }, + 'opts': {}, + 'settings': {}, + } + }, + 'ini': { + 'defaults': { + 'PHP': { + 'allow_url_fopen': 'On', + 'allow_url_include': 'Off', + 'asp_tags': 'Off', + 'auto_globals_jit': 'On', + 'default_mimetype': '"text/html"', + 'default_socket_timeout': 60, + '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'], + 'display_errors': 'Off', + 'display_startup_errors': 'Off', + 'enable_dl': 'Off', + 'engine': 'On', + 'error_reporting': ['E_ALL', '~E_DEPRECATED', '~E_STRICT'], + 'expose_php': 'On', + 'file_uploads': 'On', + 'html_errors': 'On', + 'ignore_repeated_errors': 'Off', + 'ignore_repeated_source': 'Off', + 'implicit_flush': 'Off', + 'log_errors': 'On', + 'log_errors_max_len': 1024, + 'max_execution_time': 30, + 'max_file_uploads': 20, + 'max_input_nesting_level': 64, + 'max_input_time': 60, + 'max_input_vars': 1000, + 'memory_limit': '128M', + 'output_buffering': 4096, + 'post_max_size': '8M', + 'precision': 14, + 'register_argc_argv': 'Off', + 'report_memleaks': 'On', + 'request_order': 'GP', + 'serialize_precision': 17, + 'short_open_tag': 'Off', + 'track_errors': 'Off', + 'upload_max_filesize': '2M', + 'variables_order': 'GPCS', + 'zend.enable_gc': 'On', + 'zlib.output_compression': 'Off', + }, + '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) %} + {%- elif salt['grains.get']('osrelease')|string >= '16.04' %} {%- set php = salt['pillar.get']('php:ng', { 'lookup': salt['grains.filter_by']({ 'Ubuntu': {