20-setup-php-fpm-pool.sh 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #!/usr/bin/env bash
  2. # Rename pool file file to application.conf
  3. if [[ ! -f "/opt/docker/etc/php/fpm/pool.d/application.conf" ]]; then
  4. # Move php-fpm pool directory file to /opt/docker/etc/php/
  5. mv -- "$PHP_POOL_DIR" /opt/docker/etc/php/fpm/pool.d
  6. mv -- "/opt/docker/etc/php/fpm/pool.d/${PHP_POOL_CONF}" /opt/docker/etc/php/fpm/pool.d/application.conf
  7. fi
  8. # Remove php-fpm pool directory
  9. rm -rf -- "$PHP_POOL_DIR"
  10. # Symlink php-fpm pool file to original destination
  11. ln -sf -- /opt/docker/etc/php/fpm/pool.d "$PHP_POOL_DIR"
  12. # Configure php-fpm pool (application.conf)
  13. go-replace --mode=lineinfile --regex \
  14. -s '^[\s;]*catch_workers_output[\s]*=' -r 'catch_workers_output = yes' \
  15. -s '^[\s;]*access.format[\s]*=' -r 'access.format = "[php-fpm:access] %R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%"' \
  16. -s '^[\s;]*access.log[\s]*=' -r 'access.log = /docker.stdout' \
  17. -s '^[\s;]*slowlog[\s]*=' -r 'slowlog = /docker.stderr' \
  18. -s '^[\s;]*php_admin_value\[error_log\][\s]*=' -r 'php_admin_value[error_log] = /docker.stderr' \
  19. -s '^[\s;]*php_admin_value\[log_errors\][\s]*=' -r 'php_admin_value[log_errors] = on' \
  20. -s '^[\s;]*listen.allowed_clients[\s]*=' -r ";listen.allowed_clients" \
  21. -- /opt/docker/etc/php/fpm/pool.d/application.conf
  22. # Fix user setting
  23. go-replace --mode=line --regex \
  24. -s '^[\s;]*user[\s]*=' -r "user = $APPLICATION_USER" \
  25. -s '^[\s;]*group[\s]*=' -r "group = $APPLICATION_GROUP" \
  26. --path=/opt/docker/etc/php/fpm/ \
  27. --path-pattern='*.conf'
  28. if [[ "$PHP_CLEAR_ENV_AVAILABLE" -eq 1 ]]; then
  29. # Clear env setting available, disable clearing of environment variables
  30. go-replace --mode=lineinfile --regex \
  31. -s '^[\s;]*clear_env[\s]*=' -r 'clear_env = no' \
  32. -- /opt/docker/etc/php/fpm/pool.d/application.conf
  33. rm -f /opt/docker/bin/service.d/php-fpm.d/11-clear-env.sh
  34. else
  35. # Append clear env workaround in php-fpm pool (old php-fpm versions)
  36. echo ';#CLEAR_ENV_WORKAROUND#' >> /opt/docker/etc/php/fpm/pool.d/application.conf
  37. fi