# Troubleshooting Guide ## Table of Contents - [Quick Fixes](#quick-fixes) - [Installation Issues](#installation-issues) - [Performance Problems](#performance-problems) - [Display & Interface Issues](#display--interface-issues) - [File Access Problems](#file-access-problems) - [Configuration Issues](#configuration-issues) - [Security & Permission Errors](#security--permission-errors) - [Network & API Issues](#network--api-issues) - [Diagnostic Tools](#diagnostic-tools) - [Getting Help](#getting-help) ## Quick Fixes ### Most Common Issues (Try these first) #### Indexer Not Loading ```bash # Check PHP is working echo "" > test.php # Access test.php in browser # Check file permissions chmod 644 index.php ls -la index.php ``` #### Files Not Appearing ```bash # Clear cache rm -rf .indexer_files/index_cache/* # Check configuration cat .indexer_files/config.json | python -m json.tool ``` #### Performance Issues ```json { "main": { "cache_type": "sqlite" } } ``` #### Icons Not Loading ```json { "main": { "local_icons": true } } ``` ## Installation Issues ### Indexer Not Loading #### Symptom: Blank page or "file not found" **Diagnostic steps:** 1. **Check PHP installation:** ```bash php --version which php ``` 2. **Test PHP processing:** ```php ``` 3. **Check web server error logs:** ```bash # Apache tail -f /var/log/apache2/error.log # Nginx tail -f /var/log/nginx/error.log ``` 4. **Verify file permissions:** ```bash ls -la index.php # Should show: -rw-r--r-- (644) ``` **Solutions:** - Install PHP if missing: `apt-get install php` - Fix permissions: `chmod 644 index.php` - Enable PHP in web server configuration - Check DocumentRoot is correct ### Configuration Directory Creation Failed #### Symptom: Error about `.indexer_files` directory **Solutions:** ```bash # Check write permissions ls -ld . # Fix permissions chmod 755 . # Create manually if needed mkdir -p .indexer_files/{zip_cache,index_cache,icons,local_api} chmod -R 755 .indexer_files ``` ### Missing PHP Extensions #### Symptom: Fatal errors about missing functions **Check extensions:** ```bash php -m | grep -E "(sqlite|zip|json)" ``` **Install missing extensions:** ```bash # Ubuntu/Debian sudo apt-get install php-sqlite3 php-zip php-curl # CentOS/RHEL sudo yum install php-sqlite3 php-zip php-curl # Check loaded extensions php -i | grep -E "(sqlite|zip)" ``` ## Performance Problems ### Slow Directory Loading #### Symptom: Long loading times for file listings **Solutions:** 1. **Enable SQLite caching:** ```json { "main": { "cache_type": "sqlite" } } ``` 2. **Verify SQLite is available:** ```bash php -m | grep sqlite3 ``` 3. **Clear existing cache:** ```bash rm -rf .indexer_files/index_cache/* ``` 4. **Increase PHP limits:** ```ini ; In php.ini memory_limit = 256M max_execution_time = 60 ``` ### Memory Limit Errors #### Symptom: "Fatal error: Allowed memory size exhausted" **Solutions:** ```ini ; Increase in php.ini memory_limit = 512M max_execution_time = 300 ; Or for specific directory in .htaccess php_value memory_limit 512M php_value max_execution_time 300 ``` ### Timeout Errors #### Symptom: "Maximum execution time exceeded" **Solutions:** ```ini ; In php.ini max_execution_time = 300 set_time_limit = 300 ; For large directories max_input_time = 300 ``` ## Display & Interface Issues ### Icons Not Loading #### Symptom: Emoji icons instead of file type icons **Solutions:** 1. **Enable local icons:** ```json { "main": { "local_icons": true } } ``` 2. **Check icon directory:** ```bash ls -la .indexer_files/icons/ ``` 3. **Test icon accessibility:** ```bash curl -I https://yourdomain.com/.indexer_files/icons/folder.png ``` 4. **Manual icon download (if API disabled):** ```bash cd .indexer_files/icons/ wget https://api.indexer.ccls.icu/icons/folder.png ``` ### Interface Display Problems #### Symptom: Broken layout, missing styles **Solutions:** 1. **Check CSS loading:** - View page source - Verify stylesheet URL is accessible - Check browser console for 404 errors 2. **Clear browser cache:** ``` Ctrl+Shift+Delete (Windows) Cmd+Shift+Delete (Mac) ``` 3. **Test with different browser:** - Chrome, Firefox, Safari, Edge - Disable browser extensions 4. **Enable local resources:** ```json { "main": { "disable_api": true, "local_icons": true } } ``` ### Mobile Display Issues #### Symptom: Poor mobile interface, unresponsive design **Solutions:** 1. **Update browser** to latest version 2. **Clear mobile browser cache** 3. **Try different mobile browser** (Chrome, Firefox, Safari) 4. **Check viewport settings** - should be automatic 5. **Test on different mobile device** ## File Access Problems ### Files Not Appearing #### Symptom: Expected files don't show in listings **Diagnostic checklist:** 1. **Check file permissions:** ```bash ls -la filename.ext # Should be readable: -rw-r--r-- ``` 2. **Verify extension configuration:** ```json { "exclusions": { "index_php": true // true = show, false = hide } } ``` 3. **Check deny list:** ```json { "main": { "deny_list": "*.php, admin, logs" } } ``` 4. **Hidden files:** ```json { "main": { "index_hidden": true // Show files starting with "." } } ``` **Solutions:** - Fix file permissions: `chmod 644 filename.ext` - Update configuration to include file type - Remove from deny list or add to allow list - Enable hidden file indexing if needed ### Cannot Access Directories #### Symptom: Folders appear but clicking produces errors **Solutions:** 1. **Check directory permissions:** ```bash ls -ld /path/to/folder # Should have execute permission: drwxr-xr-x chmod 755 folder/ ``` 2. **Verify folder indexing:** ```json { "exclusions": { "index_folders": true } } ``` 3. **Check path security:** - Ensure no `../` or `./` in path - Verify no special characters causing issues ### Download Problems #### Symptom: Download buttons missing or not working **Solutions:** 1. **Check download settings:** ```json { "main": { "disable_file_downloads": false, "disable_folder_downloads": false } } ``` 2. **Verify ZIP extension:** ```bash php -m | grep zip # If missing: apt-get install php-zip ``` 3. **Check disk space:** ```bash df -h .indexer_files/zip_cache/ ``` 4. **Test with small file first** #### Large File Download Issues **Solutions:** ```ini ; In php.ini max_execution_time = 600 memory_limit = 1024M post_max_size = 2G upload_max_filesize = 2G ; Check current limits php -i | grep -E "(max_execution_time|memory_limit|post_max_size)" ``` ## Configuration Issues ### Configuration Not Taking Effect #### Symptom: Changes to config.json don't work **Solutions:** 1. **Validate JSON syntax:** ```bash php -r "json_decode(file_get_contents('.indexer_files/config.json')); echo 'Valid JSON\n';" ``` 2. **Clear cache:** ```bash rm -rf .indexer_files/index_cache/* ``` 3. **Check file permissions:** ```bash chmod 644 .indexer_files/config.json ``` 4. **Look for backup files:** ```bash ls -la .indexer_files/config.json.backup.* ``` ### API Updates Overwriting Settings #### Symptom: Manual changes get reset **Solutions:** 1. **Disable API updates:** ```json { "main": { "disable_api": true } } ``` 2. **Backup before changes:** ```bash cp .indexer_files/config.json .indexer_files/config.json.manual ``` 3. **Check update logs:** ```bash cat .indexer_files/config_updates.log ``` ### Invalid Configuration #### Symptom: Indexer uses defaults despite config file **Solutions:** ```bash # Check for JSON syntax errors python -m json.tool .indexer_files/config.json # Create minimal working config cat > .indexer_files/config.json << 'EOF' { "version": "1.0", "main": { "cache_type": "json" }, "exclusions": { "index_folders": true }, "viewable_files": { "view_txt": true } } EOF ``` ## Security & Permission Errors ### Permission Denied Errors #### Symptom: Various "Permission denied" errors **Solutions:** 1. **Fix web server permissions:** ```bash # For Apache (www-data) chown -R www-data:www-data .indexer_files/ # For Nginx chown -R nginx:nginx .indexer_files/ ``` 2. **Set correct file modes:** ```bash find .indexer_files/ -type f -exec chmod 644 {} \; find .indexer_files/ -type d -exec chmod 755 {} \; ``` 3. **Check SELinux (if applicable):** ```bash # Check status sestatus # Allow HTTP network connections setsebool -P httpd_can_network_connect 1 # Set correct context restorecon -R .indexer_files/ ``` ### Access Denied Errors #### Symptom: "Access denied - path traversal detected" **Cause:** Security system detecting potential attacks **Solutions:** 1. **Check URL for invalid characters:** - Remove `../` or `./` from URLs - Avoid encoded traversal attempts 2. **Use clean navigation:** - Navigate through interface instead of editing URLs - Use breadcrumbs for navigation 3. **Check for symlink issues:** ```bash ls -la | grep "^l" # Find symlinks ``` ### ZIP Creation Failures #### Symptom: "Failed to create zip file" **Solutions:** 1. **Check ZIP extension:** ```bash php -m | grep zip # Install if missing: apt-get install php-zip ``` 2. **Verify disk space:** ```bash df -h .indexer_files/ ``` 3. **Check temp directory permissions:** ```bash chmod 755 .indexer_files/zip_cache/ ls -ld .indexer_files/zip_cache/ ``` 4. **Test ZIP functionality:** ```php open('/tmp/test.zip', ZipArchive::CREATE); echo "ZIP test result: " . $result . "\n"; ?> ``` ## Network & API Issues ### API Connection Failures #### Symptom: Cannot connect to API, configuration not downloading **Solutions:** 1. **Test API connectivity:** ```bash curl -I https://api.indexer.ccls.icu/api.php?action=status ``` 2. **Check PHP URL functions:** ```php ``` 3. **Enable offline mode:** ```json { "main": { "disable_api": true } } ``` 4. **Check firewall rules:** ```bash # Test outbound HTTPS telnet api.indexer.ccls.icu 443 ``` ### SSL/TLS Issues #### Symptom: SSL certificate errors when accessing API **Solutions:** ```php // Temporary workaround (not recommended for production) $context = stream_context_create([ "ssl" => [ "verify_peer" => false, "verify_peer_name" => false, ], ]); ``` **Better solution:** 1. Update CA certificates: `apt-get update && apt-get install ca-certificates` 2. Update PHP: Use recent PHP version with updated SSL support ## Diagnostic Tools ### System Information Collection **Run this diagnostic script:** ```bash #!/bin/bash echo "=== 5q12's Indexer Diagnostics ===" echo "Date: $(date)" echo "" echo "=== System Information ===" echo "OS: $(uname -a)" echo "PHP Version: $(php --version | head -1)" echo "Web Server: $(ps aux | grep -E '(apache|nginx|httpd)' | head -1)" echo "" echo "=== PHP Extensions ===" php -m | grep -E "(sqlite|zip|json|curl|gd)" echo "" echo "=== File Permissions ===" ls -la index.php .indexer_files/ echo "" echo "=== Disk Space ===" df -h . echo "" echo "=== Configuration ===" if [ -f .indexer_files/config.json ]; then echo "Config exists: YES" cat .indexer_files/config.json | python -m json.tool > /dev/null 2>&1 if [ $? -eq 0 ]; then echo "Config valid: YES" else echo "Config valid: NO - JSON syntax error" fi else echo "Config exists: NO" fi echo "" echo "=== Cache Status ===" if [ -d .indexer_files/index_cache ]; then echo "Cache dir exists: YES" echo "Cache files: $(find .indexer_files/index_cache -type f | wc -l)" else echo "Cache dir exists: NO" fi echo "" echo "=== Error Logs (last 10 lines) ===" if [ -f /var/log/apache2/error.log ]; then tail -10 /var/log/apache2/error.log elif [ -f /var/log/nginx/error.log ]; then tail -10 /var/log/nginx/error.log else echo "No standard error logs found" fi ``` ### Configuration Validator **Create config validator:** ```php 'json', 'local_icons' => false, 'disable_api' => false ]; foreach ($mainDefaults as $key => $default) { if (!isset($config['main'][$key])) { echo "INFO: Using default for main.$key = $default\n"; } else { echo "✓ Setting main.$key = " . json_encode($config['main'][$key]) . "\n"; } } } echo "Configuration validation complete\n"; return true; } validateIndexerConfig(); ?> ``` ### Performance Test **Test directory loading performance:** ```php ``` ## Getting Help ### Information to Collect **When seeking help, provide:** 1. **Environment Details:** ```bash uname -a php --version apache2 -v # or nginx -v ``` 2. **Error Information:** - Exact error messages - Steps to reproduce - When issue started - Recent changes 3. **Configuration:** ```bash cat .indexer_files/config.json | python -m json.tool ls -la .indexer_files/ ``` 4. **Logs:** ```bash tail -50 /var/log/apache2/error.log tail -20 .indexer_files/config_updates.log ``` ### Common Solutions Summary | Problem | Quick Fix | |---------|-----------| | Not loading | Check PHP installation and permissions | | Files missing | Check configuration exclusions and deny list | | Slow performance | Enable SQLite caching | | Icons missing | Enable local icons | | Downloads fail | Check ZIP extension and permissions | | Config ignored | Validate JSON syntax and clear cache | | Permission errors | Fix file ownership and permissions | | API issues | Enable offline mode | ### Support Resources 1. **GitHub Repository** - Check for known issues and updates 2. **Documentation** - Review related guides: - [Installation Guide](installation.md) - Setup issues - [Configuration Guide](configuration.md) - Settings problems - [Security Guide](security.md) - Permission and access issues 3. **Community** - Search for similar issues 4. **Professional Help** - Consider system administrator assistance for complex server issues ### Recovery Procedures **Complete reset if all else fails:** ```bash # Backup current state cp -r .indexer_files .indexer_files.backup # Remove configuration rm -rf .indexer_files # Access indexer to reinitialize curl https://yourdomain.com/path/to/indexer/ # Restore custom settings if needed # Edit .indexer_files/config.json with your requirements ``` This troubleshooting guide provides systematic approaches to diagnose and resolve the most common issues with 5q12's Indexer.# Troubleshooting Guide ## Overview This guide addresses common issues encountered when using 5q12's Indexer, providing step-by-step solutions and diagnostic procedures. ## Initial Setup Issues ### Indexer Not Loading **Symptom:** Blank page or "file not found" error when accessing the indexer. **Possible Causes:** - PHP not enabled or configured - File permissions incorrect - Web server misconfiguration **Solutions:** 1. **Verify PHP Installation:** ```bash php --version ``` If PHP is not installed, install it through your package manager. 2. **Check File Permissions:** ```bash chmod 644 index.php ls -la index.php ``` File should be readable by web server user. 3. **Test PHP Processing:** Create a test file `phpinfo.php`: ```php ``` If this doesn't load, PHP processing is not working. 4. **Check Web Server Error Logs:** ```bash # Apache tail -f /var/log/apache2/error.log # Nginx tail -f /var/log/nginx/error.log ``` ### Configuration Directory Creation Fails **Symptom:** Error about inability to create `.indexer_files` directory. **Cause:** Insufficient write permissions in the web directory. **Solution:** ```bash # Check current permissions ls -la # Make directory writable chmod 755 . mkdir .indexer_files chmod 755 .indexer_files # Or create manually with proper permissions mkdir -p .indexer_files/{zip_cache,index_cache,icons,local_api} chmod -R 755 .indexer_files ``` ### API Connection Errors **Symptom:** Error messages about API connectivity or configuration download failures. **Solutions:** 1. **Check Internet Connectivity:** ```bash curl -I https://api.indexer.ccls.icu ``` 2. **Enable Offline Mode:** Manually create `config.json` with `"disable_api": true`: ```json { "version": "1.0", "main": { "disable_api": true } } ``` 3. **Check Firewall Rules:** Ensure outbound HTTPS (port 443) is allowed. 4. **Verify PHP URL Functions:** ```php ``` ## Performance Issues ### Slow Directory Loading **Symptom:** Long loading times for directories with many files. **Solutions:** 1. **Enable SQLite Caching:** ```json { "main": { "cache_type": "sqlite" } } ``` 2. **Check SQLite Extension:** ```bash php -m | grep sqlite ``` If missing, install: `apt-get install php-sqlite3` 3. **Clear Existing Cache:** ```bash rm -rf .indexer_files/index_cache/* ``` 4. **Increase PHP Memory Limit:** In `php.ini`: ```ini memory_limit = 256M max_execution_time = 60 ``` ### Icons Not Loading **Symptom:** File type icons not displaying, showing emoji fallbacks. **Solutions:** 1. **Enable Local Icons:** ```json { "main": { "local_icons": true } } ``` 2. **Check Icon Directory:** ```bash ls -la .indexer_files/icons/ ``` 3. **Manually Download Icons:** If API is disabled, download icon files manually to `.indexer_files/icons/` 4. **Verify Web Access to Icons:** Test icon URL directly: `https://yourdomain.com/.indexer_files/icons/folder.png` ## File Display Issues ### Files Not Appearing **Symptom:** Expected files don't show in directory listing. **Diagnostic Steps:** 1. **Check File Permissions:** ```bash ls -la filename.ext ``` Ensure file is readable by web server. 2. **Verify Extension Settings:** Check if file type is enabled in configuration: ```json { "exclusions": { "index_php": true } } ``` 3. **Check Deny List:** Verify file isn't in deny list: ```json { "main": { "deny_list": "*.php, admin, logs" } } ``` 4. **Hidden Files:** For files starting with `.`, check: ```json { "main": { "index_hidden": true } } ``` ### Folders Not Accessible **Symptom:** Folders appear but clicking them results in errors. **Solutions:** 1. **Check Directory Permissions:** ```bash ls -ld /path/to/folder ``` Directory needs execute permission: `chmod 755 folder` 2. **Verify Folder Indexing:** ```json { "exclusions": { "index_folders": true } } ``` 3. **Check Path Security:** Ensure path doesn't contain traversal attempts or restricted characters. ## Download Issues ### Download Buttons Missing **Symptom:** No "DL" or "ZIP" buttons visible. **Cause:** Downloads disabled in configuration. **Solution:** ```json { "main": { "disable_file_downloads": false, "disable_folder_downloads": false } } ``` ### Download Failures **Symptom:** Download button present but downloads fail or produce errors. **Solutions:** 1. **Check File Permissions:** ```bash ls -la filename.ext ``` 2. **Verify ZIP Extension:** ```bash php -m | grep zip ``` Install if missing: `apt-get install php-zip` 3. **Check Disk Space:** ```bash df -h .indexer_files/zip_cache/ ``` 4. **Verify Temporary Directory:** ```bash ls -la .indexer_files/zip_cache/ chmod 755 .indexer_files/zip_cache/ ``` ### Large File Download Issues **Symptom:** Large files fail to download or timeout. **Solutions:** 1. **Increase PHP Limits:** ```ini max_execution_time = 300 memory_limit = 512M post_max_size = 1G upload_max_filesize = 1G ``` 2. **Check Web Server Timeouts:** ```apache # Apache Timeout 300 ``` 3. **Monitor Server Resources:** ```bash top df -h ``` ## Viewing Issues ### Files Not Viewable in Browser **Symptom:** Files download instead of displaying in browser. **Solutions:** 1. **Check Viewable Files Configuration:** ```json { "viewable_files": { "view_pdf": true, "view_png": true, "view_txt": true } } ``` 2. **Verify MIME Type Support:** Browser may not support the file type for viewing. 3. **Check File Size:** Very large files may not be suitable for browser viewing. ### Incorrect File Display **Symptom:** Files display with wrong formatting or as binary data. **Solutions:** 1. **Check File Extension Mapping:** Ensure correct extension is configured in `extensionMap.json` 2. **Verify File Encoding:** For text files, ensure UTF-8 encoding: ```bash file -i filename.txt ``` 3. **Browser Compatibility:** Some file types require specific browser support or plugins. ## Configuration Issues ### Configuration Not Taking Effect **Symptom:** Changes to `config.json` don't appear to work. **Solutions:** 1. **Validate JSON Syntax:** ```bash php -r "json_decode(file_get_contents('.indexer_files/config.json')); echo 'Valid JSON';" ``` 2. **Clear Cache:** ```bash rm -rf .indexer_files/index_cache/* ``` 3. **Check File Permissions:** ```bash chmod 644 .indexer_files/config.json ``` 4. **Verify Configuration Backup:** Check if automatic updates overwrote manual changes: ```bash ls -la .indexer_files/config.json.backup.* ``` ### API Updates Overwriting Settings **Symptom:** Manual configuration changes get reset automatically. **Solutions:** 1. **Disable API Updates:** ```json { "main": { "disable_api": true } } ``` 2. **Backup Before Changes:** ```bash cp .indexer_files/config.json .indexer_files/config.json.manual ``` 3. **Check Update Logs:** ```bash cat .indexer_files/config_updates.log ``` ## Error Messages ### "Directory not found" Error **Symptom:** Error 404 when accessing specific directories. **Solutions:** 1. **Check Path Exists:** ```bash ls -la /path/to/directory ``` 2. **Verify URL Encoding:** Special characters in URLs may need proper encoding. 3. **Check Permissions:** ```bash ls -ld /path/to/directory chmod 755 /path/to/directory ``` ### "Access denied - path traversal detected" **Symptom:** Security error when accessing certain paths. **Cause:** Security system detecting potential path traversal attack. **Solutions:** 1. **Check URL for Invalid Characters:** - Remove `../` or `./` from URLs - Avoid encoded traversal attempts 2. **Use Clean Paths:** Navigate through the interface rather than manually editing URLs. 3. **Check Symlinks:** Ensure symbolic links don't point outside allowed directories. ### "Failed to create zip file" **Symptom:** Error when attempting to download folders as ZIP. **Solutions:** 1. **Check ZIP Extension:** ```bash php -m | grep zip ``` 2. **Verify Disk Space:** ```bash df -h .indexer_files/ ``` 3. **Check Permissions:** ```bash chmod 755 .indexer_files/zip_cache/ ``` 4. **Test ZIP Creation:** ```php open('/tmp/test.zip', ZipArchive::CREATE); var_dump($result); ?> ``` ## Browser-Specific Issues ### Internet Explorer/Edge Legacy Issues **Symptoms:** Interface display problems, functionality not working. **Solutions:** 1. **Update Browser:** Use modern browser versions (Chrome, Firefox, Safari, Edge Chromium). 2. **Enable JavaScript:** Ensure JavaScript is enabled in browser settings. 3. **Clear Browser Cache:** ``` Ctrl+Shift+Delete (Windows) Cmd+Shift+Delete (Mac) ``` ### Mobile Browser Issues **Symptoms:** Poor display on mobile devices, touch interface problems. **Solutions:** 1. **Check Viewport:** Ensure responsive design is working properly. 2. **Test Different Mobile Browsers:** Chrome, Safari, Firefox mobile. 3. **Check Network Speed:** Mobile networks may cause timeout issues. ## Server Environment Issues ### Memory Limit Errors **Symptom:** "Fatal error: Allowed memory size exhausted" **Solutions:** 1. **Increase PHP Memory Limit:** ```ini memory_limit = 512M ``` 2. **Optimize Large Directory Handling:** ```json { "main": { "cache_type": "sqlite" } } ``` 3. **Check for Memory Leaks:** Monitor memory usage during operation. ### Timeout Errors **Symptom:** "Maximum execution time exceeded" **Solutions:** 1. **Increase Execution Time:** ```ini max_execution_time = 300 ``` 2. **Optimize Directory Processing:** Use caching and limit directory depth. 3. **Check Server Load:** ```bash top htop ``` ### File Permission Errors **Symptom:** Various "Permission denied" errors. **Solutions:** 1. **Fix Web Server Permissions:** ```bash chown -R www-data:www-data .indexer_files/ ``` 2. **Set Correct File Modes:** ```bash find .indexer_files/ -type f -exec chmod 644 {} \; find .indexer_files/ -type d -exec chmod 755 {} \; ``` 3. **Check SELinux (if applicable):** ```bash setsebool -P httpd_can_network_connect 1 ``` ## Debugging Procedures ### Enable Debug Mode Add debug information to troubleshoot issues: ```php // Add to top of index.php temporarily error_reporting(E_ALL); ini_set('display_errors', 1); ini_set('log_errors', 1); ini_set('error_log', '.indexer_files/debug.log'); ``` ### Collect Diagnostic Information 1. **System Information:** ```bash php --version php -m ls -la .indexer_files/ df -h ``` 2. **Configuration Status:** ```bash cat .indexer_files/config.json ls -la .indexer_files/config.json* ``` 3. **Error Logs:** ```bash tail -50 /var/log/apache2/error.log tail -50 .indexer_files/debug.log ``` ### Test API Connectivity ```bash # Test API endpoints curl -I https://api.indexer.ccls.icu/api.php?action=status curl https://api.indexer.ccls.icu/api.php?action=config ``` ### Validate Configuration ```php ``` ## Recovery Procedures ### Complete Reset If all else fails, reset the indexer: 1. **Backup Current State:** ```bash cp -r .indexer_files .indexer_files.backup ``` 2. **Remove Configuration:** ```bash rm -rf .indexer_files ``` 3. **Reload Indexer:** Access in browser to reinitialize. ### Restore from Backup ```bash # Restore configuration cp .indexer_files/config.json.backup.[timestamp] .indexer_files/config.json # Restore full directory rm -rf .indexer_files mv .indexer_files.backup .indexer_files ``` ### Manual Configuration Recreation Create minimal working configuration: ```json { "version": "1.0", "main": { "cache_type": "json", "local_icons": false, "disable_api": false, "disable_file_downloads": false, "disable_folder_downloads": false, "index_hidden": false, "index_all": false, "deny_list": "", "allow_list": "" }, "exclusions": { "index_folders": true, "index_txt": true, "index_php": true }, "viewable_files": { "view_txt": true, "view_php": true } } ``` ## Getting Help ### Information to Collect When seeking help, provide: 1. **Environment Details:** - Operating system and version - Web server type and version - PHP version and extensions - Browser type and version 2. **Error Information:** - Exact error messages - Steps to reproduce - When the issue started - Recent changes made 3. **Configuration:** - Relevant parts of `config.json` - Web server configuration - File permissions 4. **Logs:** - Web server error logs - PHP error logs - Indexer debug logs ### Support Resources - Check GitHub repository for known issues - Review documentation for configuration options - Test in different environment if possible - Consider professional system administration help for complex server issues This troubleshooting guide covers the most common issues encountered with 5q12's Indexer and provides systematic approaches to diagnosis and resolution.