fileperms (): stat не удалось, но файл существует - PullRequest
2 голосов
/ 23 декабря 2011

Я использую OpenVPN Web GUI , и у меня возникли некоторые проблемы, поскольку программа не видит один из необходимых файлов.ls -l для файла выглядит следующим образом:

-rw-r--r-- 1 root www 4153 Dec 20 10:12 /etc/openvpn/inn.crt

Но когда я запускаю программу, она утверждает, что файл не существует.Я попробовал это sprintf('%d', fileperms($sLongFileName));, которое вызывает предупреждение «не может быть».file_exists() также возвращает false.Существует еще один файл, который виден PHP:

-rw-r--r-- 1 root www 581 Dec 21 12:52 /etc/openvpn/crl.pem

В чем причина этого?

РЕДАКТИРОВАТЬ: Я сделал программу сделать это для обоих файлов:

file_put_contents("_dumpfile", "\n<<".$sLongFileName.">>\n", FILE_APPEND);

И результат такой:

>>/etc/openvpn/inn.crt

<</etc/openvpn/crl.pem>>

Есть ли какая-то проблема с путем к файлу?

1 Ответ

2 голосов
/ 23 декабря 2011

Наряду с физическим существованием файла, могут быть и другие вещи, которые могут помешать вам получить доступ к файлу под определенным пользователем.

Вам необходимо проверить, можете ли вы получить доступ к файлу и каталогу, в котором находится файл, у пользователя, который используется вашим PHP-скриптом для выполнения этих вызовов (это зависит от вашего сервера и конфигурации PHP). Итак, сначала выясните, какое имя пользователя.

Затем проверьте конфигурацию вашей системы, если такие утилиты, как SELinux, по какой-либо причине препятствуют доступу к файлам, например, В результате веб-запроса доступ к файлам не разрешен.

...