# 🔧 TROUBLESHOOTING: Failed to read configuration file **Eroare**: `SYSTEM [CRIT]: Failed to read configuration file /path/to/ircd.conf` **Versiune**: v1.0.2 **Data**: 13 februarie 2026 --- ## 🎯 Problema Serverul IRCd nu pornește și afișează eroarea: ``` [2026-2-13 9:48:01] SYSTEM [CRIT]: Failed to read configuration file /home/ircd/ircd/etc/ircd.conf ``` Deși fișierul `ircd.conf` există, serverul nu îl poate citi. --- ## 🔍 Cauze Posibile ### 1. **Permisiuni de Citire** (CEA MAI COMUNĂ) Fișierul există dar utilizatorul care rulează serverul nu are dreptul să îl citească. ### 2. **Fișier Gol sau Corupt** Fișierul există dar are 0 bytes sau este corupt. ### 3. **Cale Greșită** Serverul caută fișierul într-o locație diferită. ### 4. **Proprietar Diferit** Fișierul aparține altui utilizator. ### 5. **Sintaxă Invalidă** Config-ul are erori de sintaxă care împiedică citirea. --- ## ✅ Soluții - Pas cu Pas ### SOLUȚIE 1: Diagnosticare Automată (RECOMANDATĂ) Rulează noul script de diagnosticare: ```bash ./diagnose.sh ``` Acest script va verifica automat: - ✅ Existența fișierului - ✅ Permisiuni de citire - ✅ Mărimea fișierului - ✅ Sintaxa configurației - ✅ Acolade și ghilimele - ✅ Proprietar fișier - ✅ Directoare necesare **Output-ul te va ghida spre problema exactă!** --- ### SOLUȚIE 2: Verificare Manuală Rapidă ```bash # 1. Verifică dacă fișierul există ls -la ~/ircd/etc/ircd.conf # Ar trebui să vezi ceva gen: # -rw------- 1 ircd ircd 12345 Feb 13 09:00 ircd.conf # 2. Verifică conținutul (primele 10 linii) head -10 ~/ircd/etc/ircd.conf # Ar trebui să vezi configurația (General, Port, etc.) ``` --- ### SOLUȚIE 3: Remediere Permisiuni Dacă diagnosticarea arată probleme de permisiuni: ```bash # Setează permisiuni corecte (owner poate citi/scrie) chmod 600 ~/ircd/etc/ircd.conf # Verifică din nou ls -la ~/ircd/etc/ircd.conf ``` Permisiunile corecte: - **600** = `-rw-------` (doar owner poate citi/scrie) - **644** = `-rw-r--r--` (owner citire/scriere, alții citire) --- ### SOLUȚIE 4: Verificare Proprietar ```bash # Verifică cine este proprietarul stat ~/ircd/etc/ircd.conf # SAU ls -la ~/ircd/etc/ircd.conf # Dacă proprietarul este diferit, schimbă-l: chown $USER:$USER ~/ircd/etc/ircd.conf ``` --- ### SOLUȚIE 5: Test Sintaxă Config ```bash # Testează configurația cu ircd -c ~/ircd/bin/ircd -c -f ~/ircd/etc/ircd.conf # SAU folosind meniul admin ./admin.sh # → Opțiunea 8 (Test sintaxă configurare) ``` Dacă apar erori de sintaxă: - Verifică acolade `{ }` potrivite - Verifică ghilimele `" "` închise - Verifică punct-virgulă `;` la sfârșitul liniilor --- ### SOLUȚIE 6: Regenerare Config Dacă fișierul este corupt sau gol: ```bash # Folosind meniul admin ./admin.sh # → Opțiunea 5 (Editare configurare) # → În editor, șterge totul și salvează fișierul gol # → La ieșire din editor, va fi creat un config nou # SAU manual cu install.sh ./install.sh # → Va detecta config existent și va întreba dacă vrei să îl suprascrii ``` --- ## 🛠️ Folosind Meniul Admin Îmbunătățit (v1.0.2) Din versiunea **v1.0.2**, meniul `admin.sh` are verificări avansate: ```bash ./admin.sh ``` ### Opțiunea 1 - Pornire Server Acum verifică automat: - ✅ Existența fișierului config - ✅ Permisiuni de citire - ✅ Fișier nu este gol - ✅ Permisiuni executabil - ✅ **Afișează diagnosticare detaliată la erori** ### Opțiunea 8 - Test Sintaxă Acum verifică: - ✅ Permisiuni detaliate - ✅ Mărimea fișierului - ✅ Sintaxă acolade - ✅ Statistici config (blocuri General, Port, etc.) - ✅ **Sugestii de remediere** --- ## 📋 Checklist Verificare Completă Urmează acești pași în ordine: ```bash # ☐ 1. Rulează diagnosticare automată ./diagnose.sh # ☐ 2. Verifică existența fișierului ls -la ~/ircd/etc/ircd.conf # ☐ 3. Verifică conținutul (nu este gol) wc -l ~/ircd/etc/ircd.conf # Ar trebui să aibă > 0 linii # ☐ 4. Verifică permisiuni # Ar trebui: -rw------- sau -rw-r--r-- chmod 600 ~/ircd/etc/ircd.conf # ☐ 5. Testează sintaxă ~/ircd/bin/ircd -c -f ~/ircd/etc/ircd.conf # ☐ 6. Verifică proprietar stat ~/ircd/etc/ircd.conf # Owner ar trebui să fie utilizatorul curent # ☐ 7. Încearcă pornirea din nou ./admin.sh → Opțiunea 1 ``` --- ## 🎯 Exemplu Real - Rezolvare Pas cu Pas ### Problema ta specifică: ``` [2026-2-13 9:48:01] SYSTEM [CRIT]: Failed to read configuration file /home/ircd/ircd/etc/ircd.conf ``` ### Pași de rezolvare: ```bash # 1. Conectează-te ca utilizatorul ircd su - ircd # SAU sudo -u ircd bash # 2. Rulează diagnosticarea cd ~/underchat-ircd ./diagnose.sh # 3. Observă output-ul - va afișa exact ce este greșit # 4. Urmează sugestiile din diagnose.sh # 5. Dacă diagnosticarea spune "permisiuni", rulează: chmod 600 /home/ircd/ircd/etc/ircd.conf # 6. Dacă diagnosticarea spune "fișier gol", regenerează: ./admin.sh → Opțiunea 5 (editează și salvează un config valid) # 7. Test final: ./admin.sh → Opțiunea 1 (Pornire server) ``` --- ## 🔧 Troubleshooting Avansat ### Verifică exact ce eroare dă ircd: ```bash # Rulează ircd manual pentru a vedea toate erorile ~/ircd/bin/ircd -f ~/ircd/etc/ircd.conf # SAU cu debugging: ~/ircd/bin/ircd -d -f ~/ircd/etc/ircd.conf 2>&1 | tee ircd_debug.log ``` ### Verifică log-urile sistemului: ```bash # Ultimele erori din log tail -50 ~/ircd/log/ircd.log # Caută erori critice grep -i "error\|crit\|fail" ~/ircd/log/ircd.log ``` ### Verifică dacă există blocaje de SELinux (CentOS/RHEL): ```bash # Verifică status SELinux getenforce # Dacă este Enforcing, temporar dezactivează: sudo setenforce 0 # Încearcă din nou să pornești serverul ./admin.sh → Opțiunea 1 # Dacă acum funcționează, problema era SELinux # Configurează SELinux permanent: sudo setsebool -P httpd_can_network_connect 1 ``` --- ## 📊 Comparație Erori Comune | Eroare | Cauză | Soluție | |--------|-------|---------| | `Failed to read configuration file` | Permisiuni | `chmod 600 ircd.conf` | | `Configuration file not found` | Cale greșită | Verifică `-f` parameter | | `Parse error in config` | Sintaxă invalidă | `ircd -c -f config` | | `Empty configuration` | Fișier gol | Regenerează config | | `Permission denied` | User greșit | Rulează ca owner | --- ## ✅ Verificare Finală După Rezolvare După ce ai rezolvat problema: ```bash # 1. Test sintaxă ./admin.sh → Opțiunea 8 # Ar trebui să vezi: # ✓ CONFIGURARE VALIDĂ! # 2. Pornire server ./admin.sh → Opțiunea 1 # Ar trebui să vezi: # [+] ✓ Server pornit cu succes! # [+] PID: 12345 # 3. Verifică status ./admin.sh → Opțiunea 4 # Ar trebui să vezi: # Status: PORNIT # PID: 12345 # CPU: X% | RAM: Y KB ``` --- ## 📚 Referințe - **diagnose.sh** - Script automat de diagnosticare (NOU în v1.0.2) - **admin.sh** - Meniu cu verificări îmbunătățite (v1.0.2) - **COMANDA_CONFIGURE.md** - Parametrii de configurare - **INSTALL_AUTO.md** - Ghid complet de instalare --- ## 🆘 Încă Nu Funcționează? Dacă după toate aceste verificări încă nu merge: 1. **Rulează diagnose.sh** și trimite output-ul complet 2. **Verifică log-ul complet**: `cat ~/ircd/log/ircd.log` 3. **Verifică sistemul**: `uname -a` și `ls -la ~/ircd/etc/` 4. **Regenerează totul**: ```bash cd underchat-ircd ./install.sh --prefix ~/ircd-new ``` --- **Repository**: https://gitlab.back.ro/underchat/ircu2.git **Versiune**: v1.0.2 **Data**: 13 februarie 2026 **Status**: ✅ Rezolvată cu diagnose.sh