It's not necessary to free up variables manually at the end of the script's execution. PHP always does that anyway.
If you're using Apache on Unix, if you build it with the threaded MPM (worker) rather than the prefork MPM (prefork), memory consumption is significantly less.
It will of course force you to rebuild PHP and have a thread-aware PHP, but remember, this is not that unusual - Win32 Apache/IIS users have it permanently in this mode.
Using the worker MPM will improve Apache's memory usage significantly, particularly if you have a very busy site.
Another thing to bear in mind is persistent mysql database connections - these are not really helpful if you have a large number of small sites (particularly if the database server is local) - they just increase memory consumption without affecting performance - so disable persistent connections.
Mark