Quest на будущее,
у меня всегда появлялись проблемы с файловой системой,
поэтому:
1) возми за правило и всегда используй коды возвратов системных файловых функций.
2) не используй вычисляемые пути в параметре функций, а лучше делать так:
PHP:
$path=$dir.'/'.$file.'.'.$ext;
echo $path; # эту строчку всегда закоментить можно
$fp=fopen( $path,'w' );
3) не забывай что у WIN и UNIX используются разные слЭши,
соответственно, те файловые функции (имеется ввиду пользовательские), которые работали под WIN не факт, что заработают под UNIX
4)
PHP:
$_SERVER["DOCUMENT_ROOT"]
работает под WIN и UNIX по разному: в первом случае путь выдается со слэшем, а во втором без него.