It's possible you are trying to restart the wrong httpd server. When cd'ing into /etc/rc.d/init.d and then using:
httpd restart
...then that's probably not doing what you think. From your shell account your path env will be taking over and you will be restarting the httpd server located somewhere like /usr/bin
/etc/rc.d/init.d/httpd test
...works because you are specifying the full path. Without the full path you'd need to do:
cd /etc/rc.d/init.d
./httpd test
httpd restart
...then that's probably not doing what you think. From your shell account your path env will be taking over and you will be restarting the httpd server located somewhere like /usr/bin
/etc/rc.d/init.d/httpd test
...works because you are specifying the full path. Without the full path you'd need to do:
cd /etc/rc.d/init.d
./httpd test