मेरे पास एक डॉकर कंटेनर में और में पीएचपी-एफपीएम है Dockerfile
मैं संपादित fpm config फ़ाइल (/etc/php5/fpm/pool.d/www.conf
) जाने के लिए एक्सेस लॉग सेट करने के लिए /var/log/fpm-access.log
और जाने के लिए त्रुटि लॉग /var/log/fpm-php.www.log
:
# Do some php-fpm config# Redirect worker stdout and stderr into main error log# Activate the fpm access log# Enable display errors# Enable the error logRUN sed -i '/^;catch_workers_output/ccatch_workers_output = yes' /etc/php5/fpm/pool.d/www.conf && \ sed -i '/^;access.log/caccess.log = /var/log/fpm-access.log' /etc/php5/fpm/pool.d/www.conf && \ sed -i '/^;php_flag\[display_errors\]/cphp_flag[display_errors] = off' /etc/php5/fpm/pool.d/www.conf && \ sed -i '/^;php_admin_value\[error_log\]/cphp_admin_value[error_log] = /var/log/fpm-php.www.log' /etc/php5/fpm/pool.d/www.conf && \ sed -i '/^;php_admin_flag\[log_errors\]/cphp_admin_flag[log_errors] = on' /etc/php5/fpm/pool.d/www.conf
यह ठीक काम करता है - मैं लॉग देखने के लिए कंटेनर में एक शेल प्राप्त कर सकता हूं । लेकिन... यह सबसे अच्छा अभ्यास नहीं है ।
समस्या तब है जब मैं उपयोग करने का प्रयास करता हूं डॉकर लॉग कलेक्टर - मुझे पीएचपी-एफपीएम को स्टडआउट या स्टैडर पर लॉग इन करने की आवश्यकता है ताकि डॉकर उन्हें कैप्चर कर सके और उन्हें प्रदान कर सके docker logs
कमान।
मैं में यह करने की कोशिश की Dockerfile
(जो एक विचार है जिसे मैंने कॉपी किया है सरकारी nginx डोकर छवि):
# Redirect fpm logs to stdout and stderr so they are forwarded to the docker log collectorRUN ln -sf /dev/stdout /var/log/fpm-access.log && \ ln -sf /dev/stderr /var/log/fpm-php.www.log
यह काम नहीं कर रहा है - कोई एक्सेस लॉग नहीं देखा जाता है docker logs
- मैं क्यों पता लगाने की कोशिश कर रहा हूँ? क्या डॉकर में एफपीएम का उपयोग करने वाला कोई और व्यक्ति डॉकर लॉग कलेक्टर को लॉगिंग काम करने का प्रबंधन करता है?