No description
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Søren Ressel 6124ef4ae7 Add comprehensive README and enhance CMS installer with ISPConfig quota support
- Add detailed documentation covering all PHP functions and features
- Document quota control system with ISPConfig compatibility
- Include installation instructions and system requirements
- Enhance installer with robust error handling and retry logic
- Add support for multiple Joomla versions (5.x, 6.x)
- Implement clean install functionality
- Add comprehensive logging to cms_installer.log
2026-01-26 14:37:14 +01:00
install.php Add comprehensive README and enhance CMS installer with ISPConfig quota support 2026-01-26 14:37:14 +01:00
README.md Add comprehensive README and enhance CMS installer with ISPConfig quota support 2026-01-26 14:37:14 +01:00

BornHosting CMS Installer

En automatisk installer til populære CMS systemer (WordPress og Joomla) med avanceret fejlhåndtering og ISPConfig support.

Funktioner

Understøttede CMS Systemer

  • WordPress - Seneste stabile version
  • Joomla - Valgfri versioner:
    • Joomla (Nyeste - anbefalet)
    • Joomla 6.x (Nyeste Stable)
    • Joomla 5.x (Old Stable)

Hovedfunktionalitet

  • Automatisk download af nyeste CMS versioner
  • GitHub API integration for Joomla releases
  • Direkte download fra wordpress.org
  • Real-time feedback under installation
  • Automatisk sletning af installer efter brug (sikkerhed)
  • Clean Install funktion (slet eksisterende filer)
  • Detektering af eksisterende installationer
  • Omfattende logging til cms_installer.log

Avancerede Funktioner

  • 🔒 Robust fejlhåndtering med retry-logik for netværksfejl
  • 💾 Intelligent disk space kontrol med quota support
  • 🖥️ ISPConfig kompatibel quota kontrol via Linux kommandoer
  • 🔄 Rollback funktionalitet ved fejlede installationer
  • 📊 System status checks (AJAX, jQuery, disk space)
  • ZIP udpakning med korrekt mappehåndtering

Tekniske Detaljer

PHP Funktioner

Logging og Validering

  • logMessage($message, $level) - Logger beskeder til fil med timestamp
  • validateCMSInput($cms) - Validerer og saniterer bruger input

Quota Kontrol (ISPConfig Support)

  • getUserQuotaInfo() - Henter quota information for nuværende bruger
  • checkQuotaCommand($username, $uid) - Tjekker quota via quota kommando
  • checkRepQuota($uid) - Tjekker quota via repquota kommando
  • checkISPConfigQuota($username, $homeDir) - ISPConfig specifikke quota metoder
  • checkPathQuota($path) - Tjekker quota for specifik sti via df kommando
  • parseQuotaOutput($output, $method) - Parser quota kommando output

System Kontrol

  • checkDiskSpace($requiredMB) - Tjekker fysisk disk plads og bruger quota
  • checkRequirements() - Verificerer påkrævede PHP ekstensions (curl, zip)

Netværk og Download

  • performHttpRequest($url, $maxRetries) - HTTP request med retry logik og timeout
  • getLatestGithubRelease($user, $repo) - Henter seneste GitHub release
  • getLatestGithubReleaseByVersion($user, $repo, $majorVersion, $allowPrerelease) - Henter specifik version
  • downloadFileWithRetry($url, $destination) - Download med retry logik

Installation

  • downloadAndUnzipCMS($cms, $zipDownloadUrl, $tempZipFile) - Hoved installation funktion
  • cleanRootDirectory() - Rydder rod-mappen (Clean Install)
  • detectExistingInstallation() - Detekterer eksisterende CMS installationer
  • deleteDirectory($dirPath) - Rekursiv mappe sletning

Konfiguration

define('MAX_RETRIES', 3);              // Maksimum antal retry forsøg
define('CURL_TIMEOUT', 120);           // cURL timeout i sekunder
define('MIN_DISK_SPACE_MB', 100);      // Minimum disk plads krævet i MB
define('LOG_FILE', 'cms_installer.log'); // Log fil navn

Systemkrav

PHP Ekstensions

  • curl - HTTP requests
  • zip - ZIP arkiv håndtering

Server Requirements

  • PHP 7.0 eller nyere (anbefalet 7.4+)
  • Minimum 100 MB fri disk plads
  • Skriveadgang til installation mappen
  • Internetforbindelse

Valgfrit

  • Linux quota support (for quota kontrol)
  • ISPConfig hosting miljø (for avanceret quota kontrol)

Installation

  1. Upload install.php til din webserver rod
  2. Åbn filen i din browser (f.eks. https://example.com/install.php)
  3. Vælg dit ønskede CMS system
  4. Klik "Start Installation"
  5. Følg instruktionerne på skærmen

Sikkerhed

  • Installeren sletter sig selv automatisk efter brug
  • Input validering og sanitering
  • Detektering af eksisterende installationer
  • Advarsel før sletning af filer
  • Omfattende fejlhåndtering

Logging

Alle handlinger logges til cms_installer.log med følgende format:

[2024-01-15 14:30:22] [INFO] CMS Installation startet
[2024-01-15 14:30:25] [ERROR] HTTP request fejl
[2024-01-15 14:30:30] [WARNING] Advarsel besked

Fejlhåndtering

Retry Logik

  • Automatisk retry ved netværksfejl (3 forsøg)
  • Exponential backoff mellem forsøg
  • Detaljeret fejllogging

Rollback

  • Automatisk backup af overskrevne filer
  • Gendan backup ved fejl
  • Oprydning af midlertidige filer

Quota Kontrol

Installeren understøtter flere metoder til quota kontrol:

  1. Linux quota kommando - Standard quota kontrol
  2. repquota - Repository quota for partitioner
  3. ISPConfig specifik - Specielle stier og metoder
  4. df fallback - Disk space via df kommando

Web Interface

  • Mørkt tema (brugervenligt)
  • AJAX-baseret installation (ingen genindlæsning)
  • Real-time status opdateringer
  • System status checks
  • Responsive design

Browser Support

  • Chrome/Edge (anbefalet)
  • Firefox
  • Safari
  • Opera

Kræver JavaScript aktiveret for bedste oplevelse.

Version

Version: 2.1 - Enhanced Stability + ISPConfig Quota Support

Forfatter

BornHosting

Licens

MIT License

Support

For support eller fejlrapportering, kontakt BornHosting.


Dette er et automatisk installer script udviklet til BornHosting kunder for nem og sikker installation af CMS systemer.