>  Q&A  >  본문

PHP 치명적인 오류: crontab에서 WP-CLI 명령을 cron-job으로 실행할 때 필수 'wp-salt.php'를 열 수 없습니다

이 질문은 운 좋게도 이미 해결책을 찾았기 때문에 다른 사람들이 찾을 수 있도록 정보를 제공하기 위한 게시물입니다.

Cloudways 서버의 crontab에서 Wordpress-CLI 명령을 cron 작업으로 실행해 보았습니다. 이 명령은 터미널에서 직접 문제 없이 실행되지만 crontab을 사용하여 실행하면 치명적인 PHP 오류로 인해 실패합니다.

Wordpress-CLI의 기본 명령은 다음과 같습니다.

wp migeratedb 配置文件 [id]

crontab이 실행되는 컨텍스트는 일반적으로 알 수 없고 $PATH 변수를 사용하지 못할 수 있으므로 필요한 절대 경로를 제공하도록 명령을 수정했습니다.

/usr/local/bin/wp migeratedb 配置文件 [id] --path=/absolute/path/to/wordpress/core/files

마찬가지로 이 수정된 명령도 터미널에서 실행할 때 문제 없이 완벽하게 실행됩니다.

최종 crontab 항목은 다음과 같습니다:

0 5 * * * /usr/local/bin/wp migeratedb 配置文件 [id] --path=/absolute/path/to/wordpress/core/files

스케줄러에서 실행하면 다음 오류가 발생합니다.

으아아아

몇 가지 실험 끝에 이 오류는 매우 기본적인 명령을 제외한 모든 WP-CLI 명령에서 발생한다는 것을 깨달았습니다

wp --info

, 다음과 같은 출력이 생성됩니다.

으아아아

저는 또한 다음과 같은 적응을 시도했지만 성공하지 못했습니다.

P粉253518620P粉253518620179일 전370

모든 응답(1)나는 대답할 것이다

  • P粉790187507

    P粉7901875072024-03-29 00:01:24

    나는 마침내 이 오류가 호스팅 공급자(이 경우 Cloudways)가 wp-config.php 파일에서 WordPress 구성을 설정하는 방식과 관련이 있다는 것을 알아냈습니다.

    솔트 및 비밀 인증 키는 오류 메시지에서 참조되는 wp-salt.php。它可以通过以下方式直接在配置文件中引用:require('wp-salt.php') 별도의 파일에 저장됩니다. 이것은 WordPress 코어의 일부가 아니고 crontab이 다른 환경에서 실행되고 있기 때문에 파일이 있는 올바른 디렉터리를 결정할 수 없으며 require() 치명적인 오류와 함께 실패합니다.

    이 문제를 해결하려면 wp-config.php 中的行更改为 require(__DIR__.'/wp-salt.php');의 줄을 require(__DIR__.'/wp-salt.php');로 변경하여 해당 파일이 항상 구성 파일과 동일한 디렉터리에서 참조되도록 하세요.

    또 다른 옵션은 WordPress 코어처럼 줄을 완전히 제거하고 wp-salt.php 파일의 콘텐츠로 바꾸는 것입니다.

    회신하다
    0
  • 취소회신하다