А никак.
Все библиотечки, которые я когда либо видел всасывают в себя весь архив. На не выделенном сервере вам едва ли дадут столько оперативной памяти и позволят php-скрипту ее "взожрать".
Проще всего на php написать script.php, который будет собирать шелл-скрипт вида:
cd ~
mkdir ./maketar
cd ./maketar
rm -f ./tarname.tar.gz
cp filename1 newfilename1 && tar -cf ./tarname.tar newfilename1 && rm -f newfilename1
cp filename2 newfilename2 && tar -rf ./tarname.tar newfilename2 && rm -f newfilename2
...
cp filenameX newfilenameX && tar -rf ./tarname.tar newfilenameX && rm -f newfilenameX
gzip ./tarname.tar
Чуть подробнее.
cd ~
mkdir ./maketar
cd ./maketar
rm -f ./tarname.tar.gz
Тут мы продуем создать в домике раздел maketar, перейти в него и удалить сжатый архив tarname.tar.gz (если скрипт запускается не в первый раз - это целесообразно).
cp filename1 newfilename1 && tar -cf ./tarname.tar newfilename1 && rm -f newfilename1
cp filename2 newfilename2 && tar -rf ./tarname.tar newfilename2 && rm -f newfilename2
...
cp filenameX newfilenameX && tar -rf ./tarname.tar newfilenameX && rm -f newfilenameX
Тут мы копируем исходный файл filename1 в newfilename1 (например /tmp/test.doc в ./test.doc, что бы в архиве не создавалось лишних разделов), добавляем newfilename1 в архив tarname.tar (обращаю внимание, что в первой строке используются флаги -cf (создание архива), а в остальных -rf (добавить файл в архив)), и на последнем шаге файл newfilename1 удаляется (так как дисковое пространство на хостинге так же не резиновое).
gzip ./tarname.tar
Тут мы просто сжимаем полученный архив и получайм файл tarname.tar.gz
Что бы все это отработало, в консоли нужно выполнить:
/usr/bin/php script.php > ~/exec.sh && /bin/sh ~/exec.sh && rm -f ~/exec.sh
Выполняем php-скрипт, результат записываем в файл exec.sh, выполняем его и удаляем.