piersk's right - PHP is strictly serverside (you'll need to use javascript on the clientside) , but the same goes for all of the other languages you mentioned.
The main question to ask when choosing one language over another is 'How well do you know the language?'
If you've got 5years solid Perl experience then it would a bit daft to switch to PHP for your next Big Progect - stick with what you know.
If you don't really know any one language more than the rest then try them all out! PHP is a good choice - it's fairly easy to learn, fast and has a lot of 3rd party extensions.
Perl has more extensions (checkout CPAN) and will be available on more servers but (IMO) has a steeper learning curve.
Ruby, Python and others are newer languages - built with modern ideas in mind and are very OO (you can add and remove functions from Ruby classes on the fly, for example). But, because they're new they aren't ony many servers, don't have as many extensions and you won't find as many books and forums.
CGI - Common Gateway Interface - is merely a standard way for the webserver and your chosen language's compiler to communicate with each other. (At least that's what I was told)