Как перемещаться по папкам/MAMP?

Это довольно простой вопрос, над которым я дергаю себя за волосы.

Я настраиваю сервер MAMP для тестирования своего кода, корень документа — C:/MAMP/htdocs. Я настроил свои папки в htdocs следующим образом:

htdocs -> var -> www -> html -> program -> (код программы/индекс программы).

При этом у меня есть еще одна папка в www. www -> uploads -> (предполагается, что программа загружает в папку).

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

if (file_exists("/var/www/uploads/luljokes.txt")){
  echo " success !!!!!!!!";
}
else echo " failed ";

и он всегда возвращает неудачу.

Итак, мой вопрос: если корень документа находится в /htdocs/, почему я не могу получить доступ к документу с помощью /var/www/uploads? Я бы предпочел не менять структуру папок, потому что я изменяю другой проект в том же стиле.

Заранее спасибо!


person David Ma    schedule 04.06.2015    source источник
comment
PHP не заботится о настройке корня документа Apache. Ваш вызов file_exists ищет каталог верхнего уровня. Вам нужно начать с /MAMP/htdocs (возможно, вам также нужно включить C:, но я не пишу код для Windows, поэтому я не уверен)   -  person Cfreak    schedule 05.06.2015
comment
Поскольку он использует MAMP, он работает на Mac, а не на Windows.   -  person Chad    schedule 05.06.2015
comment
Чад, на самом деле я запускаю MAMP в Windows. У них есть версия для этого! (Я знаю, что должен был запустить WAMP, но кто-то предложил MAMP, потому что они использовали его на своем Mac)   -  person David Ma    schedule 05.06.2015
comment
@Cfreak - Извините, я не знал, что MAMP теперь создан и для Windows. Это весело.   -  person Chad    schedule 05.06.2015
comment
@ Чад, я бы подумал так же, просто он не зарегистрировался у меня. Я видел C:. В любом случае это было бы правдой. docroot не имеет значения для PHP   -  person Cfreak    schedule 05.06.2015
comment
@DavidMa. Так как вы работаете в Windows, ваш путь к /var/www/uploads/luljokes.txt, вероятно, неверен. Если этот файл находится в вашей папке htdocs, просто удалите / в начале. Если нет, вы должны найти фактический абсолютный путь, который, вероятно, начинается с C:\path\to\luljokes.txt.   -  person Chad    schedule 05.06.2015


Ответы (1)


Проблема в том, что путь file_exists("/var/www/uploads/luljokes.txt") относится к корню вашего документа, а не к вашей файловой системе. Это должно измениться на абсолютный путь к файловой системе. Что-то вроде: /Users/ваше имя/MAMP/...

person Jesse Kochis    schedule 04.06.2015
comment
Поскольку его путь начинается с /, его путь не относителен, а на самом деле абсолютен. Вероятно, ему просто нужно получить правильный абсолютный путь к своему файлу. - person Chad; 05.06.2015
comment
Итак, я попытался сделать это: if (file_exists("C:/MAMP/htdocs/var/www/uploads/luljokes.txt")){ echo " success !!!!!!!!"; } else echo "failed"; Но он все еще говорит, что не удалось. Любой совет? - person David Ma; 05.06.2015
comment
@Chad выглядит так, как будто var находится в htdocs в примере Дэвида, поэтому путь, который Дэвид пытается использовать, относится к htdocs, намеревается он это или нет. - person Jesse Kochis; 05.06.2015
comment
Косая черта @David не будет работать в файловых системах Windows. Вы можете попробовать что-то вроде __DIR__ ."var".DIRECTORY_SEPARATOR."www".DIRECTORY_SEPARATOR."uploads".DIRECTORY_SEPARATOR."luljokes.txt", если хотите, чтобы он работал на нескольких платформах. - person Jesse Kochis; 05.06.2015
comment
@JesseKochis if (file_exists(__DIR__."var".DIRECTORY_SEPARATOR."uploads".DIRECTORY_SEPARATOR."luljokes.txt")){ echo " success !!!!!!!!"; } else echo "failed "; Тоже не сработало :/ - person David Ma; 05.06.2015
comment
echo __DIR__ и посмотрим, что получится. Это должно стать хорошей отправной точкой для отладки вашей проблемы. - person Jesse Kochis; 05.06.2015