1

Я использую Raspberry Pi для размещения некоторого веб-сервиса (например, owncloud или gitlist). Недавно я добавил крошечный крошечный rss, все работает нормально, за исключением того, что apache ждет 30 секунд, чтобы отправить ответ на php-страницах, я смотрел вверх во время загрузки страницы, его apache, который ест процессор, а не php. И это только делает это с ttrss (крошечный крошечный rss), owncloud хорошо, так как я установил php-ac.

accessache из apache ничего не показывает до 30 секунд.

В файле error.log у меня есть:

[Sun Mar 17 10:23:17 2013] [error] [client 192.168.0.12] PHP Strict Standards:  Declaration of SanitizeDummy::sanitize() should be compatible with SimplePie_Sanitize::sanitize($data, $type, $base = '') in /var/www/ttrss/include/functions.php on line 14, referer: http://pi.local/ttrss/index.php

Каждый раз я загружаю страницу index.php, но ошибка появляется после зависания 30 сек (почти когда все загружено).

Он делает это только для index.php и prefs.php (и только когда пользователь вошел в систему, для страницы входа это быстро)

на странице ttrss говорят о php-ac, но я не заметил, что с ним что-то изменилось.

Это проблема конфигурации? Я не думаю, что сообщение об ошибке как-то связано с этим, но, возможно, я ошибаюсь

(Я уже спрашивал на raspberrypi.stackexchange.com, но мне сказали, что у меня может быть больше шансов здесь)

1 ответ1

1

Я уверен, что это происходит потому, что:

  • вы настроили tt-rss для обновления каналов, когда у вас открыта страница (параметр SIMPLE_UPDATE_MODE в config.php).
  • у вас есть несколько каналов, и tt-rss пытается обновить их при загрузке и превышении тайм-аута Apache, потому что вашему Raspberry не хватает ресурсов процессора для выполнения всего менее 30 секунд, и это ограничение по времени выполнения PHP.

Если это так, я рекомендую вам сделать следующее:

  • Измените вашу конфигурацию на:
    • 'SIMPLE_UPDATE_MODE', false
  • Запустите обновление ваших фидов в задании cron (у меня это есть в Debian и www-data, приспособьтесь к вашему конкретному случаю):

    */15 * * * * cd /usr/share/tt-rss/www && /usr/bin/php update.php -feeds > /dev/null

Я предпочитаю выпускать ошибки, чтобы уловить проблемы. Если вы используете последнюю версию (1.7.4 на момент написания этой статьи), вы получите ошибку Sanitize, которую вы вставили в свой вопрос. Это связано со скриптом update.php, но в остальном это фальшивка; патч для его исправления - https://github.com/gothfox/Tiny-Tiny-RSS/commit/3fd035f5eb56c96b163d99503ae20f79691a4e75.

Подробнее об обновлении каналов в tt-rss: http://tt-rss.org/redmine/projects/tt-rss/wiki/UpdatingFeeds

Отказ от ответственности: мне не нравится подход update_daemon2.php, потому что процесс может умереть, и никто не скажет вам, поэтому вам нужно будет запустить его через daemontools или что-то подобное, чтобы убедиться, что он всегда работает. Более того, если вы обновите код, вам потребуется остановить его, чтобы перезагрузить новый код.

Я надеюсь, что это помогает.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .