Fix logging to file for PHP 5.3

This commit is contained in:
cytopia
2018-08-03 01:10:38 +02:00
parent 5a805fb015
commit f42a90758f
3 changed files with 32 additions and 19 deletions

View File

@@ -10,21 +10,26 @@ set -o pipefail
############################################################ ############################################################
_log_to_dockerlogs() { _log_to_dockerlogs() {
local conf_logfile="${1}" local php_fpm_conf="${1}"
local php_ini_conf="${2}"
{ {
echo "[global]" echo "[global]"
echo "error_log = /proc/self/fd/2" echo "error_log = /proc/self/fd/2"
echo "[www]" echo "[www]"
echo "access.log = /proc/self/fd/2" echo "access.log = /proc/self/fd/2"
} > "${conf_logfile}" } > "${php_fpm_conf}"
{
echo "error_log = /proc/self/fd/2"
} > "${php_ini_conf}"
} }
_log_to_files() { _log_to_files() {
local conf_logfile="${1}" local php_fpm_conf="${1}"
local log_dir="${2}" local php_ini_conf="${2}"
local user="${3}" local log_dir="${3}"
local group="${4}" local user="${4}"
local debug="${5}" local group="${5}"
local debug="${6}"
# Create Log directory and files # Create Log directory and files
if [ ! -d "${log_dir}" ]; then if [ ! -d "${log_dir}" ]; then
@@ -43,7 +48,10 @@ _log_to_files() {
echo "error_log = ${log_dir}/php-fpm.error" echo "error_log = ${log_dir}/php-fpm.error"
echo "[www]" echo "[www]"
echo "access.log = ${log_dir}/php-fpm.access" echo "access.log = ${log_dir}/php-fpm.access"
} > "${conf_logfile}" } > "${php_fpm_conf}"
{
echo "error_log = ${log_dir}/php-fpm.error"
} > "${php_ini_conf}"
} }
@@ -77,17 +85,18 @@ is_docker_logs_enabled() {
set_docker_logs() { set_docker_logs() {
local env_varname="${1}" local env_varname="${1}"
local log_dir="${2}" local log_dir="${2}"
local conf_logfile="${3}" local php_fpm_conf="${3}"
local user="${4}" local php_ini_conf="${4}"
local group="${5}" local user="${5}"
local debug="${6}" local group="${6}"
local debug="${7}"
local docker_logs= local docker_logs=
if ! env_set "${env_varname}"; then if ! env_set "${env_varname}"; then
log "info" "\$${env_varname} not set." "${debug}" log "info" "\$${env_varname} not set." "${debug}"
log "info" "Logging to docker logs (stdout and stderr)." "${debug}" log "info" "Logging to docker logs (stdout and stderr)." "${debug}"
_log_to_dockerlogs "${conf_logfile}" _log_to_dockerlogs "${php_fpm_conf}" "${php_ini_conf}"
else else
docker_logs="$( env_get "${env_varname}" )" docker_logs="$( env_get "${env_varname}" )"
@@ -95,12 +104,12 @@ set_docker_logs() {
if [ "${docker_logs}" = "0" ]; then if [ "${docker_logs}" = "0" ]; then
log "info" "\$${env_varname} set to 0. Logging to files under: ${log_dir}" "${debug}" log "info" "\$${env_varname} set to 0. Logging to files under: ${log_dir}" "${debug}"
log "info" "Make sure to mount this directory in order to view logs" "${debug}" log "info" "Make sure to mount this directory in order to view logs" "${debug}"
_log_to_files "${conf_logfile}" "${log_dir}" "${user}" "${group}" "${debug}" _log_to_files "${php_fpm_conf}" "${php_ini_conf}" "${log_dir}" "${user}" "${group}" "${debug}"
# Keep docker logs # Keep docker logs
elif [ "${docker_logs}" = "1" ]; then elif [ "${docker_logs}" = "1" ]; then
log "info" "\$${env_varname} set to 1. Logging to docker logs (stdout and stderr)." "${debug}" log "info" "\$${env_varname} set to 1. Logging to docker logs (stdout and stderr)." "${debug}"
_log_to_dockerlogs "${conf_logfile}" _log_to_dockerlogs "${php_fpm_conf}" "${php_ini_conf}"
else else
log "err" "Invalid value for \$${env_varname}. Can only be 0 or 1. Provided: ${docker_logs}" "${debug}" log "err" "Invalid value for \$${env_varname}. Can only be 0 or 1. Provided: ${docker_logs}" "${debug}"
exit 1 exit 1

View File

@@ -28,7 +28,8 @@ PHP_FPM_DIR="/usr/local/etc/php-fpm.d"
PHP_MAIL_LOG="/var/log/mail.log" PHP_MAIL_LOG="/var/log/mail.log"
# This file holds error and access log definitions # This file holds error and access log definitions
FPM_CONF_LOGFILE="/usr/local/etc/php-fpm.d/logfiles.conf" PHP_FPM_CONF_LOGFILE="${PHP_FPM_DIR}/zzzzzzz-logfiles.conf"
PHP_INI_CONF_LOGFILE="${PHP_INI_DIR}/zzzzzzz-logfiles.ini"
# PHP-FPM log dir # PHP-FPM log dir
FPM_LOG_DIR="/var/log/php" FPM_LOG_DIR="/var/log/php"
@@ -92,7 +93,8 @@ fi
set_docker_logs \ set_docker_logs \
"DOCKER_LOGS" \ "DOCKER_LOGS" \
"${FPM_LOG_DIR}" \ "${FPM_LOG_DIR}" \
"${FPM_CONF_LOGFILE}" \ "${PHP_FPM_CONF_LOGFILE}" \
"${PHP_INI_CONF_LOGFILE}" \
"${MY_USER}" \ "${MY_USER}" \
"${MY_GROUP}" \ "${MY_GROUP}" \
"${DEBUG_LEVEL}" "${DEBUG_LEVEL}"

View File

@@ -28,7 +28,8 @@ PHP_FPM_DIR="/usr/local/etc/php-fpm.d"
PHP_MAIL_LOG="/var/log/mail.log" PHP_MAIL_LOG="/var/log/mail.log"
# This file holds error and access log definitions # This file holds error and access log definitions
FPM_CONF_LOGFILE="/usr/local/etc/php-fpm.d/logfiles.conf" PHP_FPM_CONF_LOGFILE="${PHP_FPM_DIR}/zzzzzzz-logfiles.conf"
PHP_INI_CONF_LOGFILE="${PHP_INI_DIR}/zzzzzzz-logfiles.ini"
# PHP-FPM log dir # PHP-FPM log dir
FPM_LOG_DIR="/var/log/php" FPM_LOG_DIR="/var/log/php"
@@ -92,7 +93,8 @@ fi
set_docker_logs \ set_docker_logs \
"DOCKER_LOGS" \ "DOCKER_LOGS" \
"${FPM_LOG_DIR}" \ "${FPM_LOG_DIR}" \
"${FPM_CONF_LOGFILE}" \ "${PHP_FPM_CONF_LOGFILE}" \
"${PHP_INI_CONF_LOGFILE}" \
"${MY_USER}" \ "${MY_USER}" \
"${MY_GROUP}" \ "${MY_GROUP}" \
"${DEBUG_LEVEL}" "${DEBUG_LEVEL}"