Warning fopen()
Есть вот такая функция:
Код:
function add_log($var_func) Код:
add_log(1); Код:
add_log(1); Код:
Warning: fopen(/access.log.8): failed to open stream: No such file or directory in /var/www/html/project/squid.php on line 101 Код:
add_log(8); |
Первый Warning говорит, что нет такого файла
Два других-это следствие того, что файл не был открыт Почему так происходит - хмм..... По какой то причине не находит файл |
Сейчас из кода заменил одну строчку
Код:
$fp = fopen ("$squid_log_path/access.log.$var_func","r"); Код:
$fp = fopen ("/opt/squid/var/logs/access.log.$var_func","r"); |
что то мне кажется где то я вот такую функцию пропустил pclose();
|
а что содержится в переменной $squid_log_path?
|
pclose(); нужен когда открывается процесс функцией popen()
|
$squid_log_path? = "/opt/squid/var/logs";
ну переменная записанна в файле config.php |
xamelion
может быть, добавить строки проверки существования файла: PHP код:
|
Цитата:
PHP код:
в которой был прописан путь с $squid_log_path, и $squid_log_path действительно имеет значение? Цитата:
|
Но!, но если вызов функции зделать вот такую
add_log(1); то код выполнится верно если же вот такую строчку: add_log(8); То код тоже выполняет все верно, Но если вписать до функции сразу 2 вызова функции скажем так add_log(1); add_log(8); то код не_будет выполнен корректно и даст ошибку. Ошибка выводится только если выполнять эту функцию 2 и более раза, в одинарном случаи он выполняет и add_log(1); и add_log(8); а это значит что конфиг.ПХП путя, файл, хард и видяшка работает отлично. Проблема лишь в том что на второй раз вызов функции дает збой. P.S. Почему только у меня талант клепать такие ошибки ? |
xamelion
хорошо, но давайте, чтобы не было сомнений и можно было идти дальше, введите в начале функции echo $squid_log_path и давайте посмотрим, что вернется. |
Кто верит в приведения ?
В общем... читаю вышеуказанный пост mar, захожу на сервер, логинюсь, нахожу нужный файл, нахожу нужную функцию, перед функцией ставлю такой код Код:
add_log(1); P.S. ККР - Коофициент кривизны рук. |
ой.. еще раз прошу прощения, ошибка так и остается открытая, в связи со своей невнимательностью я при последнем тесте убрал переменную $squid_log_path и на ее место поставил путь целиком до файловой системы ( об этом я писал в последнем посте ) и так и не убрал это.
mar Код:
function add_log($var_func) Код:
/opt/squid/var/logs/ Если поменять вызов цункций местами, Вот так например: Код:
add_log(8); Код:
/opt/squid/var/logs/ |
xamelion
если не сложно, напиши, пожалуйста код config.php. может, что-нибудь прояснится это случайно не phpBB2? |
Код:
<?php |
xamelion
Я не уверен, что в этом ошибка, но мало ли что бывает...: У Вас переменная $squid_log_path содержит /opt/squid/var/logs/ , то есть уже с закрывающим слешем , но когда вы вызываете функцию fopen, вы используете такой адрес в качестве параметра $squid_log_path/access.log.$var_func , опять со слешем, то есть путь до файла сейчас /opt/squid/var/logs//access.log.$var_func , что естественно не очень правильно в контексте определённой ОС, либо система ищет файл /access.log.$var_func Попробуйте один из слешей убрать, что получиться? |
Я уже постил по поводу "правильности написания слешей" http://forum.oszone.net/showthread.php?t=53904 но меня проигнорили....
я попробую сейчас изменить слеши, когда ответ дам, незнаю, потому что в москве щас из за падения линии проблемы с сайтами .net .com и вообще что дальше москвы :) |
убрал один слешь с файла config.php результат такой же.
убирать слешь со страки этот $squid_log_path/access.log.$var_func нету смысла. получится "$squid_log_pathaccess.log.$var_func" |
Может поможет весь код целиком?
дейсвия начинаются с файла index.php откуда передается параметр find_squid_file После чего вызывается функция find_squid_file(); Код:
<? |
Время: 13:17. |
Время: 13:17.
© OSzone.net 2001-