2012-05-03 2 views
2

Я установил сетевой диск (работающий под управлением Windows Server 2008) на Ubuntu, добавив командуНекоторые функции PHP не правильно работать на подключенном сетевом диске

//10.10.101.54/docflow /opt/lampp/htdocs/mount cifs user=administrator,password=wbaZaja43ik,rwx,user,auto,file_mode=6777,dir_mode=6777,uid=1000,gid=1000 

в /etc/fstab, но есть проблемы с помощью PHP функций is_file() или is_dir() на файлах и каталоги на этом подключенном диске. Эти функции возвращают FALSE при вызове существующих файлов или каталогов - правильные пути, проверенные функцией file_exists(), которая работает правильно. PHP работает под «администратором» и имеет все привилегии, необходимые для манипуляций.

Любая идея, как решить эту проблему?

Спасибо!

ответ

2

Цитируя digitalaudiorock на Gmail точка ком-х comments в руководстве PHP:

Только примечание для тех, кто сталкивается с is_dir() возвращение ложна на CIFS точки монтирования или каталоги в тех точках монтирования на 2.6.31 и более новые ядра: по-видимому, в новых ядрах они по умолчанию использовали параметр сервера CIFS. В случае с Windows это вызывает огромные номера индексных дескрипторов и, по-видимому, может привести к тому, что is_dir() вернет false. Добавление опции noserverino к монтированию CIFS предотвратит это событие . Это может произойти только на 32 системах, но у меня нет 64-разрядной версии для тестирования.

+0

Марк, не могу вас поблагодарить! Теперь работает как шарм. Спасибо! –

+0

Спасибо! Мы сталкиваемся с этой проблемой при запуске 'comper install' в CentOS с использованием PHP/Laravel/Composer (ошибка была« Composer не смог найти файл composer.json в ... »). Опция 'noserverino' сделала трюк. –

Смежные вопросы