Почему Linux не может найти этот файл?

У меня есть сайт Apache / PHP, работающий на Drobo5n в Linux.

utilities.php находится в / Choir / inc

hitCounter.txt находится в / Choir / etc / tbc

В utilities.php у нас есть следующая строка кода:

$hits = file_get_contents('../etc/tbc/hitCounter.txt');

Который производит эту ошибку:

Предупреждение: file_get_contents (../ etc / tbc / hitCounter.txt): не удалось открыть
поток: нет такого файла или каталога в
/mnt/DroboFS/Shares/DroboApps/apache/www/Choir/inc/utilities.php
по строке 6

Это мой первый раз возиться с PHP, и я не могу понять, почему он не может найти файл. Я пробовал как одинарные, так и двойные кавычки по пути, но безрезультатно.

Я знаю, что кто-то спросит полный код, так что вот файл utilities.php:

<?php
session_cache_limiter('private_no_expire');
session_start();

function getHitCount() {
$hits = file_get_contents('../etc/tbc/hitCounter.txt');
if (!isset ($_SESSION['beenHere'])) {
$hits = $hits + 1;
file_put_contents('../etc/tbc/hitCounter.txt', "$hits");
$_SESSION['beenHere'] = "Yes I have";
}
return $hits;
}
?>

0

Решение

1) Должен указать путь к файлу. Трудно сказать в этом случае. У нас должна быть корневая папка приложения.
Если мы будем следовать шаблону MVC, мы легко получим корневую папку приложения.

Например https://github.com/daveh/php-mvc

Мне что то нравится

$file = APP_ROOT . '/etc/tbc/hitCounter.txt';
#APP_ROOT  has the path /mnt/DroboFS/Shares/DroboApps/apache/www/Choir

2) Проверить file_exists

if (!file_exists($file)) {
//Throw error here
}

3) Проверьте: is_readable

if (!is_readable($File)) {
......
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]