is_readable () возвращает false, а require_once возвращает true

Я получаю ложь всякий раз, когда я использую функцию is_readable для файла, совместно используемого моим хостом на виртуальной машине, ожидаемый результат верен.

Я делаю настройку локальной среды разработки для существующего проекта. Я не хочу использовать другую функцию, потому что это сложная унаследованная система, и я боюсь, что спрятал бы другие потенциальные проблемы, с которыми я столкнулся бы позже в процессе разработки.

Виртуальная машина настроена с использованием vagrant и virtualbox. ОС представляет собой компьютер под управлением Windows Server 2008 с Zend Server, на котором размещен код PHP 5.3, размещенный на хосте, который является Mac.

Общая папка создается следующим образом:

vmConfig.vm.synced_folder "/path/to/shared/folder/cms", '/cms', mount_options: ["dmode=775,fmode=664,type=smb"], owner: 'wcmadmin', group: 'wcmadmin'

Кусок кода пытается увидеть, доступен ли файл для чтения. is_readable возвращает ложь Я запускаю скрипт через командную строку с обоими пользователями wcmadmin а также Administrator и я получаю те же результаты.

function smarty_core_assemble_plugin_filepath($params, &$smarty)
{
[...]
// try relative to cwd (or absolute)
if (is_readable($_plugin_filepath)) {
$_return = $_plugin_filepath;
break;
}
[...]

Я сделал тестовый скрипт, чтобы копать дальше:

echo 'is_readable: ';
var_export(is_readable('C:\cms\path\to\file\file.php'));
echo "\n";
echo 'require_once: ';
var_export(require_once('C:\cms\path\to\file\file.php'));

И у меня есть следующие результаты:

is_readable: false
require_once: true

С помощью file_get_contents на файл возвращает содержимое правильно.

Используя cygwin, права доступа к файлу следующие:

$ ls -al C:\cms\path\to\file\file.php
-rw-r--r-- 1 wcmadmin None 1498 Apr 18 07:22 C:\cms\path\to\file\file.php

Путь к файлу был изменен с целью этого вопроса. Хотя они могут иметь некоторые расхождения, они корректно разрешаются во время реальных тестов.

0

Решение

Это ошибка в виртуальной коробке, и она все еще происходит с версии 5.0.18.

Увидеть:
https://www.virtualbox.org/ticket/11675

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]