2015-11-14 2 views
1

Я слишком долго искал эту ошибку, поэтому я ищу какую-то помощь от более опытных программистов на сервере.PHP - Нет такого файла или каталога (LAMP server)

Я запускаю стек Битна Битны. Я пытаюсь использовать PHP-скрипт (maintenance.php) для перемещения файлов на сервере. Поэтому я использую rename(filepath, newpath) в своем сценарии. Однако PHP-скрипт не может найти файл, даже если он существует на сервере.

SOLVED: Проблема заключалась в том, что я вызывал сценарий из двух разных мест во время отладки (мой браузер и оболочка linux). «Рабочий каталог» в каждом из этих мест был другим, поэтому файловые пути представляли разные местоположения в зависимости от того, откуда я вызвал PHP-скрипт.

+0

Перестань начало '/' – ElefantPhace

+0

Уже попробовал. >> rename (фотографии/CA/Ontario/Waterloo/564409b235bd29.29353255.jpg, archive/CA/Ontario/Waterloo/564409b235bd29.29353255.jpg): Нет такого файла или каталога – wildebeest

+0

Затем используйте абсолютный путь – ElefantPhace

ответ

1

В корне нет каталога pictures, поэтому /pictures не будет работать. Вместо этого вам придется использовать абсолютный путь к каталогу pictures.

Существует несколько способов сделать это.

Вы можете использовать $_SERVER['DOCUMENT_ROOT'], который даст вам root directory under which the current script is executing.

reserved.variables.server

Кроме того, вы можете использовать __FILE__, который даст вам путь к текущему файлу. С dirname(__FILE__) вы можете получить каталог, а затем вы можете работать с каталогом изображений, перейдя на уровень вниз, используя ../.

Это также аналогичный вопрос, который вы можете проверить,

PHP include absolute path

+0

Я сейчас добиваюсь прогресса. Я был очень смущен, потому что я запускал php-скрипт из моего браузера, а также оболочку, а рабочие каталоги были разными для каждого. Спасибо за вашу помощь. – wildebeest