#!/usr/bin/env bash if [ -z "$PHPVER" ]; then PHPVER="83"; fi if [ -z "$environment" ]; then environment="PROD" fi # Default to FPM-only role export CONTAINER_ROLE="fpm_only" export FPM_LISTEN=${FPM_LISTEN:-9000} adduser -u $uid $user mkdir -p /home/$user/public_html mkdir -p /home/$user/logs/php-fpm ln -sf /home/$user/logs/php-fpm /var/log/php-fpm source /scripts/detect-memory.sh echo "Container memory: ${CONTAINER_MEMORY_MB}MB | PHP-FPM pm=${PHP_FPM_PM} max_children=${PHP_FPM_MAX_CHILDREN} | Listen=${FPM_LISTEN}" /scripts/create-php-config.sh mkdir -p /run/php-fpm/ /usr/sbin/php-fpm -y /etc/php-fpm.conf chown -R $user:$user /home/$user chmod -R 755 /home/$user if [[ $environment == 'DEV' ]]; then echo "Starting Dev Deployment (FPM-only mode)" mkdir -p /home/$user/_db_backups if ! command -v microdnf &> /dev/null; then echo "microdnf not found, installing with dnf..." dnf install -y microdnf && dnf clean all fi microdnf install -y MariaDB-server MariaDB-client memcached sed -r -i 's/session.save_path="memcache:11211/session.save_path="localhost:11211/' /etc/php.ini nohup mysqld -umysql & if [ ! -f /home/$user/mysql_creds ]; then echo "Give MySQL a chance to finish starting..." sleep 10 mysql_user=$(tr -dc A-Za-z0-9 /home/$user/crontab echo "*/15 * * * * /scripts/mysql-backup.sh $user devdb_$mysql_db" >> /home/$user/crontab chown $user:$user /home/$user/crontab echo "MySQL User: "$mysql_user > /home/$user/mysql_creds echo "MySQL Password: "$mysql_password >> /home/$user/mysql_creds echo "MySQL Database: devdb_"$mysql_db >> /home/$user/mysql_creds cat /home/$user/mysql_creds fi /usr/bin/memcached -d -u $user fi if [[ $environment == 'PROD' ]]; then if [ -f /etc/php.d/50-memcached.ini ]; then sed -r -i 's/;session.save_path="localhost:11211/session.save_path="memcache:11211/' /etc/php.d/50-memcached.ini fi fi # Set up user crontab if [ ! -f /home/$user/crontab ]; then echo "# User crontab for $user" > /home/$user/crontab echo "# Add your cron jobs here" >> /home/$user/crontab echo "# Example: */5 * * * * /home/$user/scripts/my-script.sh" >> /home/$user/crontab chown $user:$user /home/$user/crontab fi # Load user crontab crontab -u $user /home/$user/crontab /usr/sbin/crond # Tail PHP-FPM logs (becomes PID 1 process) touch /home/$user/logs/php-fpm/error.log tail -f /home/$user/logs/php-fpm/* exit 0