152 lines
3.9 KiB
Bash
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
|