Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Проблема с открытием файлов

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
Albertino
Отправлено: 01 Апреля, 2011 - 13:40:18
Post Id


Гость


Покинул форум
Сообщений всего: 92
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




Возникла проблема, не могу с помощью фукции fopen() открыть текстовый файл, файл точно существует. Есть подозрения что гдето в конфигах Apache или PHP стоит запрет на открытие файла в PHP, те разрешено открывать только из определенных директорий.
Правильные ли у меня подозрения и как это исправить?
Если нужны какие-то конфигурационные файлы, то скажите какие.
 
 Top
Мелкий Супермодератор
Отправлено: 01 Апреля, 2011 - 14:17:07
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




0) включите вывод ошибок
1) на что жалуется?
2) что сам fopen возвращает?


-----
PostgreSQL DBA
 
 Top
Albertino
Отправлено: 01 Апреля, 2011 - 14:26:29
Post Id


Гость


Покинул форум
Сообщений всего: 92
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




Мелкий пишет:
0) включите вывод ошибок
1) на что жалуется?
2) что сам fopen возвращает?

А где включается вывод ошибок и как посмотреть что возвращаает сам fopen?
 
 Top
DeepVarvar Супермодератор
Отправлено: 01 Апреля, 2011 - 14:27:25
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




В самом начале скрипта пишем:
 
 Top
Albertino
Отправлено: 01 Апреля, 2011 - 14:42:20
Post Id


Гость


Покинул форум
Сообщений всего: 92
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




DeepVarvar пишет:
В самом начале скрипта пишем:

прописал эту функцию никаких ошибок не выводит, в логах пишет следующее
CODE (htmlphp):
скопировать код в буфер обмена
  1.  PHP Warning:  fopen(C:\E4\DATA\log\SMTP\201103smtpsend.txt) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: Operation not permitted in D:\web\check_emails\check_emails.php on line 40
 
 Top
OrmaJever
Отправлено: 01 Апреля, 2011 - 15:17:41
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Albertino пишет:
прописал эту функцию никаких ошибок не выводит, в логах пишет следующее

параметр в php.ini display_errors должен быть On.
Покажите 40 строку из этого файла.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Viper
Отправлено: 01 Апреля, 2011 - 15:19:15
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




Albertino собстно оно ошибку вам и выдало.
fopen находится в disabled_functions. Эт в конфиге PHP ищите.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Albertino
Отправлено: 01 Апреля, 2011 - 15:50:36
Post Id


Гость


Покинул форум
Сообщений всего: 92
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




40 и 41 строка скрипта
PHP:
скопировать код в буфер обмена
  1.  
  2. if (file_exists(LOG_FILE)) echo 'file exists<br>'; else echo "NO FILE<br>";
  3. $f = fopen( LOG_FILE, "rt", true) or die( "Error opening file " . LOG_FILE );
  4.  

вроде проверял disabled_functions там fopen нету есть только exec,passthru,popen,proc_open,shell_exec,system,dl,stream_socket_client,stream_socket_server,
socket_accept,socket_bind,socket_connect,socket_create_listen,socket_create_pair,socket_create,socket_listen,openlog,syslog,apache_get_modules,apache_get_version,apache_getenv,
apache_note,apache_setenv,apache_child_terminate,virtual

(Отредактировано автором: 01 Апреля, 2011 - 15:51:16)

 
 Top
JustUserR
Отправлено: 02 Апреля, 2011 - 21:23:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Albertino пишет:
Operation not permitted in D:\web\check_emails\check_emails.php on line 40
В качестве возможной причины осуществления некорректного функционирования предполагаемого PHP-приложения, допустимо рассмотрение локального ассоциированного уровня внешних привелений функционирующей программной соствояющей элементов, поддержание исполняемого потока которойпроизводится на основании CGI-совместимого интерфейса во вложенной дифференциированной группе сопоставленных процессов; в качестве допустимого варианта осуществления решения поставленной задачи, допустимо использования средств suexec или suphp соответственно


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Albertino
Отправлено: 04 Апреля, 2011 - 08:32:08
Post Id


Гость


Покинул форум
Сообщений всего: 92
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




Viper пишет:
Albertino собстно оно ошибку вам и выдало.
fopen находится в disabled_functions. Эт в конфиге PHP ищите.

В disabled_functions fopen нету, там есть только popen + те функции что я написал выше. Как сделать чтоб функция заработала, причем из дериктории самого сайта fopen работает, а вот из другой дериктории нет.
 
 Top
Viper
Отправлено: 04 Апреля, 2011 - 08:52:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




Albertino пишет:
Как сделать чтоб функция заработала, причем из дериктории самого сайта fopen работает, а вот из другой дериктории нет.
поясните!


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Albertino
Отправлено: 04 Апреля, 2011 - 09:35:04
Post Id


Гость


Покинул форум
Сообщений всего: 92
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




Viper пишет:
Albertino пишет:
Как сделать чтоб функция заработала, причем из дериктории самого сайта fopen работает, а вот из другой дериктории нет.
поясните!

ну тоесть если я использую функцию fopen для файлов находящихся в одной дериктории (дериктории сайта), например, рабочая директория сайта D:\web\ , то fopen файлы из этой директории открывает, а файлы из С:\E4\ нет
 
 Top
Viper
Отправлено: 04 Апреля, 2011 - 09:41:28
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




Albertino и не будет. У апача нет туда доступа. Если вам нужно чтобы так работало то, если не ошибаюсь, надо webDAV.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Albertino
Отправлено: 04 Апреля, 2011 - 10:11:56
Post Id


Гость


Покинул форум
Сообщений всего: 92
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




А если скрипт запускается через командную строку, те без использования Апача, то по идее webDAV не используется.
Ситуация заключается в следующем: мне надо прочитать логи почтового сервера, раньше сам постовый сервер и сайт распологались на одном диске, те D:\Eserv3\ и D:\web соответственно и все работало(скрипт запускался через рессписание, т.е. как
CODE (text):
скопировать код в буфер обмена
  1. D:\php\php.exe d:\web\check_mails.php
)
Но недавно мы сделали перустановку сервера и теперь почтовый сервер распологается на С диске.(пути к новым логам прописаны правильно, webDAV как модуля к апачу раньше не стояло), а может ли блокировка функции popen() блокировать fopen?
 
 Top
Viper
Отправлено: 04 Апреля, 2011 - 10:30:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




Albertino пишет:
а может ли блокировка функции popen() блокировать fopen
незнаю. попробуйте удалить её из списка disabled_functions.

Дело в том что Апач по умолчанию не имеет доступа к ресурсам ФС вне папки htdocs(или заданной в настройках). Можно как вариант создать алиас на необходимую папку и тогда для апача это будет как будто папка в пределах Document root.

И да. Если скрипт запускается через консоль то апач при это ситуация другая. Если вы пытаетесь выполнить к примеру php /var/webstorage/index.php то будет выполнено из указанного пути. Если же выполнить этот же скрипт из Document root (при Document root = к примеру /var/www/) то произойдет ошибка.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Apache и другие веб-серверы »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB