crontab에서 PHP 스크립트를 실행할 때 파일 경로(php 스크립트와 동일한 위치의 하위 폴더에 있음)가 포함된 PHP 코드가 계속 작동합니까?
내 PHP 코드는 "ref_files" 하위 폴더에서 텍스트 파일을 읽습니다. 내 PC 브라우저에서 PHP를 실행할 때 100% 유효합니다:
$SettingsFile = "./ref_files/push1.txt";
$extData = fopen($SettingsFile, "r");
while ($line = fgets($extData, 2048)){ //reads the file line by line
echo $line . "<br>";
}
fclose($extData);
스크립트가 crontab(다른 위치에서 실행되는 것으로 생각됨)에서 실행될 때 이것이 중단됩니까?
Raspberry Pi 3 모델 B Plus Rev 1.3 Arm v7 OMV 4.1.35.1 Debian 9 Stretch PHP 7.0.33 Nginx 1.10.3
편집: 다음이 해결책인 것 같습니다.
$CodeRoot = dirname(__FILE__);
$SettingsFile = "$CodeRoot/ref_files/push1.txt";
$extData = fopen($SettingsFile, "r");
while ($line = fgets($extData, 2048)){ //reads the file line by line
echo $line . "<br>";
}
fclose($extData);
답변1
크론 작업은 cd
먼저 올바른 디렉터리에 도달해야 합니다.
예를 들어, 항목의 "명령" 부분으로 다음과 같은 내용을 입력합니다 crontab
.
( cd /path/to/php/script/directory ; php myscript.php )