Compare commits

..

46 Commits

Author SHA1 Message Date
eroncero
8e9a56c232 Untrack override file 2025-08-19 23:40:14 +02:00
eroncero
b81160d3b9 Copy configs and enable server blocks 2025-08-19 22:07:21 +02:00
eroncero
d45c9a0fbe Run it at entrypoint 2025-08-19 21:54:11 +02:00
eroncero
d4da0caa07 Works if you run it manually in the container 2025-08-18 21:07:59 +02:00
eroncero
6f5b6e4691 Fixed script 2025-08-18 20:56:09 +02:00
eroncero
2ef71aa2e8 It should copy all php config files in /mnt/copy-config. It looks for version directory. 2025-08-18 20:35:04 +02:00
eroncero
cf85f63fff Removed duplicate configs 2025-08-18 20:23:08 +02:00
eroncero
44baf158d9 Multiple fixes 2025-08-18 20:10:13 +02:00
eroncero
29aa1f2d40 General fixes 2025-08-18 16:33:16 +02:00
eroncero
69b7243685 General refactor and fix 2025-08-18 16:10:38 +02:00
eroncero
ce59badfe0 Removed unnecessary files 2025-08-18 13:41:45 +02:00
eroncero
2a45817793 Basic working 2025-08-18 13:27:08 +02:00
eroncero
882de4be42 Start help-menu feature 2025-08-18 13:19:51 +02:00
eroncero
7a28d26bf1 A bunch of things 2025-08-18 13:12:17 +02:00
eroncero
63f4a92a8d Updated 2do 2025-08-18 13:03:26 +02:00
eroncero
7073907fe1 Created templates 2025-08-18 13:01:47 +02:00
eroncero
a627334290 Fixed del_vols accordingly 2025-08-18 12:49:45 +02:00
eroncero
44f51163aa Added a thing at 2do. 2025-08-15 20:50:22 +02:00
eroncero
2f54fe7f0c Remove old 2dolist 2025-08-15 20:44:37 +02:00
eroncero
e4113f9365 Fixed TODO list 2025-08-15 20:40:47 +02:00
eroncero
f58e56d3a0 Docker compose instruction 2025-08-15 20:35:45 +02:00
eroncero
08620ec1fc Created README.md 2025-08-15 20:34:57 +02:00
eroncero
2d5a809397 New configs added 2025-08-15 20:27:58 +02:00
eroncero
31f0dd7913 Created a new volume for copying the custom configuration files. 2025-08-15 19:48:44 +02:00
eroncero
3ab3f2175e First step 2025-08-15 19:25:13 +02:00
eroncero
bdf2ab2f48 Obv 2025-08-15 19:20:11 +02:00
eroncero
1270dad444 A bunch of things 2025-08-15 19:11:21 +02:00
eroncero
89e2780710 Refactor 2025-08-13 08:51:38 +02:00
eroncero
4e007fd421 Added custom config volume instead of whole /etc/mysql 2025-08-13 07:37:12 +02:00
eroncero
0e9c43d34d Now stuff is installed in the container instead of the image 2025-08-05 15:41:26 +02:00
eroncero
8df5735249 beta image tag 2025-08-05 14:51:23 +02:00
eroncero
4337a4c02c Added :latest tag to nginx-srv img 2025-08-05 14:49:56 +02:00
eroncero
a50eadfab8 Install stuff after the container is created 2025-08-05 14:49:08 +02:00
eroncero
7de989dbde Fix when installing PHP dependencies 2025-08-05 11:32:48 +02:00
eroncero
2f847a6dbe Add build properties 2025-08-05 10:57:54 +02:00
eroncero
f1c348f974 It really needs fix_volumes.sh to be reliable 2025-08-05 10:47:35 +02:00
eroncero
49a4491d61 Added hostnames 2025-08-04 12:21:45 +02:00
eroncero
3871443b24 Add ping 2025-08-04 12:05:19 +02:00
eroncero
becf6ef471 removed shit 2025-08-04 11:47:39 +02:00
eroncero
3d04ad8b25 Added mariadb 2025-08-04 11:43:29 +02:00
eroncero
8eec361aa7 Added letsencrypt support 2025-08-04 10:09:08 +02:00
eroncero
022c2ea5de Better vars 2025-08-04 09:47:48 +02:00
eroncero
24bdc06190 Env improved 2025-08-03 17:56:45 +02:00
eroncero
7b673ca598 Add .env 2025-08-03 17:50:50 +02:00
eroncero
cf8c4e9d09 Fixed a couple of bugs 2025-08-03 17:36:54 +02:00
eroncero
4f3cb90c2e Fixed bug at volumes 2025-08-03 17:04:06 +02:00
216 changed files with 431 additions and 4790 deletions

17
.env.template Normal file
View File

@@ -0,0 +1,17 @@
# IPv4
NGINX_HTTP_IPV4_HOST=127.0.0.1
NGINX_HTTP_IPV4_PORT=8888
NGINX_HTTPS_IPV4_HOST=127.0.0.1
NGINX_HTTPS_IPV4_PORT=8843
# IPv6
NGINX_HTTP_IPV6_HOST=::1
NGINX_HTTP_IPV6_PORT=8888
NGINX_HTTPS_IPV6_HOST=::1
NGINX_HTTPS_IPV6_PORT=8843
# Container Ports (constant)
NGINX_CONTAINER_HTTP_PORT=80
NGINX_CONTAINER_HTTPS_PORT=443
PHP_VERSIONS=7.4 7.2

20
.gitignore vendored
View File

@@ -1,6 +1,18 @@
# Add volumes to .gitignore
nginx-srv/sites-available
nginx-srv/www
nginx-srv/etc
nginx-srv/var
multi-php-fpm/etc
#
multi-php-fpm-srv/run
mariadb-srv/run
mariadb-srv/var
# Ignore Docker files
docker-compose.yaml
docker-compose.yml
compose.yaml
compose.yml
docker-compose.env
docker-compose.override.yaml
docker-compose.override.yml
.env

21
README.md Normal file
View File

@@ -0,0 +1,21 @@
# Dockerized LEMP Stack
Simple Linux + Nginx + PHP-FPM + MariaDB setup using Docker.
## Services
- **`nginx-srv`** - Nginx web server (connects to PHP-FPM via Unix socket)
- **`multi-php-fpm-srv`** - PHP-FPM processor (supports multiple PHP versions)
- **`mariadb-srv`** - MariaDB database server
## Requirements
- Docker
- Docker Compose
## Quick Start
1. Clone the repo:
```bash
git clone https://git.digitalstack.es/Digitalstack/lemp-dockerized.git
cd lemp-dockerized
docker compose up -d

21
TODO.md Normal file
View File

@@ -0,0 +1,21 @@
# LEMP Stack Improvements
### PHP-FPM Pools
- [ ] Copy custom pools from host to `/etc/php/8.2/fpm/pool.d/`
- Ensure host-mounted pools override defaults
- Add validation to check pool syntax on startup
## System Configuration
- [ ] Optimize package installation:
- Skip `apt-get update` when installing downloaded packages
- [ ] Configure system locales (e.g., `en_US.UTF-8`)
## Technical Debt
- [ ] Code refactor:
- Set correct ownership and permissions for all mount points. Such as www-data, mysql.
- Modularize Dockerfiles (base vs. production)
- Implement health checks for services
- Clean up obsolete scripts
## help-menu
- Use docker compose folder as dynamic name

11
del_vols.sh Executable file
View File

@@ -0,0 +1,11 @@
#!/bin/sh
#sudo rm -rfv nginx-srv/var # Removes /var/www
#sudo rm -rfv nginx-srv/etc # Removes /etc/letsencrypt # Removes letsencrypt certificates and configuration.
sudo rm -rfv multi-php-fpm-srv/run # Remove *.sock files
sudo rm -rfv mariadb-srv/run # Remove *.sock files
#sudo rm -rfv mariadb-srv/var # Removes MariaDB databases

View File

@@ -1,17 +0,0 @@
services:
nginx-srv:
image: eroncero/nginx-srv
ports:
- "127.0.0.1:8888:80"
- "[::1]:8843:443"
restart: unless-stopped
volumes:
- ./nginx-srv/sites-available:/etc/nginx/sites-available
- ./nginx-srv/www:/var/www
multi-php-fpm:
image: eroncero/multi-php-fpm
restart: unless-stopped
volumes:
- ./multi-php-fpm/etc/php:/etc/php
- ./multi-php-fpm/etc/php:/run/php

View File

@@ -0,0 +1,45 @@
services:
nginx-srv:
image: eroncero/nginx-srv:latest
build:
context: ./nginx-srv
dockerfile: Dockerfile
ports:
- "${NGINX_HTTP_IPV4_HOST}:${NGINX_HTTP_IPV4_PORT}:${NGINX_CONTAINER_HTTP_PORT}"
- "${NGINX_HTTP_IPV6_HOST}:${NGINX_HTTP_IPV6_PORT}:${NGINX_CONTAINER_HTTP_PORT}"
- "${NGINX_HTTPS_IPV4_HOST}:${NGINX_HTTPS_IPV4_PORT}:${NGINX_CONTAINER_HTTPS_PORT}"
- "${NGINX_HTTPS_IPV6_HOST}:${NGINX_HTTPS_IPV6_PORT}:${NGINX_CONTAINER_HTTPS_PORT}"
restart: unless-stopped
hostname: nginx-srv
volumes:
- ./mnt/place-config/etc/nginx:/mnt/place-config/etc/nginx # Config ready to be copied into the container.
- ./nginx-srv/var/www:/var/www # Webpage public html.
- ./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:
image: eroncero/multi-php-fpm-srv:latest
build:
context: ./multi-php-fpm-srv
dockerfile: Dockerfile
restart: unless-stopped
hostname: multi-php-fpm-srv
environment:
- PHP_VERSIONS=${PHP_VERSIONS} # Inherits from .env
volumes:
- ./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
- ./mariadb-srv/run/mysql:/run/mysqld # php-mysql should be able connecting to the MariaDB socket.
mariadb-srv:
image: eroncero/mariadb-srv:latest
build:
context: ./mariadb-srv
dockerfile: Dockerfile
restart: unless-stopped
hostname: mariadb-srv
volumes:
- ./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/etc/mysql/conf.d:/etc/mysql/conf.d/ # Custom config that overrides default one.
- ./mariadb-srv/run/mysqld/:/run/mysqld # Socket

View File

@@ -1,10 +0,0 @@
services:
nginx-srv:
image: eroncero/nginx-srv
ports:
- "127.0.0.1:8888:80"
- "[::1]:8843:443"
restart: unless-stopped
volumes:
- ./nginx-srv/sites-available:/etc/nginx/sites-available
- ./nginx-srv/www:/var/www

8
help-menu.sh Normal file
View File

@@ -0,0 +1,8 @@
#!/bin/bash
echo "================================================"
echo "Welcome to help-menu"
echo "================================================"
echo "To run LEMP-Dockerized: 'docker compose up -d'"
echo "To check current running services (containers): 'docker compose ps'"
echo "To check process in real-time: 'docker compose stats' (CTRL+c to exit)"
echo "To stop LEMP-Dockerized: 'docker compose down'"

11
mariadb-srv/Dockerfile Normal file
View File

@@ -0,0 +1,11 @@
FROM debian:bookworm
ENV DEBIAN_FRONTEND=noninteractive
ENV DEBCONF_NONINTERACTIVE_SEEN=true
RUN apt-get update; apt-get full-upgrade -y; apt-get install iputils-ping -y; apt-get autoclean -y; apt-get install mariadb-server mariadb-client -y --download-only
COPY project/entrypoint/entrypoint.sh /entrypoint/entrypoint.sh
COPY project/entrypoint/install-packages.sh /entrypoint/install-packages.sh
ENTRYPOINT ["/bin/sh", "/entrypoint/entrypoint.sh"]

View File

@@ -0,0 +1,14 @@
#!/bin/sh
/bin/sh /entrypoint/install-packages.sh
chown -R mysql:mysql /run/mysqld
chown -R mysql:mysql /var/lib/mysql
service mariadb start
# Run the CMD that was passed (or default)
exec "$@"
tail -f /dev/null

View File

@@ -0,0 +1,3 @@
#!/bin/sh
apt-get install -y mariadb-server mariadb-client

View File

@@ -1,7 +1,7 @@
; Start a new pool named 'www'.
; Start a new pool named 'prestashop8_1'.
; the variable $pool can be used in any directive and will be replaced by the
; pool name ('www' here)
[www]
; pool name ('prestashop8_1' here)
[prestashop8_1]
; Per pool prefix
; It only applies on the following directives:
@@ -38,10 +38,10 @@ group = www-data
; (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-fpm.sock
listen = /run/php/php8.1-fpm-prestashop8_1.sock
; Set listen(2) backlog.
; Default Value: 511 (-1 on Linux, FreeBSD and OpenBSD)
; Default Value: 511 (-1 on FreeBSD and OpenBSD)
;listen.backlog = 511
; Set permissions for unix socket, if one is used. In Linux, read/write
@@ -68,10 +68,6 @@ listen.group = www-data
; 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
@@ -80,8 +76,7 @@ listen.group = www-data
; 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
; Set the process dumpable flag (PR_SET_DUMPABLE prctl) 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
@@ -249,7 +244,7 @@ pm.max_spare_servers = 3
; 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
; 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
; 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"
;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
@@ -485,6 +464,16 @@ pm.max_spare_servers = 3
; 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] = 32M
php_admin_value[error_log] = /var/log/fpm-php-prestashop8_1.log
php_admin_flag[log_errors] = on
php_admin_value[memory_limit] = 256M
php_admin_value[post_max_filesize] = 256M
php_admin_value[upload_max_filesize] = 256M
php_admin_value[allow_url_fopen] = on
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

View File

@@ -1,21 +1,21 @@
FROM debian:bookworm
ARG DEBIAN_FRONTEND=noninteractive
ARG DEBCONF_NONINTERACTIVE_SEEN=true
RUN apt-get update; apt-get full-upgrade -y; apt-get autoclean -y
ENV DEBIAN_FRONTEND=noninteractive
ENV DEBCONF_NONINTERACTIVE_SEEN=true
RUN apt-get update; apt-get full-upgrade -y; apt-get install vim curl iputils-ping -y; apt-get autoclean -y
COPY project/buildtime/sury-repo.sh /tmp/buildtime/sury-repo.sh
RUN /bin/sh /tmp/buildtime/sury-repo.sh
ARG BUILDTIME_PHP_VER_INST="8.2"
ENV BUILDTIME_PHP_VER_INST="8.2"
COPY project/buildtime/buildtime_php_ver_inst.sh /tmp/buildtime/buildtime_php_ver_inst.sh
COPY project/buildtime/preserve-files.sh /tmp/buildtime/preserve-files.sh
RUN /bin/sh /tmp/buildtime/buildtime_php_ver_inst.sh
ENV DEF_PHP_INTERPRETER="8.2"
ENV PHP_VERSIONS=
COPY project/entrypoint/entrypoint.sh /entrypoint/entrypoint.sh
COPY project/entrypoint/copy-config.sh /entrypoint/copy-config.sh
COPY project/entrypoint/container-php-ver-inst.sh /entrypoint/container-php-ver-inst.sh
COPY project/entrypoint/install-php-versions.sh /entrypoint/install-php-versions.sh
COPY project/entrypoint/start-php-fpm.sh /entrypoint/start-php-fpm.sh
RUN /bin/sh /tmp/buildtime/preserve-files.sh
ENTRYPOINT ["/bin/sh", "/entrypoint/entrypoint.sh"]

View File

@@ -4,7 +4,7 @@ apt-get update
BUILDTIME_PHP_VER_INST="8.2"
apt-get install -y \
apt-get install -y --download-only \
php$BUILDTIME_PHP_VER_INST-fpm \
php$BUILDTIME_PHP_VER_INST-bcmath \
php$BUILDTIME_PHP_VER_INST-bz2 \

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# To add this repository please do:
apt-get -y install lsb-release ca-certificates curl
apt-get install lsb-release ca-certificates curl -y
curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
dpkg -i /tmp/debsuryorg-archive-keyring.deb
sh -c 'echo "deb [signed-by=/usr/share/keyrings/debsuryorg-archive-keyring.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'

View File

@@ -0,0 +1,40 @@
#!/bin/sh
apt-get update
apt-get install -y \
php$BUILDTIME_PHP_VER_INST-fpm \
php$BUILDTIME_PHP_VER_INST-bcmath \
php$BUILDTIME_PHP_VER_INST-bz2 \
php$BUILDTIME_PHP_VER_INST-common \
php$BUILDTIME_PHP_VER_INST-curl \
php$BUILDTIME_PHP_VER_INST-dba \
php$BUILDTIME_PHP_VER_INST-enchant \
php$BUILDTIME_PHP_VER_INST-gd \
php$BUILDTIME_PHP_VER_INST-gmp \
php$BUILDTIME_PHP_VER_INST-http \
php$BUILDTIME_PHP_VER_INST-imap \
php$BUILDTIME_PHP_VER_INST-interbase \
php$BUILDTIME_PHP_VER_INST-intl \
php$BUILDTIME_PHP_VER_INST-ldap \
php$BUILDTIME_PHP_VER_INST-mbstring \
php$BUILDTIME_PHP_VER_INST-memcache \
php$BUILDTIME_PHP_VER_INST-memcached \
php$BUILDTIME_PHP_VER_INST-mysql \
php$BUILDTIME_PHP_VER_INST-odbc \
php$BUILDTIME_PHP_VER_INST-opcache \
php$BUILDTIME_PHP_VER_INST-pgsql \
php$BUILDTIME_PHP_VER_INST-ps \
php$BUILDTIME_PHP_VER_INST-pspell \
php$BUILDTIME_PHP_VER_INST-raphf \
php$BUILDTIME_PHP_VER_INST-readline \
php$BUILDTIME_PHP_VER_INST-snmp \
php$BUILDTIME_PHP_VER_INST-soap \
php$BUILDTIME_PHP_VER_INST-sqlite3 \
php$BUILDTIME_PHP_VER_INST-stomp \
php$BUILDTIME_PHP_VER_INST-sybase \
php$BUILDTIME_PHP_VER_INST-tidy \
php$BUILDTIME_PHP_VER_INST-xdebug \
php$BUILDTIME_PHP_VER_INST-xml \
php$BUILDTIME_PHP_VER_INST-xsl \
php$BUILDTIME_PHP_VER_INST-zip \

View File

@@ -0,0 +1,56 @@
#!/bin/bash
set -euo pipefail
# Configuration
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"

View File

@@ -0,0 +1,13 @@
#!/bin/sh
/bin/sh /entrypoint/container-php-ver-inst.sh
/bin/sh /entrypoint/install-php-versions.sh
/bin/bash /entrypoint/copy-config.sh
/bin/sh /entrypoint/start-php-fpm.sh
# Run the CMD that was passed (or default)
exec "$@"
tail -f /dev/null

View File

@@ -0,0 +1,76 @@
#!/bin/sh
set -e
export DEBIAN_FRONTEND=noninteractive
export DEBCONF_NONINTERACTIVE_SEEN=true
# Validate required variables
if [ -z "${PHP_VERSIONS:-}" ]; then
echo "ERROR: PHP_VERSIONS environment variable is not set" >&2
exit 1
fi
if [ -z "${DEF_PHP_INTERPRETER:-}" ]; then
echo "ERROR: DEF_PHP_INTERPRETER environment variable is not set" >&2
exit 1
fi
# Verify package availability before installation
apt-get update
# Install each PHP version with validation
for version in $PHP_VERSIONS; do
# Validate version format (X.Y)
if ! echo "$version" | grep -Eq '^[0-9]+\.[0-9]+$'; then
echo "ERROR: Invalid PHP version format '$version'" >&2
exit 1
fi
echo "Installing PHP $version packages..."
if ! apt-get install -y \
php${version}-fpm \
php${version}-bcmath \
php${version}-bz2 \
php${version}-common \
php${version}-curl \
php${version}-dba \
php${version}-enchant \
php${version}-gd \
php${version}-gmp \
php${version}-http \
php${version}-imap \
php${version}-interbase \
php${version}-intl \
php${version}-ldap \
php${version}-mbstring \
php${version}-memcache \
php${version}-memcached \
php${version}-mysql \
php${version}-odbc \
php${version}-opcache \
php${version}-pgsql \
php${version}-ps \
php${version}-pspell \
php${version}-raphf \
php${version}-readline \
php${version}-snmp \
php${version}-soap \
php${version}-sqlite3 \
php${version}-stomp \
php${version}-sybase \
php${version}-tidy \
php${version}-xdebug \
php${version}-xml \
php${version}-xsl \
php${version}-zip; then
echo "ERROR: Failed to install PHP $version packages" >&2
exit 1
fi
done
# Set default PHP version with validation
if ! update-alternatives --set php "/usr/bin/php${DEF_PHP_INTERPRETER}"; then
echo "ERROR: Failed to set default PHP interpreter to $DEF_PHP_INTERPRETER" >&2
exit 1
fi

View File

@@ -1,7 +1,5 @@
#!/bin/sh
mkdir -p /etc/php # Creates /etc/php if it doesn't exist
mv /tmp/buildtime/etc/php/* /etc/php/
# Start each version listed in PHP_VERSIONS
for version in $PHP_VERSIONS; do

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/mysqlnd.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/opcache.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/pdo.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/xml.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/bcmath.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/bz2.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/calendar.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/ctype.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/curl.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/dba.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/dom.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/enchant.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/exif.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/ffi.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/fileinfo.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/ftp.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/gd.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/gettext.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/gmp.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/iconv.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/igbinary.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/imap.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/intl.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/ldap.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/mbstring.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/memcache.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/msgpack.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/mysqli.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/odbc.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/pdo_dblib.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/pdo_firebird.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/pdo_mysql.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/pdo_odbc.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/pdo_pgsql.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/pdo_sqlite.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/pgsql.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/phar.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/posix.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/ps.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/pspell.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/raphf.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/readline.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/shmop.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/simplexml.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/snmp.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/soap.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/sockets.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/sqlite3.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/stomp.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/sysvmsg.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/sysvsem.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/sysvshm.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/tidy.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/tokenizer.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/xdebug.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/xmlreader.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/xmlwriter.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/xsl.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/zip.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/http.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/memcached.ini

File diff suppressed because it is too large Load Diff

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/mysqlnd.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/opcache.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/pdo.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/xml.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/bcmath.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/bz2.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/calendar.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/ctype.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/curl.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/dba.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/dom.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/enchant.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/exif.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/ffi.ini

View File

@@ -1 +0,0 @@
/etc/php/8.2/mods-available/fileinfo.ini

Some files were not shown because too many files have changed in this diff Show More