I have a very simple docker installation consisting of NGINX and PHP via FastCGI on port 9000. I am running Docker Desktop version 2.2.0.3 on Windows 10.
I have configured my Dockerfile so that the PHP container copies “php.ini-production” to “php.ini” and then I copy in my own “php_settings.ini” into “conf.d”.
Currently the only settings I have in “php_settings.ini” are “fastcgi.logging = 0” and “display_errors = on” (this last one is just to confirm the file is being loaded).
Now, if my script has an error then the error is displayed as expected because “display_errors = on”.
However I am finding that “fastcgi.logging = 0” is not stopping PHP from logging all requests that are made, which is completely useless and unwanted and just clogs up the docker logs.
Note that if the PHP script runs phpinfo() it does show that “fastcgi.logging = 0” has been set.
But it does not appear to turn off SAPI logging which is what I want. Certainly, the docker logs contains one line for each request looking something like:
172.18.0.3 - 01/Aug/2020:12:56:25 +0000 “GET /index.php” 200
Does anyone have any suggestion as to how this SAPI logging can be turned off?
Thanks …
For completeness, here is my PHP Dockerfile:
FROM php:7.4-fpm
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
COPY application/php.ini "$PHP_INI_DIR/conf.d/php_settings.ini"
COPY src /var/www/html
EXPOSE 9000
CMD ["php-fpm"]
And here is my NGINX Dockerfile:
FROM nginx
ENV NGINX_ENTRYPOINT_QUIET_LOGS 1
COPY web_server/nginx.conf /etc/nginx/conf.d/default.conf
COPY src/public /var/www/html/public
And here is my NGINX configuration file:
error_log /var/log/nginx/error.log;
charset utf-8;
server {
listen 80 default_server;
server_name localhost;
access_log /var/log/nginx/web_access.log;
root /var/www/html/public;
index index.php;
location / {
try_files $uri /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass application:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}