Хорошо, это странно.
Теперь у меня есть домен, указывающий на новый экземпляр EC2, на котором запущен наш веб-сайт, но сначала я думал, что у меня есть некоторые проблемы с правами доступа к файлам, теперь оказалось, что веб-служба содержит полностью отдельный уровень файловой системы поверх один уже на месте.
Что я имею в виду? Любой файл, который я загружаю на сайт или создаю с помощью file_put_contents (), недоступен, если я подключился к серверу по SSH. Совершенно невидимый. Для меня это большая проблема, так как у меня есть работа в cron для пользователя root, который предназначен для поиска этих файлов и выполнения любых необходимых ему заданий.
Если я перезапущу службу apache2 - файлы, созданные в этом сеансе, будут сброшены, как если бы их никогда не было. Даже если я не перезапущу сеанс - у меня нет возможности снова получить доступ к этому файлу - хотя это, вероятно, сработает, только если я перенаправлю его как загрузку файла. Что касается PHP, они находятся в scandir (), верно для file_exists () и т. Д.
Кто-нибудь был знаком с этим и знает, как я могу отключить его, чтобы он вел себя как обычно? По моим исследованиям, это звучит похоже на EFS, но я понятия не имею, как это выключить, не говоря уже о том, чтобы включить.
Спасибо. NB: Я задавал этот вопрос на Stack Overflow, но это скорее вопрос «сбой сервера».
MLu, гений. Я использовал locate
и, возможно, у меня был неправильный синтаксис или это было не для той ОС, но find
нашел это.
Причина всего этого canundrum прекрасно объясняется в этот Сообщение блога. Если вы измените настройку на false
, затем используйте команду systemctl daemon-reload
и перезапустите службу apache2 - вернитесь в нормальное состояние!
Извините за поздний ответ - моя последняя виртуальная машина (после внесения некоторых изменений в конфигурацию) разбилась и сгорела из-за некоторых странных проблем с распределением памяти. пожимают плечами!
Если PHP scandir()
можно увидеть файл, но ssh
не правда ли, это странно. Пара возможностей проверить:
Вы на 100% уверены, что вошли на тот же сервер, на котором работает PHP-код? Если это кластер или докер контейнер у вас может быть запущено несколько экземпляров?
Говоря о докер-контейнеры - у них своя файловая система. Вы случайно не запускаете свой сайт в Docker?
Или веб-сайт работает в chroot
Окружающая среда? Таким образом, вам придется искать загруженный файл в каком-то подкаталоге. Чтобы проверить, что загрузите файл с уникальным именем (например, abcdefgh.txt
), а затем найдите в файловой системе с помощью find / -name abcdefgh.txt
и посмотрите, какой путь вернется.
Это будет примерно так. Маловероятно, что файл будет просто невидимый для SSH есть кое-что еще.
Надеюсь, это поможет :)