нет доступа к configuration.php.
всё.
а уж пыли-то было..
1 выставлять доступ для записи веб-серверу только директорию cache (если вы используете кеширование), для всего остального только чтение, кроме возможно отдельных расширений которые используют какие-то свои директории или файлы. Например akeeba.
2 Владелец всех файлов НЕ должен быть webserver (иначе вебсервер сможет изменить права доступа к файлам), для удобства владельца можно поставить ftp_user-а или ssh-user-a
3 В той директории, в которой открыта запись веб-серверу (например cache) должен быть запрет на выполнение php и иных скриптов (даже если хакер сможет записать зловредный код в эту папку. выполнить всё равно не сможет (если он залез в систему через веб-уязвимость ) )
в apache запрет делается через .htaccess, nginx в конфиге хоста
4 В момент когда вам нужно установить какое-то новое расширение или обновление, вебсерверу нужно разрешить запись в директории components administrator language tmp plugins modules templates
5 Для большей безопасности можно еще запретить выполнение любых php скриптов, кроме index.php и administrator/index.php, (если вы используете расширение которое имеет точку запуска Joomla в другом месте — это плохо)