16.09.2007, 13:15 | #1 |
Новичок
Регистрация: 16.09.2007
Сообщений: 31
Вес репутации: 208
|
Система не видит код на странице, пока не включу force_show_code
Добрый день.
Развернул папку, поставил права, установил код. На странице пусто. Захожу в SAPE.RU, вбиваю сайт - говорит проверьте установку кода. Если ставлю force_show_code=true, то на странице по прежнему НИЧЕГО не показывается, но зато SAPE нормально все находит и начинает индексировать сайт. ИМХО это хак, который непонятно как скажется на работоспособности в дальнейшем. Что делать? Дополнительная информация: 1. Код PHP выполняется, из вышесказанного это понятно. 2. В links.db записи добавляются a:3:{s:18:"__sape_delimiter__";s:0:"";s:16:"__sape _new_url__";s:17:"<!--check code-->";s:12:"__sape_ips__";a:5:{i:0;s:13:"81.176.228.7 3";i:1;s:13:"87.242.7 4.101";i:2;s:14:"81.176.230.132";i:3;s:13:"81.176. 228.49";i:4;s:13:"80.251.136.38";}} 3. Окружение: php-5.1.6-12.el5 php-cli-5.1.6-12.el5 php-common-5.1.6-12.el5 php-devel-5.1.6-12.el5 php-ldap-5.1.6-12.el5 php-mbstring-5.1.6-12.el5 php-mysql-5.1.6-12.el5 php-pdo-5.1.6-12.el5 4. Файрвол опущен, SELinux выключен 5. Стоит Front-End (nginx 0.5.31)\Back-End (apache httpd httpd-2.2.3-7.el5.centos) Фронт отдает на апач запрос с передачей полей: proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE_ADDR $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 6. Код установлен несколько дней назад, т.е. свежий. 7. Код расположен в отдельном файле, но подключается НЕ через подзапрос. require_once( dirname(__FILE__) . '/templates/tables4.php'); 8. Проблема скорее всего не в сайте, а в коде либо сервере, т.к. стоит несколько сайтов, ни один SAPE не увидел без force_show_code Спасибо. Последний раз редактировалось sdvv; 16.09.2007 в 13:18. |
16.09.2007, 20:12 | #3 |
Администратор
Регистрация: 22.11.2006
Сообщений: 5,868
Вес репутации: 21475171
|
|
17.09.2007, 00:42 | #4 | ||
Новичок
Регистрация: 16.09.2007
Сообщений: 31
Вес репутации: 208
|
Спасибо за помощь. К сожалению эту подсказку я читал, но, похоже, это не мой случай и вот почему:
1. ИЩЕМ "ВЫВОДИТСЯ КОММЕНТАРИЙ" Я тоже ожидал, что Цитата:
Вот как подключается: <?php define('_SAPE_USER', '1*******************'); require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'); $o['force_show_code'] = true; $o['verbose'] = true; $sape = new SAPE_client($o); echo "SAPE START"; $sape->return_links(); echo "SAPE STOP"; ?> Вот что в HTML: SAPE STARTSAPE STOP Т.е. нет никакого вывода комментария. 2. ПРОВЕРЯЕМ ОКРУЖЕНИЕ Создаю файлик info.php с вызовом phpinfo и вижу следующее в выводе: Apache Environment HTTP_HOST mrate.net HTTP_X_REAL_IP 195.34.***.*** HTTP_REMOTE_ADDR 195.34.***.*** HTTP_X_FORWARDED_FOR 195.34.***.*** SERVER_NAME mrate.net SERVER_ADDR 127.0.0.1 SERVER_PORT 80 REMOTE_ADDR 127.0.0.1 REQUEST_URI /info.php SCRIPT_NAME /info.php HTTP Request Headers HTTP Request GET /info.php HTTP/1.0 Host mrate.net X-Real-IP 195.69.***.*** REMOTE_ADDR 195.69.***.*** X-Forwarded-For 195.69.***.*** Т.е., как видите, переменная HTTP_HOST отдается корректно. Также я не понял как может быть вот такое Цитата:
Имхо используемые переменные переданы корректно. Также непонятно, почему нет никакого воздействия директивы verbose? Спасибо Последний раз редактировалось Ank; 20.09.2007 в 14:48. |
||
19.09.2007, 18:54 | #6 |
Администратор
Регистрация: 22.11.2006
Сообщений: 5,868
Вес репутации: 21475171
|
|
21.09.2007, 12:42 | #8 |
Новичок
Регистрация: 16.09.2007
Сообщений: 31
Вес репутации: 208
|
Благодаря Avalon и персоналу SAPE проблема решилась быстро, за что им отдельная благодарность.
Теперь, собственно пояснение: Похожая проблема может быть у пользователей, использующих Front-End(nginx, lighttpd etc.) или Reverse Proxy(squid etc.) на сервере, к сожалению таких много. Возможны проблемы для пользователей, которые ходят через Proxy. Причина: В настоящее время скрипт sape ориентируется на поле REMOTE_ADDR для определения адреса клиента. Вполне очевидно, что в нашем случае это будет адрес Front-End или Proxy (как правило, если Front-End стоит на том-же сервере - 127.0.0.1). При этом настоящие значения принято заносить в HTTP_X_REAL_IP и HTTP_REMOTE_ADDR. Как лечить: Пока в sape.php не внесли изменения (надеюсь, что их внесут), вот решение персонала SAPE (вставить в начало подключения скрипта) $_SERVER[REMOTE_ADDR] = $_SERVER[HTTP_REMOTE_ADDR]; вот моя вариация на тему их решения, ИМХО более верная. Это если не вмешиватся в sape.php if (isset($_SERVER['HTTP_X_REAL_IP'])) $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_REAL_IP']; else { if (isset($_SERVER['HTTP_REMOTE_ADDR'])) $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_REMOTE_ADDR']; } Полностью подключение выглядит вот так: <?php define('_SAPE_USER', '****'); require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'); if (isset($_SERVER['HTTP_X_REAL_IP'])) $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_REAL_IP']; else { if (isset($_SERVER['HTTP_REMOTE_ADDR'])) $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_REMOTE_ADDR']; } $sape = new SAPE_client(); echo $sape->return_links(); ?> Все. Надеюсь это будет полезным. Спасибо персоналу SAPE за быструю и квалифицированную помощь. Последний раз редактировалось Ank; 21.09.2007 в 12:52. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ни на одной странице сайта пока не найден контекстный код. | Madjack | Контекстные ссылки и все, что с ними связано | 10 | 29.07.2008 08:51 |
При регистрации сайта система не видит код для Джумлы | ArCher1981 | Вопросы от новичков | 3 | 16.03.2008 00:01 |
Пока молчит поддержка наблюдаю | Gamburger | Вопросы по работе системы | 6 | 19.02.2008 17:07 |
Продается Znakomix.net Pr 2 Тиц пока 0 | s0s0s0s | Деловое сотрудничество | 17 | 15.01.2008 17:42 |
Система не видит ссылки, саппорт молчит | rudomilov | Ошибки при работе с системой | 9 | 18.07.2007 19:03 |
Часовой пояс GMT +3, время: 04:16.