Could it be that loading of DBI fails only from the webserver? Try to make a simple website CGI script (the usual "hello world") and then add 'use DBI'. If you don't see "hello world" on the web page anymore, the fault lies in the environment of your webserver
The normal apache web server on this box from which I run CGI scripts often can access DBI fine. I suppose whether SOAP::Transport::HTTP::Daemon can access it is the question and I'm not sure how to answer.