A 6.9-magnitude earthquake has struck off the Philippine island of Mindanao triggering a tsunami warning, with small waves expected to hit southern parts of the country and neighbouring Indonesia.

The US Geological Survey said the quake struck southeast of Davao City at a depth of 59 kilometres.

It comes a week after a volcano-triggered tsunami killed more than 400 people in Indonesia.

The Pacific Tsunami Warning Centre said "hazardous tsunami waves from this earthquake are possible" along the coasts of Indonesia and the Philippines.

However, waves were forecast to be less than 30cm high while Philippine monitors warned that "minor sea level disturbances" were to be expected.

"People are advised to stay away from the beach and not to go to the coast fronting the Philippine Sea," for about two hours, the Philippines' government seismology office said in its tsunami warning.

It said cities in the south of the country felt "moderately strong" shaking but civil defence offices in the affected areas said they had no immediate reports of damage or casualties from the quake.

According to the USGS, there was a low likelihood of casualties and damage, although it warned recent earthquakes in the area had caused landslides.

The Philippines and Indonesia lie on the so-called Ring of Fire, a vast Pacific Ocean region where many earthquakes and volcanic eruptions occur.