Hurricane Harvey has intensified, spinning into potentially the biggest hurricane to hit the US mainland in more than a decade, with life-threatening floods expected along the Gulf Coast.

Hurricane Harvey grew into a category 2 storm with winds of 105 mph (169 kph) as it moved northwest about 220 miles (355 km) off Corpus Christi, Texas, the National Hurricane Center said in an advisory. It's forecast to make landfall late on Friday or early Saturday.

Up to 35 inches (97 cm) of rain are expected over parts of Texas, with winds up to 125 mph (201 kph), and sea levels may surge as high as 12 feet (3.7 metres). Louisiana could get 10 to 15 inches of rain. Flood warnings are in effect for Louisiana and northern Mexico.

"Life-threatening and devastating flooding expected near the coast due to heavy rainfall and storm surge," the hurricane center said.

The storm's approach has triggered evacuations and canceled the first day of school in communities along the south Texas coast, which is home to 5.8 million people from Corpus Christi to Galveston.

Energy companies shut coastal refineries, pulled workers from offshore oil platforms in the Gulf of Mexico and halted onshore drilling in south Texas on Thursday. By midday, just under 10 per cent of offshore US Gulf of Mexico crude output capacity and nearly 15 percent of natural gas production had been halted, government data showed.

Louisiana and Texas declared states of disaster, authorising the use of state resources to prepare for the storm. President Donald Trump has been briefed and stands ready to provide resources if needed, the White House said on Thursday.

Harvey is forecast to come ashore as a Category 3 hurricane, the US National Hurricane Center said, the third most powerful on the Saffir-Simpson scale. That would make it the first major hurricane to hit the mainland United States since Hurricane Wilma struck Florida in 2005.

The NHC expects Harvey to move slowly over Texas and linger over the state for days. Houston, the nation's fourth most populous city, warned residents of flooding from close to 20 inches of rain over several days.