The exact "Unknown option: levels" output leads me to believe one out of two possible scenarios:
1) You missed the -- before the "levels" option. That would completely invalidate the syntax.
2) You have mistyped the order of arguments for the command, since what usually happens is that we forget of those arguments along the way and then the chkconfig command just invalidates the whole line.
sudo chkconfig --levels 235 mysqld on
sudo chkconfig --levels 235 nginx on
sudo chkconfig --levels 235 php-fpm on
From the tutorial you linked runs completely fine in my box.
But when I tried to issue a chkconfig command on my own (before looking at the tutorial.) I had typed:
chkconfig --levels 235 mysqld
Which brought me to:
"only one runlevel may be specified for a chkconfig query". Because I had forgotten to add the "on" argument at last. Remember:
That should always be the syntax, in that order, or it will fail. Also, most linux/unix commands are case sensitive, in a way that "chkconfig --levels" and "chkconfig --LEVELS" might lead to two completely different outputs or expected behavior.
From your description I'm inclined to believe you forgot the -- suffix for the "levels" option, which is a must when arguments take more than one letter (i.e: "netstat -h" / "netstat --help" which would output exactly the same.).
Hope it helps! :)