madhavr - I feel your pain. 😉
I've asked this question in many circles and people just don't get it. I always get responses like "Use a firewall" or "Disable FTP" or whatever.
People apparently don't understand this situation.
Consider a company that hires you and pays you to write a PHP application for them. This application is loaded up on THEIR server running Linux/Apache/whatever. They have their own tech staff - tech staff that you don't want to go copy the code that YOU wrote and go off distributing it to their buddies.
This is no big deal if you're writing 3 lines of PHP code to run a hit counter or something, but if you pour 6 months of your life into producing a professional software product that is sold to the client under LICENSE (you don't just sell your source code, but rather a license to use it) - you may want to sell this application again to another customer down the road. This is impossible to do if it's already been copied and posted all over the web.
Thus the need to encode it.
I have been looking at Zend Encoder for this very reason. It's not free, but it looks pretty good. The eval only lasts 3 days. But... you can purchase the full working copy under their "Small Business Program" for under $300, the only catch is that you can't make more than $250,000 per year gross by developing software - not a problem for most of us "small timers". This may be the best solution for your needs.
Hope that helps.