zitinexus-router-script/UI/test/test-php-detection.sh

152 lines
3.9 KiB
Bash

#!/bin/bash
# Quick test script to verify PHP version detection
# Run this to see what PHP versions are available on your system
set -euo pipefail
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
log() {
local level=$1
shift
local message="$*"
case $level in
"ERROR")
echo -e "${RED}[ERROR]${NC} $message" >&2
;;
"SUCCESS")
echo -e "${GREEN}[SUCCESS]${NC} $message"
;;
"WARNING")
echo -e "${YELLOW}[WARNING]${NC} $message"
;;
"INFO")
echo -e "${BLUE}[INFO]${NC} $message"
;;
*)
echo "$message"
;;
esac
}
echo "=============================================="
echo " PHP Version Detection Test"
echo "=============================================="
echo
# Update package cache
log "INFO" "Updating package cache..."
apt update >/dev/null 2>&1
echo
log "INFO" "Checking available PHP packages..."
echo
# Check what PHP packages are available
for version in "8.3" "8.2" "8.1" "8.0"; do
echo "--- Checking PHP $version ---"
# Check main package
if apt-cache show "php${version}" >/dev/null 2>&1; then
log "SUCCESS" "php${version} is available"
else
log "ERROR" "php${version} is NOT available"
fi
# Check CLI package
if apt-cache show "php${version}-cli" >/dev/null 2>&1; then
log "SUCCESS" "php${version}-cli is available"
else
log "ERROR" "php${version}-cli is NOT available"
fi
# Check FPM package
if apt-cache show "php${version}-fpm" >/dev/null 2>&1; then
log "SUCCESS" "php${version}-fpm is available"
else
log "ERROR" "php${version}-fpm is NOT available"
fi
# Check curl extension
if apt-cache show "php${version}-curl" >/dev/null 2>&1; then
log "SUCCESS" "php${version}-curl is available"
else
log "ERROR" "php${version}-curl is NOT available"
fi
# Check json extension
if apt-cache show "php${version}-json" >/dev/null 2>&1; then
log "SUCCESS" "php${version}-json is available"
else
log "ERROR" "php${version}-json is NOT available"
fi
echo
done
echo "=============================================="
echo " System Information"
echo "=============================================="
echo
# Show OS version
log "INFO" "Operating System:"
lsb_release -a 2>/dev/null || cat /etc/os-release
echo
log "INFO" "Available PHP packages (using apt list):"
apt list 2>/dev/null | grep "^php[0-9]" | head -20
echo
log "INFO" "Currently installed PHP packages:"
dpkg -l | grep php | head -10
echo
if command -v php >/dev/null 2>&1; then
CURRENT_PHP=$(php -r "echo PHP_MAJOR_VERSION.'.'.PHP_MINOR_VERSION;")
log "SUCCESS" "Currently active PHP version: $CURRENT_PHP"
php --version | head -1
else
log "WARNING" "No PHP currently installed or in PATH"
fi
echo
echo "=============================================="
echo " Recommended Action"
echo "=============================================="
echo
# Determine best PHP version
PHP_VERSION=""
for version in "8.3" "8.2" "8.1" "8.0"; do
if apt-cache show "php${version}" >/dev/null 2>&1 && \
apt-cache show "php${version}-fpm" >/dev/null 2>&1 && \
apt-cache show "php${version}-curl" >/dev/null 2>&1; then
PHP_VERSION="$version"
break
fi
done
if [[ -n "$PHP_VERSION" ]]; then
log "SUCCESS" "Recommended PHP version for installation: $PHP_VERSION"
echo
echo "To install manually:"
echo " sudo apt install -y php${PHP_VERSION} php${PHP_VERSION}-fpm php${PHP_VERSION}-curl php${PHP_VERSION}-json"
else
log "ERROR" "No suitable PHP version found!"
echo
echo "You may need to add a PHP repository:"
echo " sudo apt install -y software-properties-common"
echo " sudo add-apt-repository ppa:ondrej/php"
echo " sudo apt update"
fi
echo