PHP cli (5.3.3)로 스크립트를 하나 만들어놨다.

파일 처리한 후 rename 함수로 백업 경로로 옮기는 스크립트인데

용량 확보와 속도 개선을 위해 추가 디스크를 마운트 시켜놓고 나니 이런 오류가 발생했다.

[PHP] PHP Warning:  rename(/AAA/XXX,/BBB/XXX):
Operation not permitted in XXX.php on line XX

황당하게도 처리는 제대로 되었고 경고만 뜬다.


http://kr1.php.net/manual/en/function.rename.php


원인을 찾아보니 php 의 rename은 리눅스의 rename 명령을 이용하는 것이다보니 본래는 디스크간 이동을 위한 것이 아니다.

그러므로 디스크간 이동을 위해서는 system 이나 exec 함수로 식으로 수정하거나


exec("mv /AAA/XXX /BBB/XXX") ;

or

if(copy('/AAA/XXX', '/BBB/XXX')==TRUE) unlink('/AAA/XXX');

식으로 수정하면 경고 없이 깔끔하게 된다.

Posted by freezn