You need to realize that the hook can not work ok the server for this use case. The server has no way to know you did a push (unless you have a github webhook setup and working, in which case, look at answer by @VonC), so the hook for the update would need to be local. Hooks are really not intended for this purpose as stated here: Local executing hook after a git push?
What you really want to do is push your changes to both the github, and your server. The easiest way would just be to push to both. See pull/push from multiple remote locations
Usually git-hooks are added to the server so that after you push to the server, the server can do some extra stuff (like start the app or something). (Here is a good article: http://danbarber.me/using-git-for-deployment/)
However, as you requested, you could alternatively use the post-receive script to simply do the push. Since git does not support post-push git hooks, this would have to run on the git repository. Github however, does not allow these (they only allow webhooks, for security reasons of course). But if it did, you could do:
#!/bin/sh
git remote add live git@mydomain.com:www/mysite
git push live master
exec git update-server-info
And make sure to set the file as executable chmod a+x post-receive