The "No Language Defined" error in VestaCP happens when language files are missing, corrupted, or unreadable. This issue prevents the control panel from displaying properly.
Run this command to check the language folder in VestaCP:
ls -lah /usr/local/vesta/web/lang/
Expected output: List of language files like:
en.php ru.php es.php fr.php ...
If the folder is empty, proceed to Step 2.
If the language files are missing or deleted, reinstall them.
cd /usr/local/vesta/web/
git clone https://github.com/serghey-rodin/vesta.git vesta-lang
cp -r vesta-lang/web/lang/ /usr/local/vesta/web/
rm -rf vesta-lang
If the language files exist but are not loading, set the correct language manually.
nano /usr/local/vesta/conf/vesta.conf
Add or update this line:
LANGUAGE='en'
Replace 'en' with your preferred language (ru, es, fr, etc.).
Restart VestaCP:
systemctl restart vesta
If the language files exist but still don't work, fix their permissions.
Run:
chown -R root:root /usr/local/vesta/web/lang/
chmod -R 755 /usr/local/vesta/web/lang/
Restart VestaCP after fixing permissions:
systemctl restart vesta
| Issue | Fix |
|---|---|
| Language files missing | Restore using git clone |
| Language setting incorrect | Set LANGUAGE='en' in vesta.conf |
| File permissions incorrect | Run chown -R root:root /usr/local/vesta/web/lang/ |
| VestaCP still not loading languages | Restart with systemctl restart vesta |
Now your VestaCP should display correctly!