일부 페이지에 대한 응답을 보내기 전에 아파치 “대기”30 초 PHP 페이지의 회신을 보내기 위해 30 초

owncloud 또는 gitlist와 같은 일부 웹 서비스를 호스팅하기 위해 라즈베리 파이를 사용합니다. 최근에 작은 작은 rss를 추가했는데, 아파치가 PHP 페이지의 회신을 보내기 위해 30 초 동안 대기하는 것을 제외하고는 모든 것이 잘 작동합니다. 그리고 그것은 ttrss (작은 작은 rss)로만 수행합니다 .php-ac를 설치 한 후 owncloud가 좋습니다.

apache의 access.log는 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을 요청했지만 여기에 더 많은 기회가 있다고 말했습니다.)



답변

나는 그것이 다음과 같은 이유로 발생한다고 확신합니다.

  • 페이지를 연 상태에서 피드를 업데이트하도록 tt-rss를 구성했습니다 (config.php의 SIMPLE_UPDATE_MODE 매개 변수).
  • 당신은 많은 피드를 가지고 있으며 tt-rss는로드시 Apache를 업데이트하려고 시도하고 있으며 Apache는 30 초 미만의 모든 작업을 수행 할 수있는 CPU 전력이 없기 때문에 PHP 실행 시간 제한이기 때문에 Apache 시간이 초과되었습니다.

이 경우 다음을 수행하는 것이 좋습니다.

  • 구성을 다음으로 변경하십시오.
    • ‘SIMPLE_UPDATE_MODE’, 거짓
  • 크론 작업에서 피드 업데이트를 실행하십시오 (데비안 및 www-data에서 해당 상황에 맞게 조정).

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

문제를 잡기 위해 오류를내는 것을 선호합니다. 최신 릴리스 (이 글을 쓰는 시점에서 1.7.4)를 사용하면 질문에 붙여 넣은 살균 오류가 발생합니다. 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 또는 비슷한 것을 통해 실행해야합니다. 또한 코드를 업데이트하는 경우 새 코드를 다시로드하려면 코드를 중지해야합니다.

도움이 되길 바랍니다.


답변