Σφάλματα άρνησης άδειας
Ζητήματα δικαιωμάτων αρχείων και καταλόγου είναι κοινά στις εγκαταστάσεις XOOPS, ειδικά μετά τη μεταφόρτωση ή τη μετεγκατάσταση διακομιστή. Αυτός ο οδηγός βοηθά στη διάγνωση και επίλυση προβλημάτων αδειών.
Κατανόηση των δικαιωμάτων αρχείων
Ενότητα με τίτλο «Κατανόηση των δικαιωμάτων αρχείων»# Linux/Unix Βασικά δικαιώματα
Ενότητα με τίτλο «# Linux/Unix Βασικά δικαιώματα»Τα δικαιώματα αρχείων αντιπροσωπεύονται ως τριψήφιοι κωδικοί:
rwxrwxrwx||| ||| |||||| ||| +-- Others (world)||| +------ Group+--------- Owner
r = read (4)w = write (2)x = execute (1)
755 = rwxr-xr-x (owner full, group read/execute, others read/execute)644 = rw-r--r-- (owner read/write, group read, others read)777 = rwxrwxrwx (everyone full access - NOT RECOMMENDED)Συνήθη σφάλματα αδειών
Ενότητα με τίτλο «Συνήθη σφάλματα αδειών»# “Δεν επιτρέπεται η άδεια” στη μεταφόρτωση
Ενότητα με τίτλο «# “Δεν επιτρέπεται η άδεια” στη μεταφόρτωση»Warning: fopen(/var/www/html/xoops/uploads/file.jpg): failed to open stream:Permission denied in /var/www/html/xoops/class/file.php on line 42# “Δεν είναι δυνατή η εγγραφή αρχείου”
Ενότητα με τίτλο «# “Δεν είναι δυνατή η εγγραφή αρχείου”»Error: Unable to write file to /var/www/html/xoops/cache/# “Δεν είναι δυνατή η δημιουργία καταλόγου”
Ενότητα με τίτλο «# “Δεν είναι δυνατή η δημιουργία καταλόγου”»Error: mkdir(/var/www/html/xoops/uploads/temp/): Permission deniedΚρίσιμοι κατάλογοι XOOPS
Ενότητα με τίτλο «Κρίσιμοι κατάλογοι XOOPS»# Κατάλογοι που απαιτούν δικαιώματα εγγραφής
Ενότητα με τίτλο «# Κατάλογοι που απαιτούν δικαιώματα εγγραφής»| Κατάλογος | Ελάχιστο | Σκοπός |
|---|---|---|
/uploads | 755 | Μεταφορτώσεις χρηστών |
/cache | 755 | Αρχεία προσωρινής μνήμης |
/templates_c | 755 | Μεταγλωττισμένα πρότυπα |
/var | 755 | Μεταβλητά δεδομένα |
mainfile.php | 644 | Διαμόρφωση (αναγνώσιμη) |
Linux/Unix Αντιμετώπιση προβλημάτων
Ενότητα με τίτλο «Linux/Unix Αντιμετώπιση προβλημάτων»# Βήμα 1: Ελέγξτε τα τρέχοντα δικαιώματα
Ενότητα με τίτλο «# Βήμα 1: Ελέγξτε τα τρέχοντα δικαιώματα»# Check file permissionsls -l /var/www/html/xoops/
# Check specific filels -l /var/www/html/xoops/mainfile.php
# Check directory permissionsls -ld /var/www/html/xoops/uploads/# Βήμα 2: Προσδιορισμός χρήστη διακομιστή Web
Ενότητα με τίτλο «# Βήμα 2: Προσδιορισμός χρήστη διακομιστή Web»# Check Apache userps aux | grep -E '[a]pache|[h]ttpd'# Usually: www-data (Debian/Ubuntu) or apache (RedHat/CentOS)
# Check Nginx userps aux | grep -E '[n]ginx'# Usually: www-data or nginx# Βήμα 3: Διορθώστε την ιδιοκτησία
Ενότητα με τίτλο «# Βήμα 3: Διορθώστε την ιδιοκτησία»# Set correct ownership (assuming www-data user)sudo chown -R www-data:www-data /var/www/html/xoops/
# Fix only web-writable directoriessudo chown www-data:www-data /var/www/html/xoops/uploads/sudo chown www-data:www-data /var/www/html/xoops/cache/sudo chown www-data:www-data /var/www/html/xoops/templates_c/sudo chown www-data:www-data /var/www/html/xoops/var/# Βήμα 4: Διορθώστε τα δικαιώματα
Ενότητα με τίτλο «# Βήμα 4: Διορθώστε τα δικαιώματα»# Επιλογή Α: Περιοριστικά δικαιώματα (Συνιστάται)
Ενότητα με τίτλο «# Επιλογή Α: Περιοριστικά δικαιώματα (Συνιστάται)»# All directories: 755 (rwxr-xr-x)find /var/www/html/xoops -type d -exec chmod 755 {} \;
# All files: 644 (rw-r--r--)find /var/www/html/xoops -type f -exec chmod 644 {} \;
# Except writable directorieschmod 755 /var/www/html/xoops/uploads/chmod 755 /var/www/html/xoops/cache/chmod 755 /var/www/html/xoops/templates_c/chmod 755 /var/www/html/xoops/var/# Επιλογή Β: Σενάριο All-at-once
Ενότητα με τίτλο «# Επιλογή Β: Σενάριο All-at-once»#!/bin/bashXOOPS_PATH="/var/www/html/xoops"WEB_USER="www-data"
echo "Fixing XOOPS permissions..."
# Set ownershipsudo chown -R $WEB_USER:$WEB_USER $XOOPS_PATH
# Set directory permissionsfind $XOOPS_PATH -type d -exec chmod 755 {} \;
# Set file permissionsfind $XOOPS_PATH -type f -exec chmod 644 {} \;
# Ensure writable directorieschmod 755 $XOOPS_PATH/uploads/chmod 755 $XOOPS_PATH/cache/chmod 755 $XOOPS_PATH/templates_c/chmod 755 $XOOPS_PATH/var/
echo "Done! Permissions fixed."Θέματα άδειας ανά Κατάλογο
Ενότητα με τίτλο «Θέματα άδειας ανά Κατάλογο»# Κατάλογος μεταφορτώσεων
Ενότητα με τίτλο «# Κατάλογος μεταφορτώσεων»Πρόβλημα: Δεν είναι δυνατή η μεταφόρτωση αρχείων
# Solutionsudo chown www-data:www-data /var/www/html/xoops/uploads/chmod 755 /var/www/html/xoops/uploads/find /var/www/html/xoops/uploads -type f -exec chmod 644 {} \;find /var/www/html/xoops/uploads -type d -exec chmod 755 {} \;# Κατάλογος προσωρινής μνήμης
Ενότητα με τίτλο «# Κατάλογος προσωρινής μνήμης»Πρόβλημα: Δεν γράφονται τα αρχεία προσωρινής μνήμης
# Solutionsudo chown www-data:www-data /var/www/html/xoops/cache/chmod 755 /var/www/html/xoops/cache/# Πρότυπα cache
Ενότητα με τίτλο «# Πρότυπα cache»Πρόβλημα: Δεν γίνεται μεταγλώττιση προτύπων
# Solutionsudo chown www-data:www-data /var/www/html/xoops/templates_c/chmod 755 /var/www/html/xoops/templates_c/Αντιμετώπιση προβλημάτων των Windows
Ενότητα με τίτλο «Αντιμετώπιση προβλημάτων των Windows»# Βήμα 1: Ελέγξτε τις ιδιότητες αρχείου
Ενότητα με τίτλο «# Βήμα 1: Ελέγξτε τις ιδιότητες αρχείου»- Κάντε δεξί κλικ στο αρχείο → Ιδιότητες
- Κάντε κλικ στην καρτέλα “Ασφάλεια”.
- Κάντε κλικ στο κουμπί “Επεξεργασία”.
- Επιλέξτε χρήστη και επαληθεύστε τα δικαιώματα
# Βήμα 2: Παραχωρήστε δικαιώματα εγγραφής
Ενότητα με τίτλο «# Βήμα 2: Παραχωρήστε δικαιώματα εγγραφής»# Μέσω GUI:
Ενότητα με τίτλο «# Μέσω GUI:»1. Right-click folder → Properties2. Select "Security" tab3. Click "Edit"4. Select "IIS_IUSRS" or "NETWORK SERVICE"5. Check "Modify" and "Write"6. Click "Apply" and "OK"# Μέσω γραμμής εντολών (PowerShell):
Ενότητα με τίτλο «# Μέσω γραμμής εντολών (PowerShell):»# Run PowerShell as Administrator
# Grant IIS app pool permissions$path = "C:\inetpub\wwwroot\xoops\uploads"$acl = Get-Acl $path$rule = New-Object System.Security.AccessControl.FileSystemAccessRule( "IIS_IUSRS", "Modify", "ContainerInherit,ObjectInherit", "None", "Allow")$acl.SetAccessRule($rule)Set-Acl -Path $path -AclObject $aclPHP Σενάριο για έλεγχο των δικαιωμάτων
Ενότητα με τίτλο «PHP Σενάριο για έλεγχο των δικαιωμάτων»<?php$paths = [ XOOPS_ROOT_PATH . '/uploads' => 'uploads', XOOPS_ROOT_PATH . '/cache' => 'cache', XOOPS_ROOT_PATH . '/templates_c' => 'templates_c', XOOPS_ROOT_PATH . '/var' => 'var', XOOPS_ROOT_PATH . '/mainfile.php' => 'mainfile.php'];
echo "<h2>XOOPS Permission Check</h2>";echo "<table border='1'>";echo "<tr><th>Path</th><th>Readable</th><th>Writable</th></tr>";
foreach ($paths as $path => $name) { $readable = is_readable($path) ? 'YES' : 'NO'; $writable = is_writable($path) ? 'YES' : 'NO';
echo "<tr>"; echo "<td>$name</td>"; echo "<td style='background: " . ($readable === 'YES' ? 'green' : 'red') . "'>$readable</td>"; echo "<td style='background: " . ($writable === 'YES' ? 'green' : 'red') . "'>$writable</td>"; echo "</tr>";}
echo "</table>";?>Βέλτιστες πρακτικές
Ενότητα με τίτλο «Βέλτιστες πρακτικές»# 1. Αρχή του ελάχιστου προνομίου
Ενότητα με τίτλο «# 1. Αρχή του ελάχιστου προνομίου»# Only grant necessary permissions# Don't use 777 or 666
# Badchmod 777 /var/www/html/xoops/uploads/ # Dangerous!
# Goodchmod 755 /var/www/html/xoops/uploads/ # Secure# 2. Δημιουργία αντιγράφων ασφαλείας πριν από τις αλλαγές
Ενότητα με τίτλο «# 2. Δημιουργία αντιγράφων ασφαλείας πριν από τις αλλαγές»# Backup current stategetfacl -R /var/www/html/xoops > /tmp/xoops-acl-backup.txtΓρήγορη αναφορά
Ενότητα με τίτλο «Γρήγορη αναφορά»# Quick fix (Linux)sudo chown -R www-data:www-data /var/www/html/xoops/find /var/www/html/xoops -type d -exec chmod 755 {} \;find /var/www/html/xoops -type f -exec chmod 644 {} \;Σχετική τεκμηρίωση
Ενότητα με τίτλο «Σχετική τεκμηρίωση»- White-Screen-of-Death - Άλλα κοινά σφάλματα
- Βάση δεδομένων-Σύνδεση-Σφάλματα - Ζητήματα βάσης δεδομένων
- ../../01-Getting-Started/Configuration/System-Settings - XOOPS διαμόρφωση
**Τελευταία ενημέρωση: ** 31-01-2026 Ισχύει για: XOOPS 2.5.7+ ** OS: ** Linux, Windows, macOS