辰科进士，道光元年(1821年)初仕署山东曲阜知县，后除武城、泰安知县，迁高唐知州，道光十七年(1837年)署临清直隶州，后迁济宁知州，道光二十一年署兖州府知府，隔年迁四川保宁知府，兼署川北道，后擢升福建汀漳龙道。道光二十八年（1848年）担任按察使衔分巡台湾兵备道，其治理台湾期间，广建书院，兴办义学，整顿绿营班兵，变通船政，颇有治绩。咸丰三年（1853年）平凤山林恭起事，后遭巡抚王懿德弹劾，解任改派赴河南帮办剿匪。咸丰七年授浙江按察使，迁布政使。同治元年（1862年）升任福建巡抚，同年彰化戴潮春民变起事，