Me extraña que en Windows funcione y en Linux no, porque con esa expresión regular eliminas todos los caracteres que no correspondan y no realizas alguna conversión.
Primero, deberías convertir los caracteres con tilde (AKA acento) a sus equivalentes sin tilde, ejemplo:
Código PHP:
Ver original$buscar = array('á', 'é', 'í', 'ó', 'ú'); // Llena con todos los que sean necesarios $reemplazar = array('a', 'e', 'i', 'o', 'u'); // Llena con los reemplazos correspondientes