2011-12-13 2 views
0

Я пишу PHP-приложение, и я только что столкнулся с действительно странной ошибкой. После недавнего перехода на новый (Ubuntu) сервер, я начал получать фатальные ошибки в инструкции require_once. Таким образом, очевидно, что файл не существует, или права на файлы неправильные, не так ли?Linux: Файл существует и не существует

Нет, как выясняется:

Файл существует
Файл извлечен из хранилища SVN. Когда я захожу в папку и перечисляю файлы (ls или ls -l), файл явно там и имеет правильный размер файла. Когда я обновляю файл в репозитории и обновляю рабочую копию, изменения копируются в рабочую копию. Файл имеет разрешения 755, поэтому каждый должен иметь возможность видеть и читать. Другие файлы в том же каталоге работают нормально.

Файл также не существует:
PHP выходит с фатальной ошибкой, потому что файл не может быть найден. Если я использую команду найти -команд, файл не найден. Если я попытаюсь использовать nano, чтобы отредактировать файл, он утверждает, что его не существует. Если я начну вводить имя файла и нажимаю вкладку для автозаполнения, он не может найти файл.

Такое поведение произошло на двух отдельных серверах, но отлично работает на третьем сервере. Все серверы запускают Ubuntu 10.04.

Кто-нибудь знает, что происходит?

EDIT:
Имя файла: AdminIpv4RangeAddFormHandler.inc.

Полное сообщение об ошибке, с путями к файлам затемняется:

Warning: require_once(fullpath/AdminIpv4RangeAddFormHandler.inc): failed to open 
stream: No such file or directory in fullpath/anotherfile.inc on line 34 Fatal error: 
require_once(): Failed opening required 'fullpath/AdminIpv4RangeAddFormHandler.inc' 
(include_path='.:/usr/share/php:/usr/share/pear') in fullpath/anotherfile.inc on line 
34 

Следующая команда не производит никакого вывода:

find -name AdminIpv4RangeAddFormHandler.inc -ls 

А регулярные Ls -lI выходов (среди других) эту строку:

2233407 -rwxr-xr-x 1 root root 1597 2011-12-13 08:02 AdminIPv4RangeAddFormHandler.inc 
+1

Можете ли вы добавить здесь 'ls -li' и' find ... -ls'? Это, конечно, звучит неловко. – sarnold

+6

Задавать вопросы о ошибках PHP ** без публикации фактического сообщения об ошибке ** совершенно не имеет смысла. Пожалуйста, не тратьте слишком много слов, описывающих проблему. Это не сайт энтузиастов-романистов, это сайт программистов-энтузиастов. Скопировать/вставить фактические сообщения об ошибках и вывод консоли достаточно –

+0

Что такое имя файла? – meouw

ответ

5

Возьмите хороший длинный взгляд на ваши имена файлов:

AdminIpv4RangeAddFormHandler # from PHP 
AdminIpv4RangeAddFormHandler # from find command 
AdminIPv4RangeAddFormHandler # from ls output 
    ^

Вы должны выбрать IP или Ip и придерживаться решения везде.

+0

Ха-ха. Я получаю прием и понижение, и вы получаете надпись. Я возвращаю тебя снова, просто обратив внимание. – landons

+0

Ха-ха. И тогда вы тоже принимаете. Это BS. : P – landons

+0

«Обратное зло», хе-хе, это здорово. : D Не беспокойтесь слишком много о точках, хотя, вы до 70-2, я до 30 + 15, вы все еще впереди в нашей воображаемой гонке. :) – sarnold

9

Будьте осторожны при переключении ОС, поскольку некоторые из них чувствительны к регистру, а другие нет.

Я использую свой Mac для разработки (без учета регистра), поэтому не имеет значения, какой корпус я использую для file_exists() или include_once() и т. Д. Затем я развернулся к Ubuntu 11 (с учетом регистра), и все мои включает в себя прекращение работы. Я подозреваю, что у вас такая же проблема.

Сложная часть для меня была, при использовании git мой контроль версий не обнаружил изменений в имени файла в качестве модификации. Мне действительно нужно было переименовать каждый файл с каким-то префиксом, зафиксировать и развернуть, переименовать их обратно в то, что они должны (с последовательной капитализацией!), И, наконец, снова зафиксировать и развернуть. Это была полная боль.

Мораль истории - код для вашей производственной системы, а не ваша система dev.

+0

is svn, not git – ajreal

+0

Я это понимаю. Если вы даже не знаете, чувствительна ли ваша ОС к регистру, я подозреваю, что вам следует подумать об этом с вашим SCM ... – landons

+0

i dun know, is not me – ajreal

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