İzin Reddedildi Hataları
XOOPS kurulumlarında, özellikle yükleme veya sunucu geçişinden sonra dosya ve dizin izni sorunları yaygındır. Bu kılavuz, izin sorunlarını tanılamanıza ve çözmenize yardımcı olur.
Dosya İzinlerini Anlamak
Section titled “Dosya İzinlerini Anlamak”Linux/Unix İzin Esasları
Section titled “Linux/Unix İzin Esasları”Dosya izinleri üç basamaklı kodlarla temsil edilir:
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)Yaygın İzin Hataları
Section titled “Yaygın İzin Hataları”Yüklemede “İzin reddedildi"
Section titled “Yüklemede “İzin reddedildi"”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"Dosya yazılamıyor"
Section titled “"Dosya yazılamıyor"”Error: Unable to write file to /var/www/html/xoops/cache/"Dizin oluşturulamıyor”
Section titled “"Dizin oluşturulamıyor””Error: mkdir(/var/www/html/xoops/uploads/temp/): Permission deniedKritik XOOPS Dizinler
Section titled “Kritik XOOPS Dizinler”Yazma İzni Gerektiren Dizinler
Section titled “Yazma İzni Gerektiren Dizinler”| Dizin | Asgari | Amaç |
|---|---|---|
/uploads | 755 | user yüklemeleri |
/cache | 755 | cache dosyaları |
/templates_c | 755 | Derlenmiş templates |
/var | 755 | Değişken veriler |
mainfile.php | 644 | Yapılandırma (okunabilir) |
Linux/Unix Sorun Giderme
Section titled “Linux/Unix Sorun Giderme”1. Adım: Mevcut İzinleri Kontrol Edin
Section titled “1. Adım: Mevcut İzinleri Kontrol Edin”# 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/Adım 2: Web Sunucusu Kullanıcısını Tanımlayın
Section titled “Adım 2: Web Sunucusu Kullanıcısını Tanımlayın”# 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 nginx3. Adım: Sahipliği Düzeltin
Section titled “3. Adım: Sahipliği Düzeltin”# 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. Adım: İzinleri Düzeltin
Section titled “4. Adım: İzinleri Düzeltin”Seçenek A: Kısıtlayıcı permissions (Önerilir)
Section titled “Seçenek A: Kısıtlayıcı permissions (Önerilir)”# 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/Seçenek B: Hepsi Bir Arada Komut Dosyası
Section titled “Seçenek B: Hepsi Bir Arada Komut Dosyası”#!/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."Dizine Göre İzin Sorunları
Section titled “Dizine Göre İzin Sorunları”Yükleme Dizini
Section titled “Yükleme Dizini”Sorun: Dosyalar yüklenemiyor
# 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 {} \;cache Dizini
Section titled “cache Dizini”Sorun: cache dosyaları yazılamıyor
# Solutionsudo chown www-data:www-data /var/www/html/xoops/cache/chmod 755 /var/www/html/xoops/cache/template Önbelleği
Section titled “template Önbelleği”Sorun: templates derlenmiyor
# Solutionsudo chown www-data:www-data /var/www/html/xoops/templates_c/chmod 755 /var/www/html/xoops/templates_c/Windows Sorun Giderme
Section titled “Windows Sorun Giderme”Adım 1: Dosya Özelliklerini Kontrol Edin
Section titled “Adım 1: Dosya Özelliklerini Kontrol Edin”- Dosyaya sağ tıklayın → Özellikler
- “Güvenlik” sekmesine tıklayın
- “Düzenle” düğmesini tıklayın
- Kullanıcıyı seçin ve izinleri doğrulayın
Adım 2: Yazma İzinleri Verin
Section titled “Adım 2: Yazma İzinleri Verin”GUI aracılığıyla:
Section titled “GUI aracılığıyla:”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"Komut Satırı (PowerShell) aracılığıyla:
Section titled “Komut Satırı (PowerShell) aracılığıyla:”# 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 İzinleri Kontrol Eden Komut Dosyası
Section titled “PHP İzinleri Kontrol Eden Komut Dosyası”<?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>";?>En İyi Uygulamalar
Section titled “En İyi Uygulamalar”1. En Az Ayrıcalık İlkesi
Section titled “1. En Az Ayrıcalık İlkesi”# 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/ # Secure2. Değişikliklerden Önce Yedekleme
Section titled “2. Değişikliklerden Önce Yedekleme”# Backup current stategetfacl -R /var/www/html/xoops > /tmp/xoops-acl-backup.txtHızlı Başvuru
Section titled “Hızlı Başvuru”# 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 {} \;İlgili Belgeler
Section titled “İlgili Belgeler”- Ölümün Beyaz Ekranı - Diğer yaygın hatalar
- database Bağlantısı Hataları - database sorunları
- ../../01-Getting-Started/Configuration/System-Settings - XOOPS yapılandırması
Son Güncelleme: 2026-01-31 Geçerli olduğu yerler: XOOPS 2.5.7+ İşletim Sistemi: Linux, Windows, macOS