πŸ” RSS Aggregator Diagnostic Tool

1. PHP Environment Check

PHP Version: 8.3.31 βœ“ OK
Extension: json βœ“ Loaded
Extension: curl βœ“ Loaded
Extension: simplexml βœ“ Loaded
Extension: libxml βœ“ Loaded
Extension: mbstring βœ“ Loaded
allow_url_fopen: 1
max_execution_time: 360
memory_limit: 2048M

2. File & Directory Permissions

Current Directory: Permissions: 0755 - βœ“ Read/Write OK
data/: Permissions: 0755 - βœ“ Read/Write OK
data/feeds.json: Permissions: 0644 - βœ“ Read/Write OK
data/config.json: Permissions: 0644 - βœ“ Read/Write OK
data/stats.json: Permissions: 0644 - βœ“ Read/Write OK
data/articles/: Permissions: 0755 - βœ“ Read/Write OK

3. Data Files Content

feeds.json: βœ“ Valid JSON
{
    "feeds": [
        {
            "id": "feed_67891234567890",
            "url": "https:\/\/www.businessoutreach.in\/startup\/feed\/",
            "category": "business",
            "status": "active",
            "last_updated": "2026-08-07 05:44:12",
            "added_date": "2025-01-19 12:00:00"
        },
        {
            "id": "feed_67891234567891",
            "url": "https:\/\/startupindiamagazine.com\/feed\/",
            "category": "business",
            "status": "active...
config.json: βœ“ Valid JSON
{
    "gemini_api_key": "AIzaSyA-IrUqMfWJhc8s7KmdyX9lWAzNCBEkxn4",
    "auto_refresh_interval": 300,
    "default_language": "ta",
    "articles_per_page": 12
}
stats.json: βœ“ Valid JSON
{
    "total_tokens_used": 0,
    "last_reset": "2026-08-07",
    "daily_usage": {
        "2025-10-08": 4297,
        "2025-10-12": 3132,
        "2025-10-14": 1734,
        "2025-10-15": 1706,
        "2025-10-16": 6219,
        "2025-10-17": 4879,
        "2025-10-18": 2581,
        "2025-10-19": 3998,
        "2025-10-20": 2358,
        "2025-10-21": 8817,
        "2025-10-22": 11142,
        "2025-10-23": 11569,
        "2025-10-24": 3110,
        "2025-10-25": 2483,
        "2025-10-26": 8...

4. API Endpoint Test

Test: getSettings
URL: http://dove.ruralos.in//api.php?action=getSettings
βœ— HTTP Error: 301
<!DOCTYPE html>
<html style="height:100%">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title> 301 Moved Permanently
</title><style>@media (prefers-color-scheme:dark){body{background-color:#000!important}}</style></head>
<body style="color: #444; margin:0;font: normal 14px/20px Arial, Helvetica, sans-serif; height:100%; background-color: #fff;">
<div style="height:auto; min-height:100%; ">     <div style="text-align: center; width:800px; margin-left: -400px; position:absolute; top: 30%; left:50%;">
        <h1 style="margin:0; font-size:150px; line-height:150px; font-weight:bold;">301</h1>
<h2 style="margin-top:20px;font-size: 30px;">Moved Permanently
</h2>
<p>The document has been permanently moved.</p>
</div></div></body></html>
Test: getTokenStats
URL: http://dove.ruralos.in//api.php?action=getTokenStats
βœ— HTTP Error: 301
<!DOCTYPE html>
<html style="height:100%">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title> 301 Moved Permanently
</title><style>@media (prefers-color-scheme:dark){body{background-color:#000!important}}</style></head>
<body style="color: #444; margin:0;font: normal 14px/20px Arial, Helvetica, sans-serif; height:100%; background-color: #fff;">
<div style="height:auto; min-height:100%; ">     <div style="text-align: center; width:800px; margin-left: -400px; position:absolute; top: 30%; left:50%;">
        <h1 style="margin:0; font-size:150px; line-height:150px; font-weight:bold;">301</h1>
<h2 style="margin-top:20px;font-size: 30px;">Moved Permanently
</h2>
<p>The document has been permanently moved.</p>
</div></div></body></html>
Test: getArticles
URL: http://dove.ruralos.in//api.php?action=getArticles
βœ— HTTP Error: 301
<!DOCTYPE html>
<html style="height:100%">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<title> 301 Moved Permanently
</title><style>@media (prefers-color-scheme:dark){body{background-color:#000!important}}</style></head>
<body style="color: #444; margin:0;font: normal 14px/20px Arial, Helvetica, sans-serif; height:100%; background-color: #fff;">
<div style="height:auto; min-height:100%; ">     <div style="text-align: center; width:800px; margin-left: -400px; position:absolute; top: 30%; left:50%;">
        <h1 style="margin:0; font-size:150px; line-height:150px; font-weight:bold;">301</h1>
<h2 style="margin-top:20px;font-size: 30px;">Moved Permanently
</h2>
<p>The document has been permanently moved.</p>
</div></div></body></html>

5. Error Log

Recent Errors Found:
son is valid with 27 feeds
[07-Aug-2026 05:42:34 UTC] Loaded 13338 unique articles
[07-Aug-2026 05:43:08 UTC] feeds.json is valid with 27 feeds
[07-Aug-2026 05:43:13 UTC] Loaded 13338 unique articles
[07-Aug-2026 05:44:09 UTC] feeds.json is valid with 27 feeds
[07-Aug-2026 05:44:12 UTC] Loaded 13338 unique articles
[07-Aug-2026 05:45:08 UTC] feeds.json is valid with 27 feeds
[07-Aug-2026 05:45:12 UTC] Loaded 13394 unique articles
[07-Aug-2026 05:46:08 UTC] feeds.json is valid with 27 feeds
[07-Aug-2026 05:46:14 UTC] Loaded 13394 unique articles
[07-Aug-2026 05:46:29 UTC] feeds.json is valid with 27 feeds
[07-Aug-2026 05:46:30 UTC] Loaded 13394 unique articles
[07-Aug-2026 05:46:34 UTC] feeds.json is valid with 27 feeds
[07-Aug-2026 05:46:35 UTC] Loaded 13394 unique articles
[07-Aug-2026 05:46:36 UTC] Deduplication removed 349 duplicate article(s)
[07-Aug-2026 05:46:36 UTC] Loaded and sorted 13045 unique articles
[07-Aug-2026 05:46:59 UTC] feeds.json is valid with 27 feeds
[07-Aug-2026 05:47:01 UTC] Loaded 13394 unique articles
[07-Aug-2026 05:47:09 UTC] feeds.json is valid with 27 feeds
[07-Aug-2026 05:47:09 UTC] feeds.json is valid with 27 feeds
[07-Aug-2026 05:47:09 UTC] feeds.json is valid with 27 feeds
[07-Aug-2026 05:47:13 UTC] feeds.json is valid with 27 feeds
[07-Aug-2026 05:47:13 UTC] Loaded 13394 unique articles
[07-Aug-2026 05:47:14 UTC] Loaded 13394 unique articles
[07-Aug-2026 05:47:14 UTC] Deduplication removed 349 duplicate article(s)
[07-Aug-2026 05:47:14 UTC] Loaded and sorted 13045 unique articles
[07-Aug-2026 05:47:14 UTC] Deduplication removed 349 duplicate article(s)
[07-Aug-2026 05:47:15 UTC] Loaded and sorted 13045 unique articles
[07-Aug-2026 05:47:15 UTC] feeds.json is valid with 27 feeds
[07-Aug-2026 05:47:16 UTC] Loaded 13394 unique articles
[07-Aug-2026 05:47:17 UTC] Deduplication removed 349 duplicate article(s)
[07-Aug-2026 05:47:17 UTC] Loaded and sorted 13045 unique articles
[07-Aug-2026 05:58:00 UTC] feeds.json is valid with 27 feeds

6. RSS Feed Test

Testing Google News RSS Feed
βœ“ Feed loaded successfully
Items found: 70
Sample item:
Title: Iran says Hormuz deal with Oman won’t fully reopen strait - The Washington Post
Link: https://news.google.com/rss/articles/CBMiqAFBVV95cUxQSHhFb2tmTW1CZ2s3dnYxa1hnY3RqdHdxeFVCaUxUWGlkMXptaWkzVzZlWGwyN0pfREZzU1NFdmZ1dmNlVWNGcVpiajg4SlhYYnJ2d0RwYU95d1NkNzJ2TlFqVXZ4ZlM1UHpCbFJLMk90VVVoQy0ySFpQN3dtOTJNa09jS0I4MmRCUENxSmRNMWEyQVA4OHR0Q1E0N2xzUVdnQWlVRkd1a2M?oc=5
Date: Fri, 07 Aug 2026 04:37:48 GMT

7. Quick Fixes

8. Recommended Actions

If you're seeing 500 errors:
  1. Check the error log above for specific PHP errors
  2. Ensure all required PHP extensions are loaded
  3. Verify data folder has 777 permissions: chmod -R 777 data/
  4. Make sure api.php has 755 permissions: chmod 755 api.php
  5. Check PHP error_log file on your server
  6. Replace api.php with the debugged version provided
Manual Permission Fix (run in terminal):
cd /home/u663694163/domains/dove.ruralos.in/public_htmlchmod 755 index.php app.js api.php
chmod -R 777 data/
mkdir -p data/articles/original
chmod -R 777 data/articles/