Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Nebiros
33 / 33 / 16
Регистрация: 23.03.2010
Сообщений: 2,079
1

Открытие файла

26.09.2015, 17:42. Просмотров 371. Ответов 15
Метки нет (Все метки)

Ранее файл открывался таким способом
PHP
1
$handle = fopen('/etc/room/cn.conf', "r");
но теперь по какой то причине (даже не знаю почему) он перестал открываться, так же пробую по этому же пути проверить файл на существование file_exists, тоже не находит,но через фтп я вижу что он есть и права у него 777.
Каким образом его можно прочитать?
Причем файл находится ниже базовой директории
/etc/room/cn.conf тут файл
/webapps/mysite/..... а базовая директория указывается такая
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2015, 17:42
Ответы с готовыми решениями:

Открытие файла на сервере
Мне надо открыть файл на сервере для чтения Например я делаю так if ($ft=fsockopen("www.ukr.net",...

Открытие файла php
Привет, нужно как то открыть файл php при успешной авторизации. if (mysql_num_rows($sql) == 1)...

Открытие pdf-файла в браузере
Как средствами php открыть pdf файл в браузере?

Запрет на открытие файла напрямую
Есть например 2 файла 1 - index.php 2 - index.tpl: Как сделать так что бы файл index.tpl можно...

Создание файла и его открытие
Почему, если text.txt файл открыт, то ничего не сообщается? $filename = 'text.txt'; ...

15
Aldin
Заблокирован
26.09.2015, 18:17 2
Возможно относительный путь указан неправильно. Попробуй скрип, который открывает этой файл засунуть в директорию room и отрыть вот так
PHP
1
$handle = fopen('cn.conf', "r");
0
Nebiros
33 / 33 / 16
Регистрация: 23.03.2010
Сообщений: 2,079
26.09.2015, 22:59  [ТС] 3
Цитата Сообщение от Aldin Посмотреть сообщение
Возможно относительный путь указан неправильно
как то оно раньше же работало, может где то что то в настройках накручено...
Цитата Сообщение от Aldin Посмотреть сообщение
Попробуй скрип, который открывает этой файл засунуть в директорию room
я не могу там его запустить, это как системная директория или как то так...
0
Aldin
Заблокирован
26.09.2015, 23:23 4
Вот тебе вариант
PHP
1
2
$h =$_SERVER['DOCUMENT_ROOT'];
$handle = fopen("$h/etc/room/cn.conf", "r");
0
26.09.2015, 23:23
Nebiros
33 / 33 / 16
Регистрация: 23.03.2010
Сообщений: 2,079
26.09.2015, 23:31  [ТС] 5
Цитата Сообщение от Aldin Посмотреть сообщение
Вот тебе вариант
и получился путь /webapps/mysite/etc/room/cn.conf
что не соответствует действительности
файл лежит глубже ...
0
Aldin
Заблокирован
26.09.2015, 23:37 6
Цитата Сообщение от Nebiros Посмотреть сообщение
что не соответствует действительности
Пых не ошибается. Ошибки делаем мы... так всегда бывает.
0
Nebiros
33 / 33 / 16
Регистрация: 23.03.2010
Сообщений: 2,079
26.09.2015, 23:53  [ТС] 7
Цитата Сообщение от Aldin Посмотреть сообщение
Пых не ошибается. Ошибки делаем мы... так всегда бывает.
покажу как каталоги выглядят
/
/bin/
/boot/
/etc/room/ <-- прочесть нужно из этой папки
/webapps/mysite/ <-- а это якобы корень сайта

../ таким образом пытался опуститься ниже в каталог но не получается
0
Aldin
Заблокирован
27.09.2015, 00:14 8
Цитата Сообщение от Nebiros Посмотреть сообщение
../ таким образом пытался опуститься ниже в каталог но не получается
Таким образом ты проверяешь все каталоги выше на один уровень.
0
pav1uxa
1890 / 1733 / 814
Регистрация: 23.01.2014
Сообщений: 6,138
Завершенные тесты: 1
27.09.2015, 09:23 9
Цитата Сообщение от Nebiros Посмотреть сообщение
он перестал открываться
Как выглядит ошибка php целиком?
0
Nebiros
33 / 33 / 16
Регистрация: 23.03.2010
Сообщений: 2,079
27.09.2015, 09:32  [ТС] 10
Цитата Сообщение от pav1uxa Посмотреть сообщение
Как выглядит ошибка php целиком?
как то раньше не додумался включить показ ошибок...
HTML5
1
2
Warning: fopen(): open_basedir restriction in effect. File(/etc/room/cn.conf) is not within the allowed path(s): 
Warning: fopen(/etc/room/cn.conf): failed to open stream: Operation not permitted
что это означает что нет прав на открытие?
у файла 777 права...
0
a-fw
Заблокирован
27.09.2015, 10:21 11
Nebirosникогда не используйте относительные пути при работе с файлами и проблем не будет
0
Nebiros
33 / 33 / 16
Регистрация: 23.03.2010
Сообщений: 2,079
27.09.2015, 10:24  [ТС] 12
Цитата Сообщение от a-fw Посмотреть сообщение
Nebirosникогда не используйте относительные пути при работе с файлами и проблем не будет
И что тогда посоветуете в данном моменте делать?
0
a-fw
Заблокирован
27.09.2015, 10:30 13
если ваш скрипт в корне сайта, а описанная вами структура каталогов верна, тогда путь к файлу
PHP
1
$handle = fopen(__DIR__.'/../../etc/room/cn.conf', "r");
__DIR__ всегда содержит путь к директории в которой в настоящий момент выполняется скрипт.

Добавлено через 1 минуту
прошу прощения у вас и так абсолютный путь если мы в линуксе . забудьте что я вам написал
0
pav1uxa
1890 / 1733 / 814
Регистрация: 23.01.2014
Сообщений: 6,138
Завершенные тесты: 1
27.09.2015, 10:53 14
Цитата Сообщение от Nebiros Посмотреть сообщение
что это означает что нет прав на открытие?
у файла 777 права...
Это означает, что на сервере настроена директива php open_basedir. Она определяет директорию, за пределы которой PHP не может выходить.
; open_basedir, if set, limits all file operations to the defined directory
; and below. This directive makes most sense if used in a per-directory
; or per-virtualhost web server configuration file. This directive is
; *NOT* affected by whether Safe Mode is turned On or Off.
; http://php.net/open-basedir
;open_basedir =
И как Вы там эти пути не прописывайте - ничего не получится.

Как исправить - обратитесь к тому, кто установил это ограничение (это же хостинг у Вас какой-то как я понимаю? тогда в суппорт хостинга)
0
Nebiros
33 / 33 / 16
Регистрация: 23.03.2010
Сообщений: 2,079
27.09.2015, 11:07  [ТС] 15
Цитата Сообщение от pav1uxa Посмотреть сообщение
Как исправить - обратитесь к тому, кто установил это ограничение (это же хостинг у Вас какой-то как я понимаю? тогда в суппорт хостинга)
работало все нормально, потом один "помощник" в линьке что-то настраивал (я не в курсе что именно) после этого перестало работать. Может есть какие то команды в линьке которые это могут разрешать или запрещать?
Или в настройках сервера где-то нужно переменную поменять? так то у меня полный доступ к серверу...

Добавлено через 47 секунд
С тем "помощником" связи нету, так что узнать что именно он менял я не могу сказать....
0
pav1uxa
1890 / 1733 / 814
Регистрация: 23.01.2014
Сообщений: 6,138
Завершенные тесты: 1
27.09.2015, 11:10 16
Nebiros, не знаю что еще за "линька" там у Вас.

Для начала, посмотрите php.ini что там с настройкой open_basedir =

Потом определитесь, хотя бы, какой у Вас сервер. В его конфигах также поищите директиву open_basedir
0
27.09.2015, 11:10
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.09.2015, 11:10

Mod_rewrite и открытие PDF файла по ссылке
Здравствуйте! Не могу открыть PDF файл по ссылке. На сайте открываю страницу с руководством...

Открытие php файла сайта в браузере
Добрый день. Как сделать так, чтобы когда я захожу в браузере в папку своего сайта он по умолчанию...

Открытие текстового файла через форму
Доброго всем вечера! Помоги пожалуйста с задачкой. Есть логи которые хранятся в текстовом виде....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.