allow_url_include = On (но не инклудит)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС для молодых и начинающих системных администраторов.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
Gaargot
Сообщения: 34

allow_url_include = On

Сообщение Gaargot »

Доброго времени суток!
указываю путь вида

Код: Выделить всё

include('forum/123.php')
- все хорошо,
указываю путь вида

Код: Выделить всё

include('http://сайт/forum/123.php')
- получаю предупреждения о failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found и скрипт не работает...
если я прав, за возможность инклудить с адресов вида http:// отвечает директива allow_url_include и значение у нее On. Понимаю, что связано с настройками php, но вот с какими...Подскажите пожалуйста!
Если имеет значение, то: Apache/2.2.13 (FreeBSD) mod_ssl/2.2.13 OpenSSL/0.9.8e DAV/2 PHP/5.2.11 with Suhosin-Patch.
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: allow_url_include = On

Сообщение KiWi »

HTTP/1.0 404 Not Found

Какое из слов перевести?
Спасибо сказали:
Аватара пользователя
Gaargot
Сообщения: 34

Re: allow_url_include = On

Сообщение Gaargot »

зачем?
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: allow_url_include = On

Сообщение KiWi »

Gaargot писал(а):
21.01.2010 18:16
зачем?

Не знаю. Делать нечего -- вот и спрашиваю. А к "проблеме", которой нет, это, естественно, никакого отношения не имеет.
Спасибо сказали:
Аватара пользователя
Gaargot
Сообщения: 34

Re: allow_url_include = On

Сообщение Gaargot »

Ваш ответ наверно не на мой вопрос. Хотя вас никто и не заставляет на него отвечать. Тема плавно закрылась...
Спасибо сказали:
Аватара пользователя
danger08
Сообщения: 715
ОС: Linux (CentOS, Ubuntu)

Re: allow_url_include = On

Сообщение danger08 »

Gaargot писал(а):
22.01.2010 04:58
Ваш ответ наверно не на мой вопрос. Хотя вас никто и не заставляет на него отвечать. Тема плавно закрылась...

Может, стоит проверить http://сайт/forum/123.php напрямую, из браузера? Что скажет?
И в error-логах веб-сервера "сайт" стоит посмотреть.
Блогосайт - http://www.fateyev.com
Спасибо сказали:
Аватара пользователя
Gaargot
Сообщения: 34

Re: allow_url_include = On

Сообщение Gaargot »

danger08 писал(а):
22.01.2010 05:11
Может, стоит проверить http://сайт/forum/123.php напрямую, из браузера? Что скажет?
И в error-логах веб-сервера "сайт" стоит посмотреть.

да да, напрямую - работает, и из кода тоже, если указать относительный путь. не получается только когда полный урл...
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: allow_url_include = On

Сообщение KiWi »

Gaargot писал(а):
22.01.2010 05:42
danger08 писал(а):
22.01.2010 05:11
Может, стоит проверить http://сайт/forum/123.php напрямую, из браузера? Что скажет?
И в error-логах веб-сервера "сайт" стоит посмотреть.

да да, напрямую - работает, и из кода тоже, если указать относительный путь. не получается только когда полный урл...

В HTTP нет относительных путей -- это раз.
http://en.wikipedia.org/wiki/HTTP_404 -- это два. Раз говорится, что нет -- то выясняйте почему нет. Либо сами не можете набрать адрес своего же сайта, либо PHP ищет сайт где-то по другому адресу -- VirtualHost'ы криво настроены, DNS'ы закешировались и т.д. и т.п. Стоит начинать с access_log'ов сервера, а дальше -- tcpdump и так далее. Стандартный процесс деббагинга. Очень может помочь банальный wget -- при правильно подходе он покажет и запросы, и ответы, и куда они уходят.
Орать что "не работает" и "что исправить в PHP" стоит только после нормальной проверки, что оно действительно не работает. И не какого-то гавёного "http://сайт/forum/123.php", про который неизвестно -- существует ли он или это какой-то местный самопал, а с достоверно нормально настроенных и работоспособных http://ya.ru, http://google.com и т.п.
Делать include нелокальных адресов -- плохо, ещё более плохо -- делать include адресов, к которым есть локальный доступ. Если приспичит, то для этих целей есть специальные инструменты, тот же curl -- это четыре.
Спасибо сказали:
Аватара пользователя
.snif
Сообщения: 216
Статус: ..::[SnifeR]::..
ОС: Debian 5.0

Re: allow_url_include = On

Сообщение .snif »

Gaargot писал(а):
21.01.2010 17:36
HTTP request failed! HTTP/1.0 404 Not Found

это говорит о том, что файла не существует :)
Спасибо сказали:
Аватара пользователя
Gaargot
Сообщения: 34

Re: allow_url_include = On

Сообщение Gaargot »

KiWi писал(а):
23.01.2010 00:44
В HTTP нет относительных путей -- это раз.
http://en.wikipedia.org/wiki/HTTP_404 -- это два. Раз говорится, что нет -- то выясняйте почему нет. Либо сами не можете набрать адрес своего же сайта, либо PHP ищет сайт где-то по другому адресу -- VirtualHost'ы криво настроены, DNS'ы закешировались и т.д. и т.п. Стоит начинать с access_log'ов сервера, а дальше -- tcpdump и так далее. Стандартный процесс деббагинга. Очень может помочь банальный wget -- при правильно подходе он покажет и запросы, и ответы, и куда они уходят.
Орать что "не работает" и "что исправить в PHP" стоит только после нормальной проверки, что оно действительно не работает. И не какого-то гавёного "http://сайт/forum/123.php", про который неизвестно -- существует ли он или это какой-то местный самопал, а с достоверно нормально настроенных и работоспособных http://ya.ru, http://google.com и т.п.
Делать include нелокальных адресов -- плохо, ещё более плохо -- делать include адресов, к которым есть локальный доступ. Если приспичит, то для этих целей есть специальные инструменты, тот же curl -- это четыре.

Ну вот! Большое спасибо, возможно виртуал хосты, да. Достаточно развернутый ответ, хотя и хамоватый. И извините, не хотел довести вас до истерики!!! :-) Вообще я не просил перевода, а задал вопрос с просьбой разобраться - почему урл не найден, вы были не очень внимательны. Просто попросил помочь, хотя и не обязательно вас. Еще раз, спасибо.
Спасибо сказали:
Аватара пользователя
Frank
Сообщения: 1059
ОС: Ubuntu, Debian

Re: allow_url_include = On

Сообщение Frank »

Gaargot писал(а):
22.01.2010 05:42
danger08 писал(а):
22.01.2010 05:11
Может, стоит проверить http://сайт/forum/123.php напрямую, из браузера? Что скажет?
И в error-логах веб-сервера "сайт" стоит посмотреть.

да да, напрямую - работает, и из кода тоже, если указать относительный путь. не получается только когда полный урл...

Проверять надо непосредственно на сервере. А то, может быть, "сайт" прописан в хосты на вашем компьютере, а сервер без понятия, что такое этот "сайт", поэтому и 404.
Изображение
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: allow_url_include = On

Сообщение KiWi »

Gaargot писал(а):
23.01.2010 06:24
KiWi писал(а):
23.01.2010 00:44
В HTTP нет относительных путей -- это раз.
http://en.wikipedia.org/wiki/HTTP_404 -- это два. Раз говорится, что нет -- то выясняйте почему нет. Либо сами не можете набрать адрес своего же сайта, либо PHP ищет сайт где-то по другому адресу -- VirtualHost'ы криво настроены, DNS'ы закешировались и т.д. и т.п. Стоит начинать с access_log'ов сервера, а дальше -- tcpdump и так далее. Стандартный процесс деббагинга. Очень может помочь банальный wget -- при правильно подходе он покажет и запросы, и ответы, и куда они уходят.
Орать что "не работает" и "что исправить в PHP" стоит только после нормальной проверки, что оно действительно не работает. И не какого-то гавёного "http://сайт/forum/123.php", про который неизвестно -- существует ли он или это какой-то местный самопал, а с достоверно нормально настроенных и работоспособных http://ya.ru, http://google.com и т.п.
Делать include нелокальных адресов -- плохо, ещё более плохо -- делать include адресов, к которым есть локальный доступ. Если приспичит, то для этих целей есть специальные инструменты, тот же curl -- это четыре.

Ну вот! Большое спасибо, возможно виртуал хосты, да. Достаточно развернутый ответ, хотя и хамоватый. И извините, не хотел довести вас до истерики!!! :-) Вообще я не просил перевода, а задал вопрос с просьбой разобраться - почему урл не найден, вы были не очень внимательны. Просто попросил помочь, хотя и не обязательно вас. Еще раз, спасибо.

Что подкрутить в PHP, чтобы заработал include http:// -- ровно тот первоначальный вопрос, точнее отсутствие вопроса как такового. Ответ: ничего, PHP работает так, как и должен.
Почему при запросе из скрипта выдаётся ошибка 404 -- вот здесь да, можно подумать. Но, согласитесь, эти два вопроса координально отличаются. Да и для проверки второго не было сделано ровно НИ-ЧЕ-ГО, так что сама проблема не была осознана. Собственно, как и возможные причины её возникновения, так что сейчас сваливать всё на некую "невнимательность" отвечающего не стоит -- не катит отмаза. А нормальный ход мыслей нормально человека:
Адрес не найден. Почему? Из-за скрипта, или из-за сервера. Далее следует попытка запуска скрипта на своём домашнем компе. Далее -- либо ковыряния скрипта(если и на домашнем компе будет так же) на предмет фильтраций, либо ковыряния сервера(если скрипт на домашнем компе заработает) -- попытка скачать файл с самого сервера, посмотреть оттуда ли скачивает(если не оттуда, то почему), если оттуда, то почему 404 и чем различаются запросы с домашнего компьютера и с сервера.

Кстати, сам скрипт может выдавать 404 Not Found, если запрос идёт от "левого" браузера. А ещё -- скрипт может абсолютно всем выдавать 404 Not Found вместе с нормальной страницей под видом страницы с ошибкой. А ещё -- 404 может вываливаться, если отсутствуют определённые cookie, а ещё... Есть тысяча вариантов.

А я совершенно спокоен -- пара лет общения с людьми просто так не проходит. Просто в одном случае человеку можно открыто сказать, что он дебил, в другом -- намекнуть, что он дебил, а за дебилизм стоит платить денюжку.
Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: allow_url_include = On

Сообщение Ленивая Бестолочь »

iУведомление от модератора
переношу в "администрирование для начинающих"
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали: