| db/config.php | ✅ found |
| DB_HOST | localhost |
| DB_PORT | 3307 (Synology default ✅) |
| DB_NAME | centre_cms |
| DB_USER | cms_user |
| DB_PASS | ✅ set (hidden) |
| DEBUG_MODE | ⚠️ true — remember to set false in production |
| ALLOWED_TABLES | ✅ 13 tables: members, membership_plans, payments, attendance, facilities, bookings, notifications, exp_users, exp_categories, exp_accounts, exp_expenses, exp_income, exp_transfers |
Checklist — everything should be ✅ before going live:
1. PHP 7.4+ 2. pdo_mysql loaded 3. DB connected 4. All 7 tables exist 5. Write test passes
6. PATH_INFO not empty 7. .htaccess has AcceptPathInfo On 8. api.php has no "never" return type
Common fixes:
•
pdo_mysql ❌ → DSM → Web Station → PHP 8.0 Profile → Extensions → enable
pdo_mysql → Apply
•
DB_PASS ❌ → Edit
db/config.php, change
CHANGE_THIS_PASSWORD to your real password
•
Connection ❌ → Check port is 3307, MariaDB is running, cms_user exists (run db/schema.sql)
•
Tables ❌ → Run
db/schema.sql via phpMyAdmin or SSH → MariaDB
•
PATH_INFO empty → Confirm
AcceptPathInfo On is in .htaccess, and mod_rewrite is enabled
•
Write test ❌ → Run:
GRANT SELECT, INSERT, UPDATE, DELETE ON centre_cms.* TO 'cms_user'@'localhost'; FLUSH PRIVILEGES;
•
"never" return type ❌ → Re-upload the latest
api.php from this project
⚠️ Delete or rename api-test.php once everything is working!
Also set
define('DEBUG_MODE', false); in
db/config.php before going live.
→ Manager Portal |
→ Member Portal |
← Home