2023-07-07 23:16:13 +00:00
|
|
|
#!/bin/sh
|
|
|
|
|
2023-07-07 23:34:15 +00:00
|
|
|
# TODO: add all the other fallback values for the other variables
|
2023-07-07 23:16:13 +00:00
|
|
|
if [ -z "$MAX_UPLOAD_SIZE" ]; then
|
2023-07-04 16:23:14 +00:00
|
|
|
MAX_UPLOAD_SIZE="8M" # Default fallback value
|
2023-07-07 23:34:15 +00:00
|
|
|
echo "MAX_UPLOAD_SIZE was not set, using default value of ${MAX_UPLOAD_SIZE}"
|
2023-07-04 16:23:14 +00:00
|
|
|
fi
|
|
|
|
|
2023-07-04 15:51:11 +00:00
|
|
|
echo "Checking if upload script exists in /var/www/html"
|
|
|
|
if [ -f "/var/www/html/upload.php" ]; then
|
2023-07-07 23:16:13 +00:00
|
|
|
echo "Upload script was found, ignoring copy."
|
2023-07-04 15:46:10 +00:00
|
|
|
else
|
2023-07-07 23:16:13 +00:00
|
|
|
cp /tmp/upload.php /var/www/html
|
|
|
|
echo "Upload script was not found, copying it."
|
2023-07-04 15:46:10 +00:00
|
|
|
fi
|
|
|
|
|
2024-02-25 17:37:58 +00:00
|
|
|
echo "Checking if default index.html exists in /var/www/html"
|
|
|
|
if [ -f "/var/www/html/index.html" ]; then
|
|
|
|
echo "Upload script was found, ignoring copy."
|
|
|
|
else
|
|
|
|
cp /tmp/index.html /var/www/html
|
|
|
|
echo "Default index.html was not found, copying it."
|
|
|
|
fi
|
|
|
|
|
2023-07-05 00:49:59 +00:00
|
|
|
# Letting php know that we are running in docker
|
2024-07-07 18:14:18 +00:00
|
|
|
echo "env[DOCKER] = true" >> /etc/php83/php-fpm.d/www.conf
|
|
|
|
echo "clear_env = no" >> /etc/php83/php-fpm.d/www.conf
|
2023-07-05 23:23:22 +00:00
|
|
|
|
2023-07-07 23:32:46 +00:00
|
|
|
# Create the directory for PHP socket
|
|
|
|
mkdir -p /run/php
|
|
|
|
|
2023-07-07 23:24:42 +00:00
|
|
|
# Set php-fpm to listen on socket
|
2023-07-07 23:30:33 +00:00
|
|
|
touch /run/php/php.sock
|
2024-07-07 18:14:18 +00:00
|
|
|
sed -i 's/^listen = .*/listen = \/run\/php\/php.sock/' /etc/php83/php-fpm.d/www.conf
|
2023-07-07 23:24:42 +00:00
|
|
|
|
2023-07-04 16:32:14 +00:00
|
|
|
echo "Setting permissions for upload script"
|
|
|
|
chmod 777 /var/www/html/upload.php
|
|
|
|
|
2023-07-04 16:22:22 +00:00
|
|
|
echo "Setting max upload size to ${MAX_UPLOAD_SIZE}"
|
2023-07-04 16:42:02 +00:00
|
|
|
|
|
|
|
# Set max upload size for php
|
2024-07-07 18:14:18 +00:00
|
|
|
sed -i "s/^upload_max_filesize = .*/upload_max_filesize = ${MAX_UPLOAD_SIZE}/" /etc/php83/php.ini
|
|
|
|
sed -i "s/^post_max_size = .*/post_max_size = ${MAX_UPLOAD_SIZE}/" /etc/php83/php.ini
|
2023-07-04 16:22:22 +00:00
|
|
|
|
2023-07-04 16:42:02 +00:00
|
|
|
# Set max upload size for nginx
|
|
|
|
sed -i "s/client_max_body_size 500M;/client_max_body_size ${MAX_UPLOAD_SIZE};/" /etc/nginx/nginx.conf
|
|
|
|
|
2024-09-28 11:09:40 +00:00
|
|
|
# Function to handle signal forwarding and service startup
|
|
|
|
function start_services() {
|
|
|
|
echo "Starting PHP-FPM and Nginx..."
|
|
|
|
php-fpm83 --nodaemonize &
|
|
|
|
PHP_FPM_PID=$!
|
|
|
|
|
2024-09-28 11:22:10 +00:00
|
|
|
# Fix permissions
|
|
|
|
chmod 777 /run/php/php.sock
|
|
|
|
|
2024-09-28 11:09:40 +00:00
|
|
|
nginx -g 'daemon off;' &
|
|
|
|
NGINX_PID=$!
|
|
|
|
|
|
|
|
# Wait for both processes to finish
|
|
|
|
wait $PHP_FPM_PID $NGINX_PID
|
2023-07-07 22:43:14 +00:00
|
|
|
}
|
|
|
|
|
2024-09-28 11:09:40 +00:00
|
|
|
# Trap SIGTERM and SIGINT and forward to PHP-FPM and Nginx
|
|
|
|
trap "echo 'Stopping services...'; kill -TERM $PHP_FPM_PID $NGINX_PID" SIGTERM SIGINT
|
|
|
|
|
|
|
|
# Start the services and retry if Nginx fails
|
|
|
|
until start_services; do
|
|
|
|
echo "Nginx or PHP-FPM failed to start, retrying in 5 seconds..."
|
2023-07-07 22:43:14 +00:00
|
|
|
sleep 5
|
|
|
|
done
|