What you can do is create an additional project called "DependencyResolver" for example.
This project contains references from all other projects (BLL, DAL and others). In this project you can build your Ninject modules and define your bindings etc. Your Web application can register the Modules in this project from Global.asax or any other startup code (of course your web application should reference the dependencyresolver project)... That way you worked around the issue that your web project needs a reference to your DAL.
So in your new DependencyResolver project:
namespace DependencyResolver
{
public class MyModule : NinjectModule
{
public override void Load()
{
Bind<IUnitOfWork>().To<UnitOfWork>().InRequestScope();
}
}
And somewhere in your web project:
var modules = new List<INinjectModule>
{
new DependencyResolver.MyModule(),
};
kernel.Load(modules);
Hope you get the point and can translate in so it fits your project.