Compare commits
	
		
			8 Commits
		
	
	
		
			29aa1f2d40
			...
			main
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					8e9a56c232 | ||
| 
						 | 
					b81160d3b9 | ||
| 
						 | 
					d45c9a0fbe | ||
| 
						 | 
					d4da0caa07 | ||
| 
						 | 
					6f5b6e4691 | ||
| 
						 | 
					2ef71aa2e8 | ||
| 
						 | 
					cf85f63fff | ||
| 
						 | 
					44baf158d9 | 
							
								
								
									
										7
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -2,16 +2,17 @@
 | 
				
			|||||||
nginx-srv/etc
 | 
					nginx-srv/etc
 | 
				
			||||||
nginx-srv/var
 | 
					nginx-srv/var
 | 
				
			||||||
 | 
					
 | 
				
			||||||
multi-php-fpm-srv/etc
 | 
					 | 
				
			||||||
multi-php-fpm-srv/run
 | 
					multi-php-fpm-srv/run
 | 
				
			||||||
 | 
					
 | 
				
			||||||
mariadb-srv/run
 | 
					mariadb-srv/run
 | 
				
			||||||
mariadb-srv/var
 | 
					mariadb-srv/var
 | 
				
			||||||
mariadb-srv/etc
 | 
					
 | 
				
			||||||
#
 | 
					# Ignore Docker files
 | 
				
			||||||
docker-compose.yaml
 | 
					docker-compose.yaml
 | 
				
			||||||
docker-compose.yml
 | 
					docker-compose.yml
 | 
				
			||||||
compose.yaml
 | 
					compose.yaml
 | 
				
			||||||
compose.yml
 | 
					compose.yml
 | 
				
			||||||
docker-compose.env
 | 
					docker-compose.env
 | 
				
			||||||
 | 
					docker-compose.override.yaml
 | 
				
			||||||
 | 
					docker-compose.override.yml
 | 
				
			||||||
.env
 | 
					.env
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										14
									
								
								del_vols.sh
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								del_vols.sh
									
									
									
									
									
								
							@@ -1,11 +1,11 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#sudo rm -rfv nginx-srv/etc
 | 
					#sudo rm -rfv nginx-srv/var # Removes /var/www
 | 
				
			||||||
sudo rm -rfv nginx-srv/var
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#sudo rm -rfv multi-php-fpm-srv/etc
 | 
					#sudo rm -rfv nginx-srv/etc # Removes /etc/letsencrypt # Removes letsencrypt certificates and configuration.
 | 
				
			||||||
sudo rm -rfv multi-php-fpm-srv/run
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
sudo rm -rfv mariadb-srv/run
 | 
					sudo rm -rfv multi-php-fpm-srv/run # Remove *.sock files
 | 
				
			||||||
sudo rm -rfv mariadb-srv/var
 | 
					
 | 
				
			||||||
#sudo rm -rfv mariadb-srv/etc
 | 
					sudo rm -rfv mariadb-srv/run # Remove *.sock files
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#sudo rm -rfv mariadb-srv/var # Removes MariaDB databases
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,7 +13,7 @@ services:
 | 
				
			|||||||
    hostname: nginx-srv
 | 
					    hostname: nginx-srv
 | 
				
			||||||
    volumes:
 | 
					    volumes:
 | 
				
			||||||
      - ./mnt/place-config/etc/nginx:/mnt/place-config/etc/nginx # Config ready to be copied into the container.
 | 
					      - ./mnt/place-config/etc/nginx:/mnt/place-config/etc/nginx # Config ready to be copied into the container.
 | 
				
			||||||
      - ./nginx-srv/www:/var/www # Webpage public html.
 | 
					      - ./nginx-srv/var/www:/var/www # Webpage public html.
 | 
				
			||||||
      - ./nginx-srv/etc/letsencrypt:/etc/letsencrypt
 | 
					      - ./nginx-srv/etc/letsencrypt:/etc/letsencrypt
 | 
				
			||||||
      - ./multi-php-fpm-srv/run/php:/run/php # Socket files dir. It will be mounted and shared from the PHP container.
 | 
					      - ./multi-php-fpm-srv/run/php:/run/php # Socket files dir. It will be mounted and shared from the PHP container.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -27,7 +27,7 @@ services:
 | 
				
			|||||||
    environment:
 | 
					    environment:
 | 
				
			||||||
      - PHP_VERSIONS=${PHP_VERSIONS}  # Inherits from .env
 | 
					      - PHP_VERSIONS=${PHP_VERSIONS}  # Inherits from .env
 | 
				
			||||||
    volumes:
 | 
					    volumes:
 | 
				
			||||||
      - ./mnt/place-config/etc/php/8.2:/mnt/place-config/etc/php/8.2 # Config ready to be copied into the container.
 | 
					      - ./mnt/place-config/etc/php:/mnt/place-config/etc/php # Config ready to be copied into the container.
 | 
				
			||||||
      - ./multi-php-fpm-srv/run/php:/run/php
 | 
					      - ./multi-php-fpm-srv/run/php:/run/php
 | 
				
			||||||
      - ./mariadb-srv/run/mysql:/run/mysqld # php-mysql should be able connecting to the MariaDB socket.
 | 
					      - ./mariadb-srv/run/mysql:/run/mysqld # php-mysql should be able connecting to the MariaDB socket.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -42,4 +42,4 @@ services:
 | 
				
			|||||||
      - ./mnt/place-config/etc/mysql:/mnt/place-config/etc/mysql # Config ready to be copied into the container.
 | 
					      - ./mnt/place-config/etc/mysql:/mnt/place-config/etc/mysql # Config ready to be copied into the container.
 | 
				
			||||||
      - ./mariadb-srv/var/lib/mysql:/var/lib/mysql # Databases
 | 
					      - ./mariadb-srv/var/lib/mysql:/var/lib/mysql # Databases
 | 
				
			||||||
      #- ./mariadb-srv/etc/mysql/conf.d:/etc/mysql/conf.d/ # Custom config that overrides default one.
 | 
					      #- ./mariadb-srv/etc/mysql/conf.d:/etc/mysql/conf.d/ # Custom config that overrides default one.
 | 
				
			||||||
      - ./mariadb-srv/run/mysql/:/run/mysqld # Socket
 | 
					      - ./mariadb-srv/run/mysqld/:/run/mysqld # Socket
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,7 @@
 | 
				
			|||||||
; Start a new pool named 'wordpress6'.
 | 
					; Start a new pool named 'prestashop8_1'.
 | 
				
			||||||
; the variable $pool can be used in any directive and will be replaced by the
 | 
					; the variable $pool can be used in any directive and will be replaced by the
 | 
				
			||||||
; pool name ('wordpress6' here)
 | 
					; pool name ('prestashop8_1' here)
 | 
				
			||||||
[wordpress6]
 | 
					[prestashop8_1]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
; Per pool prefix
 | 
					; Per pool prefix
 | 
				
			||||||
; It only applies on the following directives:
 | 
					; It only applies on the following directives:
 | 
				
			||||||
@@ -38,10 +38,10 @@ group = www-data
 | 
				
			|||||||
;                            (IPv6 and IPv4-mapped) on a specific port;
 | 
					;                            (IPv6 and IPv4-mapped) on a specific port;
 | 
				
			||||||
;   '/path/to/unix/socket' - to listen on a unix socket.
 | 
					;   '/path/to/unix/socket' - to listen on a unix socket.
 | 
				
			||||||
; Note: This value is mandatory.
 | 
					; Note: This value is mandatory.
 | 
				
			||||||
listen = /var/run/php/php8.2-fpm-wordpress6.sock
 | 
					listen = /run/php/php8.1-fpm-prestashop8_1.sock
 | 
				
			||||||
 | 
					
 | 
				
			||||||
; Set listen(2) backlog.
 | 
					; Set listen(2) backlog.
 | 
				
			||||||
; Default Value: 511 (-1 on Linux, FreeBSD and OpenBSD)
 | 
					; Default Value: 511 (-1 on FreeBSD and OpenBSD)
 | 
				
			||||||
;listen.backlog = 511
 | 
					;listen.backlog = 511
 | 
				
			||||||
 | 
					
 | 
				
			||||||
; Set permissions for unix socket, if one is used. In Linux, read/write
 | 
					; Set permissions for unix socket, if one is used. In Linux, read/write
 | 
				
			||||||
@@ -68,10 +68,6 @@ listen.group = www-data
 | 
				
			|||||||
; Default Value: any
 | 
					; Default Value: any
 | 
				
			||||||
;listen.allowed_clients = 127.0.0.1
 | 
					;listen.allowed_clients = 127.0.0.1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
; Set the associated the route table (FIB). FreeBSD only
 | 
					 | 
				
			||||||
; Default Value: -1
 | 
					 | 
				
			||||||
;listen.setfib = 1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; Specify the nice(2) priority to apply to the pool processes (only if set)
 | 
					; Specify the nice(2) priority to apply to the pool processes (only if set)
 | 
				
			||||||
; The value can vary from -19 (highest priority) to 20 (lower priority)
 | 
					; The value can vary from -19 (highest priority) to 20 (lower priority)
 | 
				
			||||||
; Note: - It will only work if the FPM master process is launched as root
 | 
					; Note: - It will only work if the FPM master process is launched as root
 | 
				
			||||||
@@ -80,8 +76,7 @@ listen.group = www-data
 | 
				
			|||||||
; Default Value: no set
 | 
					; Default Value: no set
 | 
				
			||||||
; process.priority = -19
 | 
					; process.priority = -19
 | 
				
			||||||
 | 
					
 | 
				
			||||||
; Set the process dumpable flag (PR_SET_DUMPABLE prctl for Linux or
 | 
					; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user
 | 
				
			||||||
; PROC_TRACE_CTL procctl for FreeBSD) even if the process user
 | 
					 | 
				
			||||||
; or group is different than the master process user. It allows to create process
 | 
					; or group is different than the master process user. It allows to create process
 | 
				
			||||||
; core dump and ptrace the process for the pool user.
 | 
					; core dump and ptrace the process for the pool user.
 | 
				
			||||||
; Default Value: no
 | 
					; Default Value: no
 | 
				
			||||||
@@ -249,7 +244,7 @@ pm.max_spare_servers = 3
 | 
				
			|||||||
;   last request memory:  0
 | 
					;   last request memory:  0
 | 
				
			||||||
;
 | 
					;
 | 
				
			||||||
; Note: There is a real-time FPM status monitoring sample web page available
 | 
					; Note: There is a real-time FPM status monitoring sample web page available
 | 
				
			||||||
;       It's available in: /usr/share/php/8.2/fpm/status.html
 | 
					;       It's available in: /usr/share/php/8.1/fpm/status.html
 | 
				
			||||||
;
 | 
					;
 | 
				
			||||||
; Note: The value must start with a leading slash (/). The value can be
 | 
					; Note: The value must start with a leading slash (/). The value can be
 | 
				
			||||||
;       anything, but it may not be a good idea to use the .php extension or it
 | 
					;       anything, but it may not be a good idea to use the .php extension or it
 | 
				
			||||||
@@ -353,22 +348,6 @@ pm.max_spare_servers = 3
 | 
				
			|||||||
; Default: "%R - %u %t \"%m %r\" %s"
 | 
					; Default: "%R - %u %t \"%m %r\" %s"
 | 
				
			||||||
;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{milli}d %{kilo}M %C%%"
 | 
					;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{milli}d %{kilo}M %C%%"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
; A list of request_uri values which should be filtered from the access log.
 | 
					 | 
				
			||||||
;
 | 
					 | 
				
			||||||
; As a security precuation, this setting will be ignored if:
 | 
					 | 
				
			||||||
;     - the request method is not GET or HEAD; or
 | 
					 | 
				
			||||||
;     - there is a request body; or
 | 
					 | 
				
			||||||
;     - there are query parameters; or
 | 
					 | 
				
			||||||
;     - the response code is outwith the successful range of 200 to 299
 | 
					 | 
				
			||||||
;
 | 
					 | 
				
			||||||
; Note: The paths are matched against the output of the access.format tag "%r".
 | 
					 | 
				
			||||||
;       On common configurations, this may look more like SCRIPT_NAME than the
 | 
					 | 
				
			||||||
;       expected pre-rewrite URI.
 | 
					 | 
				
			||||||
;
 | 
					 | 
				
			||||||
; Default Value: not set
 | 
					 | 
				
			||||||
;access.suppress_path[] = /ping
 | 
					 | 
				
			||||||
;access.suppress_path[] = /health_check.php
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; The log file for slow requests
 | 
					; The log file for slow requests
 | 
				
			||||||
; Default Value: not set
 | 
					; Default Value: not set
 | 
				
			||||||
; Note: slowlog is mandatory if request_slowlog_timeout is set
 | 
					; Note: slowlog is mandatory if request_slowlog_timeout is set
 | 
				
			||||||
@@ -459,7 +438,7 @@ pm.max_spare_servers = 3
 | 
				
			|||||||
; the current environment.
 | 
					; the current environment.
 | 
				
			||||||
; Default Value: clean env
 | 
					; Default Value: clean env
 | 
				
			||||||
;env[HOSTNAME] = $HOSTNAME
 | 
					;env[HOSTNAME] = $HOSTNAME
 | 
				
			||||||
env[PATH] = /usr/local/bin:/usr/bin:/bin
 | 
					;env[PATH] = /usr/local/bin:/usr/bin:/bin
 | 
				
			||||||
;env[TMP] = /tmp
 | 
					;env[TMP] = /tmp
 | 
				
			||||||
;env[TMPDIR] = /tmp
 | 
					;env[TMPDIR] = /tmp
 | 
				
			||||||
;env[TEMP] = /tmp
 | 
					;env[TEMP] = /tmp
 | 
				
			||||||
@@ -485,11 +464,16 @@ env[PATH] = /usr/local/bin:/usr/bin:/bin
 | 
				
			|||||||
;                specified at startup with the -d argument
 | 
					;                specified at startup with the -d argument
 | 
				
			||||||
;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com
 | 
					;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com
 | 
				
			||||||
;php_flag[display_errors] = off
 | 
					;php_flag[display_errors] = off
 | 
				
			||||||
php_admin_value[error_log] = /var/log/fpm-php-wordpress6.log
 | 
					php_admin_value[error_log] = /var/log/fpm-php-prestashop8_1.log
 | 
				
			||||||
php_admin_flag[log_errors] = on
 | 
					php_admin_flag[log_errors] = on
 | 
				
			||||||
php_admin_value[memory_limit] = 128M
 | 
					php_admin_value[memory_limit] = 256M
 | 
				
			||||||
php_admin_value[post_max_size] = 2048M
 | 
					php_admin_value[post_max_filesize] = 256M
 | 
				
			||||||
php_admin_value[post_max_filesize] = 2048M
 | 
					php_admin_value[upload_max_filesize] = 256M
 | 
				
			||||||
php_admin_value[opcache.interned_strings_buffer] = 32
 | 
					php_admin_value[allow_url_fopen] = on
 | 
				
			||||||
php_admin_value[upload_max_filesize] = 2048M
 | 
					php_admin_value[file_uploads] = on
 | 
				
			||||||
 | 
					php_admin_value[short_open_tag] = on
 | 
				
			||||||
 | 
					php_admin_value[cgi_fix_pathinfo] = 0
 | 
				
			||||||
 | 
					php_admin_value[max_execution_time] = 360
 | 
				
			||||||
 | 
					php_admin_value[allow_url_include] = Off
 | 
				
			||||||
 | 
					php_admin_value[date.timezone] = Europe/Madrid
 | 
				
			||||||
 | 
					php_admin_value[max_execution_time] = 130
 | 
				
			||||||
@@ -1,4 +1,56 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					set -euo pipefail
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Copy all .conf files from source to destination
 | 
					# Configuration
 | 
				
			||||||
cp /mnt/place-config/etc/php/8.2/fpm/pool.d/*.conf /etc/php/8.2/fpm/pool.d/
 | 
					SRC_BASE="/mnt/place-config/etc/php"
 | 
				
			||||||
 | 
					DEST_BASE="/etc/php"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Use both environment variables if they exist
 | 
				
			||||||
 | 
					VERSIONS_TO_PROCESS="$(echo "${PHP_VERSIONS:-} ${BUILDTIME_PHP_VER_INST:-}" | xargs -n1 | sort -u | xargs)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ -z "$VERSIONS_TO_PROCESS" ]; then
 | 
				
			||||||
 | 
					    echo "ℹ️ No PHP versions specified in environment variables"
 | 
				
			||||||
 | 
					    exit 0
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo "🔍 Processing PHP versions: $VERSIONS_TO_PROCESS"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					for version in $VERSIONS_TO_PROCESS; do
 | 
				
			||||||
 | 
					    src_dir="${SRC_BASE}/${version}/fpm/pool.d"
 | 
				
			||||||
 | 
					    dest_dir="${DEST_BASE}/${version}/fpm/pool.d"
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    echo -e "\n📦 Checking PHP ${version}..."
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    # Verify source directory exists
 | 
				
			||||||
 | 
					    if [ ! -d "$src_dir" ]; then
 | 
				
			||||||
 | 
					        echo "  ⚠️ Source directory not found: $src_dir"
 | 
				
			||||||
 | 
					        continue
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    # Count .conf files
 | 
				
			||||||
 | 
					    conf_files=("$src_dir"/*.conf)
 | 
				
			||||||
 | 
					    if [ ${#conf_files[@]} -eq 0 ]; then
 | 
				
			||||||
 | 
					        echo "  ✅ No .conf files to copy (directory empty)"
 | 
				
			||||||
 | 
					        continue
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    # Process each .conf file
 | 
				
			||||||
 | 
					    copied=0
 | 
				
			||||||
 | 
					    for conf_file in "${conf_files[@]}"; do
 | 
				
			||||||
 | 
					        if [ ! -f "$conf_file" ]; then
 | 
				
			||||||
 | 
					            continue
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        filename=$(basename "$conf_file")
 | 
				
			||||||
 | 
					        echo "  ➤ Copying: $filename"
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        cp -f "$conf_file" "$dest_dir/" && \
 | 
				
			||||||
 | 
					        chmod 644 "${dest_dir}/${filename}" && \
 | 
				
			||||||
 | 
					        chown root:root "${dest_dir}/${filename}" && \
 | 
				
			||||||
 | 
					        copied=$((copied + 1))
 | 
				
			||||||
 | 
					    done
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    echo "  ✔ Copied $copied files for PHP $version"
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo -e "\n✅ Configuration copy completed"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,7 +2,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
/bin/sh /entrypoint/container-php-ver-inst.sh
 | 
					/bin/sh /entrypoint/container-php-ver-inst.sh
 | 
				
			||||||
/bin/sh /entrypoint/install-php-versions.sh
 | 
					/bin/sh /entrypoint/install-php-versions.sh
 | 
				
			||||||
/bin/sh /entrypoint/copy-config.sh
 | 
					/bin/bash /entrypoint/copy-config.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/bin/sh /entrypoint/start-php-fpm.sh
 | 
					/bin/sh /entrypoint/start-php-fpm.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,499 +0,0 @@
 | 
				
			|||||||
; Start a new pool named 'moodle4_5'.
 | 
					 | 
				
			||||||
; the variable $pool can be used in any directive and will be replaced by the
 | 
					 | 
				
			||||||
; pool name ('moodle4_5' here)
 | 
					 | 
				
			||||||
[moodle4_5]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; Per pool prefix
 | 
					 | 
				
			||||||
; It only applies on the following directives:
 | 
					 | 
				
			||||||
; - 'access.log'
 | 
					 | 
				
			||||||
; - 'slowlog'
 | 
					 | 
				
			||||||
; - 'listen' (unixsocket)
 | 
					 | 
				
			||||||
; - 'chroot'
 | 
					 | 
				
			||||||
; - 'chdir'
 | 
					 | 
				
			||||||
; - 'php_values'
 | 
					 | 
				
			||||||
; - 'php_admin_values'
 | 
					 | 
				
			||||||
; When not set, the global prefix (or /usr) applies instead.
 | 
					 | 
				
			||||||
; Note: This directive can also be relative to the global prefix.
 | 
					 | 
				
			||||||
; Default Value: none
 | 
					 | 
				
			||||||
;prefix = /path/to/pools/$pool
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; Unix user/group of the child processes. This can be used only if the master
 | 
					 | 
				
			||||||
; process running user is root. It is set after the child process is created.
 | 
					 | 
				
			||||||
; The user and group can be specified either by their name or by their numeric
 | 
					 | 
				
			||||||
; IDs.
 | 
					 | 
				
			||||||
; Note: If the user is root, the executable needs to be started with
 | 
					 | 
				
			||||||
;       --allow-to-run-as-root option to work.
 | 
					 | 
				
			||||||
; Default Values: The user is set to master process running user by default.
 | 
					 | 
				
			||||||
;                 If the group is not set, the user's group is used.
 | 
					 | 
				
			||||||
user = www-data
 | 
					 | 
				
			||||||
group = www-data
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; The address on which to accept FastCGI requests.
 | 
					 | 
				
			||||||
; Valid syntaxes are:
 | 
					 | 
				
			||||||
;   'ip.add.re.ss:port'    - to listen on a TCP socket to a specific IPv4 address on
 | 
					 | 
				
			||||||
;                            a specific port;
 | 
					 | 
				
			||||||
;   '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on
 | 
					 | 
				
			||||||
;                            a specific port;
 | 
					 | 
				
			||||||
;   'port'                 - to listen on a TCP socket to all addresses
 | 
					 | 
				
			||||||
;                            (IPv6 and IPv4-mapped) on a specific port;
 | 
					 | 
				
			||||||
;   '/path/to/unix/socket' - to listen on a unix socket.
 | 
					 | 
				
			||||||
; Note: This value is mandatory.
 | 
					 | 
				
			||||||
listen = /run/php/php8.2-moodle4_5-fpm.sock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; Set listen(2) backlog.
 | 
					 | 
				
			||||||
; Default Value: 511 (-1 on Linux, FreeBSD and OpenBSD)
 | 
					 | 
				
			||||||
;listen.backlog = 511
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; Set permissions for unix socket, if one is used. In Linux, read/write
 | 
					 | 
				
			||||||
; permissions must be set in order to allow connections from a web server. Many
 | 
					 | 
				
			||||||
; BSD-derived systems allow connections regardless of permissions. The owner
 | 
					 | 
				
			||||||
; and group can be specified either by name or by their numeric IDs.
 | 
					 | 
				
			||||||
; Default Values: Owner is set to the master process running user. If the group
 | 
					 | 
				
			||||||
;                 is not set, the owner's group is used. Mode is set to 0660.
 | 
					 | 
				
			||||||
listen.owner = www-data
 | 
					 | 
				
			||||||
listen.group = www-data
 | 
					 | 
				
			||||||
;listen.mode = 0660
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; When POSIX Access Control Lists are supported you can set them using
 | 
					 | 
				
			||||||
; these options, value is a comma separated list of user/group names.
 | 
					 | 
				
			||||||
; When set, listen.owner and listen.group are ignored
 | 
					 | 
				
			||||||
;listen.acl_users =
 | 
					 | 
				
			||||||
;listen.acl_groups =
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect.
 | 
					 | 
				
			||||||
; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original
 | 
					 | 
				
			||||||
; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address
 | 
					 | 
				
			||||||
; must be separated by a comma. If this value is left blank, connections will be
 | 
					 | 
				
			||||||
; accepted from any ip address.
 | 
					 | 
				
			||||||
; Default Value: any
 | 
					 | 
				
			||||||
;listen.allowed_clients = 127.0.0.1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; Set the associated the route table (FIB). FreeBSD only
 | 
					 | 
				
			||||||
; Default Value: -1
 | 
					 | 
				
			||||||
;listen.setfib = 1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; Specify the nice(2) priority to apply to the pool processes (only if set)
 | 
					 | 
				
			||||||
; The value can vary from -19 (highest priority) to 20 (lower priority)
 | 
					 | 
				
			||||||
; Note: - It will only work if the FPM master process is launched as root
 | 
					 | 
				
			||||||
;       - The pool processes will inherit the master process priority
 | 
					 | 
				
			||||||
;         unless it specified otherwise
 | 
					 | 
				
			||||||
; Default Value: no set
 | 
					 | 
				
			||||||
; process.priority = -19
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; Set the process dumpable flag (PR_SET_DUMPABLE prctl for Linux or
 | 
					 | 
				
			||||||
; PROC_TRACE_CTL procctl for FreeBSD) even if the process user
 | 
					 | 
				
			||||||
; or group is different than the master process user. It allows to create process
 | 
					 | 
				
			||||||
; core dump and ptrace the process for the pool user.
 | 
					 | 
				
			||||||
; Default Value: no
 | 
					 | 
				
			||||||
; process.dumpable = yes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; Choose how the process manager will control the number of child processes.
 | 
					 | 
				
			||||||
; Possible Values:
 | 
					 | 
				
			||||||
;   static  - a fixed number (pm.max_children) of child processes;
 | 
					 | 
				
			||||||
;   dynamic - the number of child processes are set dynamically based on the
 | 
					 | 
				
			||||||
;             following directives. With this process management, there will be
 | 
					 | 
				
			||||||
;             always at least 1 children.
 | 
					 | 
				
			||||||
;             pm.max_children      - the maximum number of children that can
 | 
					 | 
				
			||||||
;                                    be alive at the same time.
 | 
					 | 
				
			||||||
;             pm.start_servers     - the number of children created on startup.
 | 
					 | 
				
			||||||
;             pm.min_spare_servers - the minimum number of children in 'idle'
 | 
					 | 
				
			||||||
;                                    state (waiting to process). If the number
 | 
					 | 
				
			||||||
;                                    of 'idle' processes is less than this
 | 
					 | 
				
			||||||
;                                    number then some children will be created.
 | 
					 | 
				
			||||||
;             pm.max_spare_servers - the maximum number of children in 'idle'
 | 
					 | 
				
			||||||
;                                    state (waiting to process). If the number
 | 
					 | 
				
			||||||
;                                    of 'idle' processes is greater than this
 | 
					 | 
				
			||||||
;                                    number then some children will be killed.
 | 
					 | 
				
			||||||
;             pm.max_spawn_rate    - the maximum number of rate to spawn child
 | 
					 | 
				
			||||||
;                                    processes at once.
 | 
					 | 
				
			||||||
;  ondemand - no children are created at startup. Children will be forked when
 | 
					 | 
				
			||||||
;             new requests will connect. The following parameter are used:
 | 
					 | 
				
			||||||
;             pm.max_children           - the maximum number of children that
 | 
					 | 
				
			||||||
;                                         can be alive at the same time.
 | 
					 | 
				
			||||||
;             pm.process_idle_timeout   - The number of seconds after which
 | 
					 | 
				
			||||||
;                                         an idle process will be killed.
 | 
					 | 
				
			||||||
; Note: This value is mandatory.
 | 
					 | 
				
			||||||
pm = dynamic
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; The number of child processes to be created when pm is set to 'static' and the
 | 
					 | 
				
			||||||
; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'.
 | 
					 | 
				
			||||||
; This value sets the limit on the number of simultaneous requests that will be
 | 
					 | 
				
			||||||
; served. Equivalent to the ApacheMaxClients directive with mpm_prefork.
 | 
					 | 
				
			||||||
; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP
 | 
					 | 
				
			||||||
; CGI. The below defaults are based on a server without much resources. Don't
 | 
					 | 
				
			||||||
; forget to tweak pm.* to fit your needs.
 | 
					 | 
				
			||||||
; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand'
 | 
					 | 
				
			||||||
; Note: This value is mandatory.
 | 
					 | 
				
			||||||
pm.max_children = 5
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; The number of child processes created on startup.
 | 
					 | 
				
			||||||
; Note: Used only when pm is set to 'dynamic'
 | 
					 | 
				
			||||||
; Default Value: (min_spare_servers + max_spare_servers) / 2
 | 
					 | 
				
			||||||
pm.start_servers = 2
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; The desired minimum number of idle server processes.
 | 
					 | 
				
			||||||
; Note: Used only when pm is set to 'dynamic'
 | 
					 | 
				
			||||||
; Note: Mandatory when pm is set to 'dynamic'
 | 
					 | 
				
			||||||
pm.min_spare_servers = 1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; The desired maximum number of idle server processes.
 | 
					 | 
				
			||||||
; Note: Used only when pm is set to 'dynamic'
 | 
					 | 
				
			||||||
; Note: Mandatory when pm is set to 'dynamic'
 | 
					 | 
				
			||||||
pm.max_spare_servers = 3
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; The number of rate to spawn child processes at once.
 | 
					 | 
				
			||||||
; Note: Used only when pm is set to 'dynamic'
 | 
					 | 
				
			||||||
; Note: Mandatory when pm is set to 'dynamic'
 | 
					 | 
				
			||||||
; Default Value: 32
 | 
					 | 
				
			||||||
;pm.max_spawn_rate = 32
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; The number of seconds after which an idle process will be killed.
 | 
					 | 
				
			||||||
; Note: Used only when pm is set to 'ondemand'
 | 
					 | 
				
			||||||
; Default Value: 10s
 | 
					 | 
				
			||||||
;pm.process_idle_timeout = 10s;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; The number of requests each child process should execute before respawning.
 | 
					 | 
				
			||||||
; This can be useful to work around memory leaks in 3rd party libraries. For
 | 
					 | 
				
			||||||
; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
 | 
					 | 
				
			||||||
; Default Value: 0
 | 
					 | 
				
			||||||
;pm.max_requests = 500
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; The URI to view the FPM status page. If this value is not set, no URI will be
 | 
					 | 
				
			||||||
; recognized as a status page. It shows the following information:
 | 
					 | 
				
			||||||
;   pool                 - the name of the pool;
 | 
					 | 
				
			||||||
;   process manager      - static, dynamic or ondemand;
 | 
					 | 
				
			||||||
;   start time           - the date and time FPM has started;
 | 
					 | 
				
			||||||
;   start since          - number of seconds since FPM has started;
 | 
					 | 
				
			||||||
;   accepted conn        - the number of request accepted by the pool;
 | 
					 | 
				
			||||||
;   listen queue         - the number of request in the queue of pending
 | 
					 | 
				
			||||||
;                          connections (see backlog in listen(2));
 | 
					 | 
				
			||||||
;   max listen queue     - the maximum number of requests in the queue
 | 
					 | 
				
			||||||
;                          of pending connections since FPM has started;
 | 
					 | 
				
			||||||
;   listen queue len     - the size of the socket queue of pending connections;
 | 
					 | 
				
			||||||
;   idle processes       - the number of idle processes;
 | 
					 | 
				
			||||||
;   active processes     - the number of active processes;
 | 
					 | 
				
			||||||
;   total processes      - the number of idle + active processes;
 | 
					 | 
				
			||||||
;   max active processes - the maximum number of active processes since FPM
 | 
					 | 
				
			||||||
;                          has started;
 | 
					 | 
				
			||||||
;   max children reached - number of times, the process limit has been reached,
 | 
					 | 
				
			||||||
;                          when pm tries to start more children (works only for
 | 
					 | 
				
			||||||
;                          pm 'dynamic' and 'ondemand');
 | 
					 | 
				
			||||||
; Value are updated in real time.
 | 
					 | 
				
			||||||
; Example output:
 | 
					 | 
				
			||||||
;   pool:                 www
 | 
					 | 
				
			||||||
;   process manager:      static
 | 
					 | 
				
			||||||
;   start time:           01/Jul/2011:17:53:49 +0200
 | 
					 | 
				
			||||||
;   start since:          62636
 | 
					 | 
				
			||||||
;   accepted conn:        190460
 | 
					 | 
				
			||||||
;   listen queue:         0
 | 
					 | 
				
			||||||
;   max listen queue:     1
 | 
					 | 
				
			||||||
;   listen queue len:     42
 | 
					 | 
				
			||||||
;   idle processes:       4
 | 
					 | 
				
			||||||
;   active processes:     11
 | 
					 | 
				
			||||||
;   total processes:      15
 | 
					 | 
				
			||||||
;   max active processes: 12
 | 
					 | 
				
			||||||
;   max children reached: 0
 | 
					 | 
				
			||||||
;
 | 
					 | 
				
			||||||
; By default the status page output is formatted as text/plain. Passing either
 | 
					 | 
				
			||||||
; 'html', 'xml' or 'json' in the query string will return the corresponding
 | 
					 | 
				
			||||||
; output syntax. Example:
 | 
					 | 
				
			||||||
;   http://www.foo.bar/status
 | 
					 | 
				
			||||||
;   http://www.foo.bar/status?json
 | 
					 | 
				
			||||||
;   http://www.foo.bar/status?html
 | 
					 | 
				
			||||||
;   http://www.foo.bar/status?xml
 | 
					 | 
				
			||||||
;
 | 
					 | 
				
			||||||
; By default the status page only outputs short status. Passing 'full' in the
 | 
					 | 
				
			||||||
; query string will also return status for each pool process.
 | 
					 | 
				
			||||||
; Example:
 | 
					 | 
				
			||||||
;   http://www.foo.bar/status?full
 | 
					 | 
				
			||||||
;   http://www.foo.bar/status?json&full
 | 
					 | 
				
			||||||
;   http://www.foo.bar/status?html&full
 | 
					 | 
				
			||||||
;   http://www.foo.bar/status?xml&full
 | 
					 | 
				
			||||||
; The Full status returns for each process:
 | 
					 | 
				
			||||||
;   pid                  - the PID of the process;
 | 
					 | 
				
			||||||
;   state                - the state of the process (Idle, Running, ...);
 | 
					 | 
				
			||||||
;   start time           - the date and time the process has started;
 | 
					 | 
				
			||||||
;   start since          - the number of seconds since the process has started;
 | 
					 | 
				
			||||||
;   requests             - the number of requests the process has served;
 | 
					 | 
				
			||||||
;   request duration     - the duration in µs of the requests;
 | 
					 | 
				
			||||||
;   request method       - the request method (GET, POST, ...);
 | 
					 | 
				
			||||||
;   request URI          - the request URI with the query string;
 | 
					 | 
				
			||||||
;   content length       - the content length of the request (only with POST);
 | 
					 | 
				
			||||||
;   user                 - the user (PHP_AUTH_USER) (or '-' if not set);
 | 
					 | 
				
			||||||
;   script               - the main script called (or '-' if not set);
 | 
					 | 
				
			||||||
;   last request cpu     - the %cpu the last request consumed
 | 
					 | 
				
			||||||
;                          it's always 0 if the process is not in Idle state
 | 
					 | 
				
			||||||
;                          because CPU calculation is done when the request
 | 
					 | 
				
			||||||
;                          processing has terminated;
 | 
					 | 
				
			||||||
;   last request memory  - the max amount of memory the last request consumed
 | 
					 | 
				
			||||||
;                          it's always 0 if the process is not in Idle state
 | 
					 | 
				
			||||||
;                          because memory calculation is done when the request
 | 
					 | 
				
			||||||
;                          processing has terminated;
 | 
					 | 
				
			||||||
; If the process is in Idle state, then informations are related to the
 | 
					 | 
				
			||||||
; last request the process has served. Otherwise informations are related to
 | 
					 | 
				
			||||||
; the current request being served.
 | 
					 | 
				
			||||||
; Example output:
 | 
					 | 
				
			||||||
;   ************************
 | 
					 | 
				
			||||||
;   pid:                  31330
 | 
					 | 
				
			||||||
;   state:                Running
 | 
					 | 
				
			||||||
;   start time:           01/Jul/2011:17:53:49 +0200
 | 
					 | 
				
			||||||
;   start since:          63087
 | 
					 | 
				
			||||||
;   requests:             12808
 | 
					 | 
				
			||||||
;   request duration:     1250261
 | 
					 | 
				
			||||||
;   request method:       GET
 | 
					 | 
				
			||||||
;   request URI:          /test_mem.php?N=10000
 | 
					 | 
				
			||||||
;   content length:       0
 | 
					 | 
				
			||||||
;   user:                 -
 | 
					 | 
				
			||||||
;   script:               /home/fat/web/docs/php/test_mem.php
 | 
					 | 
				
			||||||
;   last request cpu:     0.00
 | 
					 | 
				
			||||||
;   last request memory:  0
 | 
					 | 
				
			||||||
;
 | 
					 | 
				
			||||||
; Note: There is a real-time FPM status monitoring sample web page available
 | 
					 | 
				
			||||||
;       It's available in: /usr/share/php/8.2/fpm/status.html
 | 
					 | 
				
			||||||
;
 | 
					 | 
				
			||||||
; Note: The value must start with a leading slash (/). The value can be
 | 
					 | 
				
			||||||
;       anything, but it may not be a good idea to use the .php extension or it
 | 
					 | 
				
			||||||
;       may conflict with a real PHP file.
 | 
					 | 
				
			||||||
; Default Value: not set
 | 
					 | 
				
			||||||
;pm.status_path = /status
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; The address on which to accept FastCGI status request. This creates a new
 | 
					 | 
				
			||||||
; invisible pool that can handle requests independently. This is useful
 | 
					 | 
				
			||||||
; if the main pool is busy with long running requests because it is still possible
 | 
					 | 
				
			||||||
; to get the status before finishing the long running requests.
 | 
					 | 
				
			||||||
;
 | 
					 | 
				
			||||||
; Valid syntaxes are:
 | 
					 | 
				
			||||||
;   'ip.add.re.ss:port'    - to listen on a TCP socket to a specific IPv4 address on
 | 
					 | 
				
			||||||
;                            a specific port;
 | 
					 | 
				
			||||||
;   '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on
 | 
					 | 
				
			||||||
;                            a specific port;
 | 
					 | 
				
			||||||
;   'port'                 - to listen on a TCP socket to all addresses
 | 
					 | 
				
			||||||
;                            (IPv6 and IPv4-mapped) on a specific port;
 | 
					 | 
				
			||||||
;   '/path/to/unix/socket' - to listen on a unix socket.
 | 
					 | 
				
			||||||
; Default Value: value of the listen option
 | 
					 | 
				
			||||||
;pm.status_listen = 127.0.0.1:9001
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; The ping URI to call the monitoring page of FPM. If this value is not set, no
 | 
					 | 
				
			||||||
; URI will be recognized as a ping page. This could be used to test from outside
 | 
					 | 
				
			||||||
; that FPM is alive and responding, or to
 | 
					 | 
				
			||||||
; - create a graph of FPM availability (rrd or such);
 | 
					 | 
				
			||||||
; - remove a server from a group if it is not responding (load balancing);
 | 
					 | 
				
			||||||
; - trigger alerts for the operating team (24/7).
 | 
					 | 
				
			||||||
; Note: The value must start with a leading slash (/). The value can be
 | 
					 | 
				
			||||||
;       anything, but it may not be a good idea to use the .php extension or it
 | 
					 | 
				
			||||||
;       may conflict with a real PHP file.
 | 
					 | 
				
			||||||
; Default Value: not set
 | 
					 | 
				
			||||||
;ping.path = /ping
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; This directive may be used to customize the response of a ping request. The
 | 
					 | 
				
			||||||
; response is formatted as text/plain with a 200 response code.
 | 
					 | 
				
			||||||
; Default Value: pong
 | 
					 | 
				
			||||||
;ping.response = pong
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; The access log file
 | 
					 | 
				
			||||||
; Default: not set
 | 
					 | 
				
			||||||
;access.log = log/$pool.access.log
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; The access log format.
 | 
					 | 
				
			||||||
; The following syntax is allowed
 | 
					 | 
				
			||||||
;  %%: the '%' character
 | 
					 | 
				
			||||||
;  %C: %CPU used by the request
 | 
					 | 
				
			||||||
;      it can accept the following format:
 | 
					 | 
				
			||||||
;      - %{user}C for user CPU only
 | 
					 | 
				
			||||||
;      - %{system}C for system CPU only
 | 
					 | 
				
			||||||
;      - %{total}C  for user + system CPU (default)
 | 
					 | 
				
			||||||
;  %d: time taken to serve the request
 | 
					 | 
				
			||||||
;      it can accept the following format:
 | 
					 | 
				
			||||||
;      - %{seconds}d (default)
 | 
					 | 
				
			||||||
;      - %{milliseconds}d
 | 
					 | 
				
			||||||
;      - %{milli}d
 | 
					 | 
				
			||||||
;      - %{microseconds}d
 | 
					 | 
				
			||||||
;      - %{micro}d
 | 
					 | 
				
			||||||
;  %e: an environment variable (same as $_ENV or $_SERVER)
 | 
					 | 
				
			||||||
;      it must be associated with embraces to specify the name of the env
 | 
					 | 
				
			||||||
;      variable. Some examples:
 | 
					 | 
				
			||||||
;      - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e
 | 
					 | 
				
			||||||
;      - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e
 | 
					 | 
				
			||||||
;  %f: script filename
 | 
					 | 
				
			||||||
;  %l: content-length of the request (for POST request only)
 | 
					 | 
				
			||||||
;  %m: request method
 | 
					 | 
				
			||||||
;  %M: peak of memory allocated by PHP
 | 
					 | 
				
			||||||
;      it can accept the following format:
 | 
					 | 
				
			||||||
;      - %{bytes}M (default)
 | 
					 | 
				
			||||||
;      - %{kilobytes}M
 | 
					 | 
				
			||||||
;      - %{kilo}M
 | 
					 | 
				
			||||||
;      - %{megabytes}M
 | 
					 | 
				
			||||||
;      - %{mega}M
 | 
					 | 
				
			||||||
;  %n: pool name
 | 
					 | 
				
			||||||
;  %o: output header
 | 
					 | 
				
			||||||
;      it must be associated with embraces to specify the name of the header:
 | 
					 | 
				
			||||||
;      - %{Content-Type}o
 | 
					 | 
				
			||||||
;      - %{X-Powered-By}o
 | 
					 | 
				
			||||||
;      - %{Transfert-Encoding}o
 | 
					 | 
				
			||||||
;      - ....
 | 
					 | 
				
			||||||
;  %p: PID of the child that serviced the request
 | 
					 | 
				
			||||||
;  %P: PID of the parent of the child that serviced the request
 | 
					 | 
				
			||||||
;  %q: the query string
 | 
					 | 
				
			||||||
;  %Q: the '?' character if query string exists
 | 
					 | 
				
			||||||
;  %r: the request URI (without the query string, see %q and %Q)
 | 
					 | 
				
			||||||
;  %R: remote IP address
 | 
					 | 
				
			||||||
;  %s: status (response code)
 | 
					 | 
				
			||||||
;  %t: server time the request was received
 | 
					 | 
				
			||||||
;      it can accept a strftime(3) format:
 | 
					 | 
				
			||||||
;      %d/%b/%Y:%H:%M:%S %z (default)
 | 
					 | 
				
			||||||
;      The strftime(3) format must be encapsulated in a %{<strftime_format>}t tag
 | 
					 | 
				
			||||||
;      e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t
 | 
					 | 
				
			||||||
;  %T: time the log has been written (the request has finished)
 | 
					 | 
				
			||||||
;      it can accept a strftime(3) format:
 | 
					 | 
				
			||||||
;      %d/%b/%Y:%H:%M:%S %z (default)
 | 
					 | 
				
			||||||
;      The strftime(3) format must be encapsulated in a %{<strftime_format>}t tag
 | 
					 | 
				
			||||||
;      e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t
 | 
					 | 
				
			||||||
;  %u: remote user
 | 
					 | 
				
			||||||
;
 | 
					 | 
				
			||||||
; Default: "%R - %u %t \"%m %r\" %s"
 | 
					 | 
				
			||||||
;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{milli}d %{kilo}M %C%%"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; A list of request_uri values which should be filtered from the access log.
 | 
					 | 
				
			||||||
;
 | 
					 | 
				
			||||||
; As a security precuation, this setting will be ignored if:
 | 
					 | 
				
			||||||
;     - the request method is not GET or HEAD; or
 | 
					 | 
				
			||||||
;     - there is a request body; or
 | 
					 | 
				
			||||||
;     - there are query parameters; or
 | 
					 | 
				
			||||||
;     - the response code is outwith the successful range of 200 to 299
 | 
					 | 
				
			||||||
;
 | 
					 | 
				
			||||||
; Note: The paths are matched against the output of the access.format tag "%r".
 | 
					 | 
				
			||||||
;       On common configurations, this may look more like SCRIPT_NAME than the
 | 
					 | 
				
			||||||
;       expected pre-rewrite URI.
 | 
					 | 
				
			||||||
;
 | 
					 | 
				
			||||||
; Default Value: not set
 | 
					 | 
				
			||||||
;access.suppress_path[] = /ping
 | 
					 | 
				
			||||||
;access.suppress_path[] = /health_check.php
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; The log file for slow requests
 | 
					 | 
				
			||||||
; Default Value: not set
 | 
					 | 
				
			||||||
; Note: slowlog is mandatory if request_slowlog_timeout is set
 | 
					 | 
				
			||||||
;slowlog = log/$pool.log.slow
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; The timeout for serving a single request after which a PHP backtrace will be
 | 
					 | 
				
			||||||
; dumped to the 'slowlog' file. A value of '0s' means 'off'.
 | 
					 | 
				
			||||||
; Available units: s(econds)(default), m(inutes), h(ours), or d(ays)
 | 
					 | 
				
			||||||
; Default Value: 0
 | 
					 | 
				
			||||||
;request_slowlog_timeout = 0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; Depth of slow log stack trace.
 | 
					 | 
				
			||||||
; Default Value: 20
 | 
					 | 
				
			||||||
;request_slowlog_trace_depth = 20
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; The timeout for serving a single request after which the worker process will
 | 
					 | 
				
			||||||
; be killed. This option should be used when the 'max_execution_time' ini option
 | 
					 | 
				
			||||||
; does not stop script execution for some reason. A value of '0' means 'off'.
 | 
					 | 
				
			||||||
; Available units: s(econds)(default), m(inutes), h(ours), or d(ays)
 | 
					 | 
				
			||||||
; Default Value: 0
 | 
					 | 
				
			||||||
;request_terminate_timeout = 0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; The timeout set by 'request_terminate_timeout' ini option is not engaged after
 | 
					 | 
				
			||||||
; application calls 'fastcgi_finish_request' or when application has finished and
 | 
					 | 
				
			||||||
; shutdown functions are being called (registered via register_shutdown_function).
 | 
					 | 
				
			||||||
; This option will enable timeout limit to be applied unconditionally
 | 
					 | 
				
			||||||
; even in such cases.
 | 
					 | 
				
			||||||
; Default Value: no
 | 
					 | 
				
			||||||
;request_terminate_timeout_track_finished = no
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; Set open file descriptor rlimit.
 | 
					 | 
				
			||||||
; Default Value: system defined value
 | 
					 | 
				
			||||||
;rlimit_files = 1024
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; Set max core size rlimit.
 | 
					 | 
				
			||||||
; Possible Values: 'unlimited' or an integer greater or equal to 0
 | 
					 | 
				
			||||||
; Default Value: system defined value
 | 
					 | 
				
			||||||
;rlimit_core = 0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; Chroot to this directory at the start. This value must be defined as an
 | 
					 | 
				
			||||||
; absolute path. When this value is not set, chroot is not used.
 | 
					 | 
				
			||||||
; Note: you can prefix with '$prefix' to chroot to the pool prefix or one
 | 
					 | 
				
			||||||
; of its subdirectories. If the pool prefix is not set, the global prefix
 | 
					 | 
				
			||||||
; will be used instead.
 | 
					 | 
				
			||||||
; Note: chrooting is a great security feature and should be used whenever
 | 
					 | 
				
			||||||
;       possible. However, all PHP paths will be relative to the chroot
 | 
					 | 
				
			||||||
;       (error_log, sessions.save_path, ...).
 | 
					 | 
				
			||||||
; Default Value: not set
 | 
					 | 
				
			||||||
;chroot =
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; Chdir to this directory at the start.
 | 
					 | 
				
			||||||
; Note: relative path can be used.
 | 
					 | 
				
			||||||
; Default Value: current directory or / when chroot
 | 
					 | 
				
			||||||
;chdir = /var/www
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; Redirect worker stdout and stderr into main error log. If not set, stdout and
 | 
					 | 
				
			||||||
; stderr will be redirected to /dev/null according to FastCGI specs.
 | 
					 | 
				
			||||||
; Note: on highloaded environment, this can cause some delay in the page
 | 
					 | 
				
			||||||
; process time (several ms).
 | 
					 | 
				
			||||||
; Default Value: no
 | 
					 | 
				
			||||||
;catch_workers_output = yes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; Decorate worker output with prefix and suffix containing information about
 | 
					 | 
				
			||||||
; the child that writes to the log and if stdout or stderr is used as well as
 | 
					 | 
				
			||||||
; log level and time. This options is used only if catch_workers_output is yes.
 | 
					 | 
				
			||||||
; Settings to "no" will output data as written to the stdout or stderr.
 | 
					 | 
				
			||||||
; Default value: yes
 | 
					 | 
				
			||||||
;decorate_workers_output = no
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; Clear environment in FPM workers
 | 
					 | 
				
			||||||
; Prevents arbitrary environment variables from reaching FPM worker processes
 | 
					 | 
				
			||||||
; by clearing the environment in workers before env vars specified in this
 | 
					 | 
				
			||||||
; pool configuration are added.
 | 
					 | 
				
			||||||
; Setting to "no" will make all environment variables available to PHP code
 | 
					 | 
				
			||||||
; via getenv(), $_ENV and $_SERVER.
 | 
					 | 
				
			||||||
; Default Value: yes
 | 
					 | 
				
			||||||
;clear_env = no
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; Limits the extensions of the main script FPM will allow to parse. This can
 | 
					 | 
				
			||||||
; prevent configuration mistakes on the web server side. You should only limit
 | 
					 | 
				
			||||||
; FPM to .php extensions to prevent malicious users to use other extensions to
 | 
					 | 
				
			||||||
; execute php code.
 | 
					 | 
				
			||||||
; Note: set an empty value to allow all extensions.
 | 
					 | 
				
			||||||
; Default Value: .php
 | 
					 | 
				
			||||||
;security.limit_extensions = .php .php3 .php4 .php5 .php7
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from
 | 
					 | 
				
			||||||
; the current environment.
 | 
					 | 
				
			||||||
; Default Value: clean env
 | 
					 | 
				
			||||||
env[HOSTNAME] = $HOSTNAME
 | 
					 | 
				
			||||||
env[PATH] = /usr/local/bin:/usr/bin:/bin
 | 
					 | 
				
			||||||
env[TMP] = /tmp
 | 
					 | 
				
			||||||
env[TMPDIR] = /tmp
 | 
					 | 
				
			||||||
env[TEMP] = /tmp
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; Additional php.ini defines, specific to this pool of workers. These settings
 | 
					 | 
				
			||||||
; overwrite the values previously defined in the php.ini. The directives are the
 | 
					 | 
				
			||||||
; same as the PHP SAPI:
 | 
					 | 
				
			||||||
;   php_value/php_flag             - you can set classic ini defines which can
 | 
					 | 
				
			||||||
;                                    be overwritten from PHP call 'ini_set'.
 | 
					 | 
				
			||||||
;   php_admin_value/php_admin_flag - these directives won't be overwritten by
 | 
					 | 
				
			||||||
;                                     PHP call 'ini_set'
 | 
					 | 
				
			||||||
; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; Defining 'extension' will load the corresponding shared extension from
 | 
					 | 
				
			||||||
; extension_dir. Defining 'disable_functions' or 'disable_classes' will not
 | 
					 | 
				
			||||||
; overwrite previously defined php.ini values, but will append the new value
 | 
					 | 
				
			||||||
; instead.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; Note: path INI options can be relative and will be expanded with the prefix
 | 
					 | 
				
			||||||
; (pool, global or /usr)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
; Default Value: nothing is defined by default except the values in php.ini and
 | 
					 | 
				
			||||||
;                specified at startup with the -d argument
 | 
					 | 
				
			||||||
;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com
 | 
					 | 
				
			||||||
;php_flag[display_errors] = off
 | 
					 | 
				
			||||||
;php_admin_value[error_log] = /var/log/fpm-php.www.log
 | 
					 | 
				
			||||||
;php_admin_flag[log_errors] = on
 | 
					 | 
				
			||||||
;php_admin_value[memory_limit] = 128M
 | 
					 | 
				
			||||||
;
 | 
					 | 
				
			||||||
php_admin_value[error_log] = /var/log/fpm-php-moodle4_5.log
 | 
					 | 
				
			||||||
php_admin_flag[log_errors] = on
 | 
					 | 
				
			||||||
php_admin_value[memory_limit] = 512M
 | 
					 | 
				
			||||||
php_admin_value[post_max_size] = 256M
 | 
					 | 
				
			||||||
php_admin_value[post_max_filesize] = 256M
 | 
					 | 
				
			||||||
php_admin_value[upload_max_filesize] = 256M
 | 
					 | 
				
			||||||
php_admin_value[opcache.interned_strings_buffer] = 32
 | 
					 | 
				
			||||||
php_admin_value[max_input_vars] = 25000
 | 
					 | 
				
			||||||
@@ -1,4 +1,37 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Copy all .conf files from source to destination
 | 
					# Source and destination directories
 | 
				
			||||||
cp /mnt/place-config/etc/nginx/sites-available/*.conf /etc/nginx/sites-available/
 | 
					SRC_DIR="/mnt/place-config/etc/nginx/sites-available"
 | 
				
			||||||
 | 
					SITES_AVAILABLE="/etc/nginx/sites-available"
 | 
				
			||||||
 | 
					SITES_ENABLED="/etc/nginx/sites-enabled"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Check if source directory exists
 | 
				
			||||||
 | 
					if [ ! -d "$SRC_DIR" ]; then
 | 
				
			||||||
 | 
					    echo "Error: Source directory $SRC_DIR does not exist!"
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Create destination directories if they don't exist
 | 
				
			||||||
 | 
					mkdir -p "$SITES_AVAILABLE"
 | 
				
			||||||
 | 
					mkdir -p "$SITES_ENABLED"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Copy all .conf files from source to sites-available
 | 
				
			||||||
 | 
					echo "Copying .conf files from $SRC_DIR to $SITES_AVAILABLE..."
 | 
				
			||||||
 | 
					cp -v "$SRC_DIR"/*.conf "$SITES_AVAILABLE/"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Create symbolic links in sites-enabled
 | 
				
			||||||
 | 
					echo "Creating symbolic links in $SITES_ENABLED..."
 | 
				
			||||||
 | 
					for config_file in "$SITES_AVAILABLE"/*.conf; do
 | 
				
			||||||
 | 
					    if [ -f "$config_file" ]; then
 | 
				
			||||||
 | 
					        filename=$(basename "$config_file")
 | 
				
			||||||
 | 
					        # Remove existing link/file if it exists
 | 
				
			||||||
 | 
					        if [ -e "$SITES_ENABLED/$filename" ] || [ -L "$SITES_ENABLED/$filename" ]; then
 | 
				
			||||||
 | 
					            rm -f "$SITES_ENABLED/$filename"
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					        # Create symbolic link
 | 
				
			||||||
 | 
					        ln -sf "$config_file" "$SITES_ENABLED/$filename"
 | 
				
			||||||
 | 
					        echo "Linked: $SITES_ENABLED/$filename -> $config_file"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo "Operation completed successfully!"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,23 +0,0 @@
 | 
				
			|||||||
<!DOCTYPE html>
 | 
					 | 
				
			||||||
<html>
 | 
					 | 
				
			||||||
<head>
 | 
					 | 
				
			||||||
<title>Welcome to nginx!</title>
 | 
					 | 
				
			||||||
<style>
 | 
					 | 
				
			||||||
html { color-scheme: light dark; }
 | 
					 | 
				
			||||||
body { width: 35em; margin: 0 auto;
 | 
					 | 
				
			||||||
font-family: Tahoma, Verdana, Arial, sans-serif; }
 | 
					 | 
				
			||||||
</style>
 | 
					 | 
				
			||||||
</head>
 | 
					 | 
				
			||||||
<body>
 | 
					 | 
				
			||||||
<h1>Welcome to nginx!</h1>
 | 
					 | 
				
			||||||
<p>If you see this page, the nginx web server is successfully installed and
 | 
					 | 
				
			||||||
working. Further configuration is required.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p>For online documentation and support please refer to
 | 
					 | 
				
			||||||
<a href="http://nginx.org/">nginx.org</a>.<br/>
 | 
					 | 
				
			||||||
Commercial support is available at
 | 
					 | 
				
			||||||
<a href="http://nginx.com/">nginx.com</a>.</p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<p><em>Thank you for using nginx.</em></p>
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
		Reference in New Issue
	
	Block a user