In order to disinfect and to detoxify a fluid, a photoreactor contains at least two light sources. One light source activates the catalytic function of a semiconductor material in the fluid to reduce the concentration of contaminants in the fluid, such as by breaking down organic contaminants into non-toxic compounds. A second light source acts directly on living biological entities to sterilize or kill them and thereby disinfect the fluid, and can also serve to activate a semiconductor photocatalyst that in turn causes further damage to biological contaminants. The semiconductor photocatalyst is desirably attached to an optically transmitting fiber substrate in the fluid. The second light source in one embodiment is external to the fluid and illuminates the photocatalyst through transmitting surfaces in a fluid containment vessel. The light sources can comprise respective sets of plural LEDs.