시간 및 시간 초과로 Centos에서 PHP 스크립트 실행

시간 및 시간 초과로 Centos에서 PHP 스크립트 실행

centos()에서 PHP 스크립트를 실행하고 싶은데 /usr/bin/php file.php실행하는 데 시간이 오래 걸리고 실행 중에 실행이 중지되고 오류가 발생하지 않습니다. 그리고 내 PHP 코드에는 전혀 버그가 없다고 확신합니다(여러 가지 방법으로 테스트했습니다). 실행 시간 문제인 것 같습니다.
내 질문은 다음과 같습니다

  • 내 서버에 스크립트 실행을 방해하는 시간 초과 오류가 있을 수 있습니까?
  • 그렇다면 서버가 더 오랜 시간 동안 시간 초과 오류를 표시하도록 어떻게 설정할 수 있습니까?

감사해요.

답변1

명령줄이나 쉘 스크립트, cron 작업 등에서 실행되는 PHP 스크립트에는 시간 초과가 없습니다.

CLI에서 PHP를 호출할 때 의도적으로 최대 실행 시간을 설정할 수도 없습니다. 에 전화할 수 있지만 set_time_limit(n)아무 효과가 없습니다.

예를 들어, max_execution_time이 CLI에 영향을 미치는 경우 다음 스크립트는 "done"을 인쇄해서는 안 되지만 다음을 인쇄합니다.

<?php

set_time_limit(5);
print ini_get('max_execution_time') . "\n";
sleep(10);
print "done.\n";

보고되지 않은 오류가 발생했을 수 있습니다. 전체 오류 보고가 활성화되어 있는지 확인하세요.

error_reporting(E_ALL);

답변2

스크립트에 오류가 없다고 확신하고 명령줄에서 실행 중인 경우 다음을 수행할 수 있습니다.

  1. 시간 초과에 대한 이론을 테스트해 보세요. 오랫동안 아무 작업도 하지 않는 더미 스크립트(예: 중첩 루프)를 작성해 보세요. 완료되기 전에 중지되나요?
  2. 코드의 메모리 요구 사항을 분석합니다.https://github.com/arnaud-lb/php-memory-profiler.
  3. 동일한 스크립트를 실행해 보십시오. 가능성은 낮지만 환경에 문제가 있을 수 있습니다.

오류가 없고 필요한 리소스를 사용할 수 있으면 스크립트를 실행할 수 없는 이유가 없습니다.

관련 정보