Я создал один процесс для чтения информации из файлов и сохранения в базу данных, в моей среде desenv все работает нормально, но когда я помещаю файлы в свой php-хост (производственная среда), процесс завершается ошибкой при чтении файлов.
чтобы выполнить мой процесс, я создал одно задание cron на cpanel с помощью следующей команды:
php -q /home/<hostfolder>/batch/index.php
Когда мой процесс выполняется cron, в выводе говорится, что нет файлов. Ниже часть моего кода:
private $sourceFilesFolder = "/home/<host folder>/public_html/batch/arquivos";
private $destFilesFolder = "/home/<host folder>/public_html/batch/processados";
private $log;
private $trataException;
function __construct($log, $trataException) {
$this->log = $log;
$this->trataException = $trataException;
}
/**
* Read the source folder and select only files
* @return array - Array of valid files
*/
function selectFiles() {
// Save the first read of ftp folder
$listSourceFolder = scandir ( $this->sourceFilesFolder );
// Array tho save only valid files
$listFiles = array ();
// read the array with ftp content and save in listFiles only files
foreach ( $listSourceFolder as $file ) {
$verifica = $this->sourceFilesFolder . "\\" . $file;
// if is a file type, try save in listFiles array
if (($file != ".") && ($file != "..") && (!is_dir ( $verifica ))) {
// verifiy if the file exists
if (file_exists ( $verifica )) {
$this->log->gravaLog ( $file . " -> ADDED TO PROCESS" );
//verificaArquivoEmUso ( $verifica );
array_push ( $listFiles, $verifica );
} else
$this->log->gravaLog ( $file . "-> do not exist." );
} else
$this->log->gravaLog ( $file . "-> not is a file." );
}
return $listFiles;
}
В моей папке у меня есть два текстовых файла, и они отображаются в переменной $listSourceFolder, но когда я проверяю эти файлы с помощью file_exists, всегда возвращается false.
Во-первых, я поместил свои файлы кода в папку bacth в /home/
Во втором тесте я перемещаю файлы в папку ftp и помещаю их в папку bacth (то же самое, что и мой код).
В третьем тесте я переместил всю пакетную папку (с кодами и текстовыми файлами) в папку public_html.
Ничего не работает, всегда одна и та же ошибка, файл не существует.
Я попытался удалить ths file_exists if, но на следующем шаге алгоритма возникли ошибки.
Я проверил права доступа к файлам, и все разрешения в порядке.
Что я могу сделать???
` path delimited usually used on windows instead of the
/`, обычно используемый в * nix? Кроме того, каково значение$verifica
прямо перед тем, как вы проверите его с помощьюfile_exists
? Вы убедились, что путь к файлу и имя файла, на которые указывает$verifica
, действительно существуют? - person ssnobody   schedule 12.08.2015