No description
- PHP 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
- 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 |
||
| install.php | ||
| README.md | ||
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 timestampvalidateCMSInput($cms)- Validerer og saniterer bruger input
Quota Kontrol (ISPConfig Support)
getUserQuotaInfo()- Henter quota information for nuværende brugercheckQuotaCommand($username, $uid)- Tjekker quota via quota kommandocheckRepQuota($uid)- Tjekker quota via repquota kommandocheckISPConfigQuota($username, $homeDir)- ISPConfig specifikke quota metodercheckPathQuota($path)- Tjekker quota for specifik sti via df kommandoparseQuotaOutput($output, $method)- Parser quota kommando output
System Kontrol
checkDiskSpace($requiredMB)- Tjekker fysisk disk plads og bruger quotacheckRequirements()- Verificerer påkrævede PHP ekstensions (curl, zip)
Netværk og Download
performHttpRequest($url, $maxRetries)- HTTP request med retry logik og timeoutgetLatestGithubRelease($user, $repo)- Henter seneste GitHub releasegetLatestGithubReleaseByVersion($user, $repo, $majorVersion, $allowPrerelease)- Henter specifik versiondownloadFileWithRetry($url, $destination)- Download med retry logik
Installation
downloadAndUnzipCMS($cms, $zipDownloadUrl, $tempZipFile)- Hoved installation funktioncleanRootDirectory()- Rydder rod-mappen (Clean Install)detectExistingInstallation()- Detekterer eksisterende CMS installationerdeleteDirectory($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 requestszip- 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
- Upload
install.phptil din webserver rod - Åbn filen i din browser (f.eks.
https://example.com/install.php) - Vælg dit ønskede CMS system
- Klik "Start Installation"
- 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:
- Linux quota kommando - Standard quota kontrol
- repquota - Repository quota for partitioner
- ISPConfig specifik - Specielle stier og metoder
- 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.