В качестве обходного пути вы можете использовать mod_rewrite, чтобы зарегистрировать файл * .zip и по-прежнему обслуживать его через PHP без фактической записи его в файловую систему, однако клиенту придется отправить два запроса.
1) Измените ваш текущий скрипт, чтобы он не создавал файл, а вместо этого помещал параметры, необходимые для создания файла, в сеанс; вместо текущего заголовка и содержимого файла вы бы поместили header('Location: '.$project->name .'.zip');
2) Это вызовет второй запрос. Поскольку запрошенный файл еще не существует, вы можете использовать mod_rewrite, чтобы изменить запрос на файл * .zip на тот же или другой скрипт PHP, который считывает параметры из сеанса и создает файл так же, как вы это делаете. сейчас. Если вы используете тот же PHP-скрипт, вы бы дополнительно позволили mod_rewrite добавить в запрос некоторый параметр, например "? Action =roduFile", а затем протестировать этот параметр в скрипте.
Таким образом, у вас будет две хорошие записи в журнале Apache без физического сохранения файла (и, вероятно, удаления его позже).