읽기 전에:
- PHP가 확장 프로그램을 로드하지 않습니다.Apache가 없기 때문에 내 질문에 대답하지 않습니다. IIS가 있습니다.
- PHP의 MySQL 확장이 작동하지 않습니다.파일이 다른 모든 DLL 파일과 동일한 권한을 갖고 있고 상속이 중단되지 않았기 때문에 내 질문에 대답하지 않습니다.
- IIS의 PHP가 sqlsrv 확장을 로드하지 않습니다.항목이 최신 버전이기 때문에 내 질문에 대답하지 않습니다.
현재 Redis(PhpRedis 사용)를 추가하는 PHP 스크립트가 있습니다.
<?php
$redis = new Redis ();
?>
그러면 "500 내부 서버 오류" 메시지가 생성됩니다. PHP 7.4 x64의 로그를 살펴보면,이곳에 위치해 있음에도 불구하고, 페이지를 로드하면 오류가 발생합니다.
[06-Aug-2021 15:54:13 UTC] PHP Warning: PHP Startup: Unable to load dynamic library 'php_redis.dll' (tried: C:\Program Files\PHP\v7.4\ext\php_redis.dll (The specified module could not be found.), C:\Program Files\PHP\v7.4\ext\php_php_redis.dll.dll (The specified module could not be found.)) in Unknown on line 0
다음 항목으로 인해 잘못된 위치에서 검색되지 않거나 추가되지 않았습니다 php.ini
.
[WebPIChanges]
extension_dir="C:\Program Files\PHP\v7.4\ext\"
...
[ExtensionList]
extension=php_redis.dll
...
IIS~할 수 있다확장 관리자에서 redis 플러그인을 감지하고 활성화되어 있음을 나타냅니다.
이 문제는 v7.4에서 발생합니다. v8.0에서 이것을 시도했지만 여전히 동일한 문제에 직면합니다. PhpRedis 5.3.4는 v7.4 DLL을 제공하지만 종속성을 인식하지 못한 채 여전히 동일한 문제가 발생합니다.
답변1
문제가 해결되었습니다. 내 컴파일된 PHP 버전은 스레드 안전 기능을 지원하지 않으므로 스레드 안전이 포함된 버전을 컴파일하거나 NTS 버전의 PhpRedis를 사용해야 합니다.