From 405d1ddc1d54d46afcf8926ae46369b300324489 Mon Sep 17 00:00:00 2001 From: Joachim Desroches Date: Tue, 22 Mar 2022 16:24:00 +0100 Subject: [PATCH] !fixup code commit --- type/__php_fpm/files/php.ini.sh | 45 ++++++++++++++++++ type/__php_fpm/manifest | 47 +++++++++++++++++++ type/__php_fpm/parameter/boolean | 2 + type/__php_fpm/parameter/default/memory-limit | 1 + .../parameter/default/upload-max-filesize | 1 + type/__php_fpm/parameter/optional | 2 + type/__php_fpm/parameter/required | 1 + type/__php_fpm/singleton | 0 type/__php_fpm_pool/files/www.conf.sh | 34 ++++++++++++++ type/__php_fpm_pool/manifest | 37 +++++++++++++++ type/__php_fpm_pool/parameter/optional | 2 + type/__php_fpm_pool/parameter/required | 5 ++ 12 files changed, 177 insertions(+) create mode 100755 type/__php_fpm/files/php.ini.sh create mode 100644 type/__php_fpm/manifest create mode 100644 type/__php_fpm/parameter/boolean create mode 100644 type/__php_fpm/parameter/default/memory-limit create mode 100644 type/__php_fpm/parameter/default/upload-max-filesize create mode 100644 type/__php_fpm/parameter/optional create mode 100644 type/__php_fpm/parameter/required create mode 100644 type/__php_fpm/singleton create mode 100755 type/__php_fpm_pool/files/www.conf.sh create mode 100644 type/__php_fpm_pool/manifest create mode 100644 type/__php_fpm_pool/parameter/optional create mode 100644 type/__php_fpm_pool/parameter/required diff --git a/type/__php_fpm/files/php.ini.sh b/type/__php_fpm/files/php.ini.sh new file mode 100755 index 0000000..79fd112 --- /dev/null +++ b/type/__php_fpm/files/php.ini.sh @@ -0,0 +1,45 @@ +#!/bin/sh + +cat << EOF +; This file is managed by cdist, and has been shortened for readability. +; The fine manual is at http://php.net/configuration.file. + +[PHP] + +; Production recommended defaults +display_errors = Off +display_startup_errors = Off +enable_dl = Off +error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT +log_errors = On +output_buffering = 4096 +register_argc_argv = Off +request_order = "GP" +short_open_tag = Off +variables_order = "GPCS" +zend.assertions = -1 + +; Local custom variations +include_path = ".:/usr/share/php${PHPVER:?}" +memory_limit = ${MEMORY_LIMIT:?} +post_max_size = ${UPLOAD_MAX_FILESIZE:?} +upload_max_filesize = ${UPLOAD_MAX_FILESIZE:?} + +EOF + +if [ -f "${__object:?}/parameter/enable-opcache" ]; then + cat <<- EOF + ; opcache enabled by type flag + opcache.enable=1 + opcache.enable_cli=1 + EOF +fi + +if [ -f "${__object:?}/parameter/enable-apcu" ]; then + cat <<- EOF + ; acpu enabled by type flag + apc.enabled=1 + apc.enable_cli=1 + apc.shm_size=512M + EOF +fi diff --git a/type/__php_fpm/manifest b/type/__php_fpm/manifest new file mode 100644 index 0000000..84c4383 --- /dev/null +++ b/type/__php_fpm/manifest @@ -0,0 +1,47 @@ +#!/bin/sh + +os=$(cat "${__global:?}/explorer/os") + +PHPVER=$(cat "${__object:?}/parameter/php-version") +export PHPVER + +case "$os" in +'alpine') + package="php${PHPVER}-fpm" + service="php-fpm${PHPVER}" + opcache_package="php${PHPVER}-opcache" + apcu_package="php${PHPVER}-pecl-apcu" + ;; + +*) + printf "Your operating system is currently not supported by this type\n" >&2 + printf "Please contribute an implementation for it if you can.\n" >&2 + exit 1 + ;; +esac + +__package "$package" +require="__package/$package" __start_on_boot "$service" + +if [ -f "${__object:?}/parameter/enable-opcache" ]; then + __package "$opcache_package" +fi + +if [ -f "${__object:?}/parameter/enable-apcu" ]; then + __package "$apcu_package" +fi + +MEMORY_LIMIT=$(cat "${__object:?}/parameter/memory-limit") +export MEMORY_LIMIT + +UPLOAD_MAX_FILESIZE=$(cat "${__object:?}/parameter/upload-max-filesize") +export UPLOAD_MAX_FILESIZE + +mkdir -p "${__object:?}/files" +"${__type:?}/files/php.ini.sh" >"${__object:?}/files/php.ini" + +require="__package/$package" __file "/etc/php${PHPVER}/php.ini" \ + --mode 644 --source "${__object:?}/files/php.ini" \ + --onchange "service $service restart" + +require="__file/etc/php${PHPVER}/php.ini" __service "$service" --action start diff --git a/type/__php_fpm/parameter/boolean b/type/__php_fpm/parameter/boolean new file mode 100644 index 0000000..9964486 --- /dev/null +++ b/type/__php_fpm/parameter/boolean @@ -0,0 +1,2 @@ +enable-opcache +enable-apcu diff --git a/type/__php_fpm/parameter/default/memory-limit b/type/__php_fpm/parameter/default/memory-limit new file mode 100644 index 0000000..d95fe12 --- /dev/null +++ b/type/__php_fpm/parameter/default/memory-limit @@ -0,0 +1 @@ +512M diff --git a/type/__php_fpm/parameter/default/upload-max-filesize b/type/__php_fpm/parameter/default/upload-max-filesize new file mode 100644 index 0000000..5fbcf1c --- /dev/null +++ b/type/__php_fpm/parameter/default/upload-max-filesize @@ -0,0 +1 @@ +2M diff --git a/type/__php_fpm/parameter/optional b/type/__php_fpm/parameter/optional new file mode 100644 index 0000000..a41a87c --- /dev/null +++ b/type/__php_fpm/parameter/optional @@ -0,0 +1,2 @@ +upload-max-filesize +memory-limit diff --git a/type/__php_fpm/parameter/required b/type/__php_fpm/parameter/required new file mode 100644 index 0000000..173609d --- /dev/null +++ b/type/__php_fpm/parameter/required @@ -0,0 +1 @@ +php-version diff --git a/type/__php_fpm/singleton b/type/__php_fpm/singleton new file mode 100644 index 0000000..e69de29 diff --git a/type/__php_fpm_pool/files/www.conf.sh b/type/__php_fpm_pool/files/www.conf.sh new file mode 100755 index 0000000..88ad7a7 --- /dev/null +++ b/type/__php_fpm_pool/files/www.conf.sh @@ -0,0 +1,34 @@ +#!/bin/sh + +cat << EOF +; PHP-FPM configuration file for $POOL_NAME, PHP version $PHPVER. +; This file is managed by cdist, do not edit by hand! +[$POOL_NAME] + +; Local non-default configuration +user = $POOL_USER +group = $POOL_GROUP +listen = $POOL_LISTEN_ADDR +listen.owner = $POOL_LISTEN_OWNER + +; Mandatory configuration options with default production values +pm = dynamic +pm.max_children = 10 +pm.min_spare_servers = 1 +pm.max_spare_servers = 3 + +env[HOSTNAME] = \$HOSTNAME +env[PATH] = /usr/local/bin:/usr/bin:/bin +env[TMP] = /tmp +env[TMPDIR] = /tmp +env[TEMP] = /tmp + +EOF + +if [ -f "${__object:?}/parameter/memory-limit" ]; then + echo "php_admin_value[memory_limit] = $(cat "$__object/parameter/memory-limit")" +fi + +if [ -f "${__object:?}/parameter/open-basedir" ]; then + echo "php_admin_value[open_basedir] = $(cat "${__object:?}/parameter/open-basedir")" +fi diff --git a/type/__php_fpm_pool/manifest b/type/__php_fpm_pool/manifest new file mode 100644 index 0000000..b090c9d --- /dev/null +++ b/type/__php_fpm_pool/manifest @@ -0,0 +1,37 @@ +#!/bin/sh + +# XXX: this type does not configure or install php-fpm: it expects the +# __recycledcloud_php_fpm type to be used first before pools are configured. + +os=$(cat "${__global:?}/explorer/os") +name=${__object_id:?} + +PHPVER=$(cat "${__object:?}/parameter/php-version") +export PHPVER + +case "$os" in +'alpine') + service="php-fpm${PHPVER}" + : + ;; + +*) + printf "Your operating system is currently not supported by this type\n" >&2 + printf "Please contribute an implementation for it if you can.\n" >&2 + exit 1 + ;; +esac + +POOL_NAME="$name" +POOL_USER=$(cat "${__object:?}/parameter/pool-user") +POOL_GROUP=$(cat "${__object:?}/parameter/pool-group") +POOL_LISTEN_ADDR=$(cat "${__object:?}/parameter/pool-listen-addr") +POOL_LISTEN_OWNER=$(cat "${__object:?}/parameter/pool-listen-owner") +export POOL_USER POOL_GROUP POOL_LISTEN_ADDR POOL_LISTEN_OWNER POOL_NAME + +mkdir -p "${__object:?}/files" +"${__type:?}/files/www.conf.sh" >"${__object:?}/files/www.conf" + +__file "/etc/php${PHPVER:?}/php-fpm.d/${name}.conf" \ + --mode 644 --source "${__object:?}/files/www.conf" \ + --onchange "service $service reload" diff --git a/type/__php_fpm_pool/parameter/optional b/type/__php_fpm_pool/parameter/optional new file mode 100644 index 0000000..7adc0a3 --- /dev/null +++ b/type/__php_fpm_pool/parameter/optional @@ -0,0 +1,2 @@ +memory-limit +open-basedir diff --git a/type/__php_fpm_pool/parameter/required b/type/__php_fpm_pool/parameter/required new file mode 100644 index 0000000..d247290 --- /dev/null +++ b/type/__php_fpm_pool/parameter/required @@ -0,0 +1,5 @@ +php-version +pool-user +pool-group +pool-listen-addr +pool-listen-owner