Который раз уже теряю время на этом моменте во время настройки Apache+PHP окружения разработки на Ubuntu машине.
Я не люблю плодить лишних сущностей и держу папки с проектами, которые разрабатываю, в домашней директории. Чтобы дать возможность Apache исполнять PHP-скрипты из домашней директории нужно сделать следующее.
Включить себя в группу www-data.
sudo usermod -a -G www-data myusername
Проверить, что предыдущая команда возымела действие.
sudo groups myusername
Назначить для директории проекта группу-владельца www-data.
sudo chown myusername:www-data -R /path/to/project/dir
Назначить права на доступ к директории проекта себе и группе.
sudo chmod 755 -R /path/to/project/dir
И вот теперь самая мякотка — назначить права исполнения (1, x) для всех пользователей (третья группа прав) всем директориям выше директории проекта. Право исполнения для директории означает доступ к содержимому по указанию прямого пути при наличии соответствующих прав на это содержимое даже при отсутствии права на листинг (r) директории. Иначе Апач (www-data:www-data) просто не видит ваш проект в недрах директорий, к которым у него нет доступа.