Почему если я настраиваю в Apache 2.4 (Ubuntu) виртуальный хост на /var/www/testsite.ru/public все работает, а если на домашний каталог /home/username/testsite.ru/public - то ошибка 403
Потому что надо смотреть логи.
Скорее всего у апача нет доступа к /home/username/testsite.ru/public - что, в общем-то, правильно.
в /home/username доступа ни у кого кроме username быть не должно по определению
@Фанат, по дефолту на самом деле это не так. Доступ есть на чтение во многих дистрибутивах, user1 может читать домашнюю папку user2. Но вообще да, лучше бы дистры ставили бы туда права 0600
У меня только вопрос, зачем автору класть файлы веб-сервера туда, куда могут писать приложения, запущенные по юзером?