The <, > and >> are used for input / output redirection for commands - which is a feature provided by the shell (e.g., bash). So if you type a command like
sudo cat > /var/www/info.php then the shell that receives this as input tries to open the file
/var/www/info.php and provides that file as the standard output to the
sudo command. The
sudo command is not even aware whether its output is going to a console or redirected to a file, because this is taken care of by the shell that invokes it.
If the shell you typed your command into is your login shell or another shell running in a terminal with your user id, then it has same privileges as your user id - not those of root.
So in your case, whereas the cat command is executed as root, the copying of its output to
/var/www/info.php is attempted by the shell running as a normal user, which, as expected, fails.
A workaround for such situations is to use the
tee command :
sudo tee /var/www/info.php
That will have the intended effect of putting all the text entered at the console upto ^D into the file specified as parameter.
One perhaps undersirable side-effect is that
tee will also echo the output to the stdout, so after you type each line and press enter
tee will output a copy of it back. To avoid this you can use the following variant.
sudo tee /var/www/info.php > /dev/null
tee can be had via
info tee at a terminal.