Cita: Lo que yo creo que esta mal, es en el str_replace al final no debe ir el $fp, pero nose, soy un poco novato en PHP, comence a aprender hace poco, aunque ya se bastante :)
Exacto, al
str_replace debes pasarle texto; lo que estás haciendo es pasarle un puntero de archivo. Por lo tanto primero debes obtener el texto del archivo:
Código PHP:
$archivo = 'conexion.php';
$string = file_get_contents($archivo);
$string = str_replace("servidor", $servidor, $string);
$string = str_replace("usuario", $usuario, $string);
$string = str_replace("contrasena", $contrasena, $string);
$string = str_replace("nombrebd", $nombre, $string);
$fp = fopen($archivo, "w");
$write = fputs($fp, $string);
fclose($fp);
¡Suerte!