복붙노트

[REDIS] 치명적인 오류 : 찾을 수없는 클래스 '레디 스'

REDIS

치명적인 오류 : 찾을 수없는 클래스 '레디 스'

나는 phpredis 확장 내 우분투 14 서버에 레디 스를 설치했습니다. Nginx에 서버를 사용하여 임. 나는 PHP 테스트 스크립트가

$redis=new Redis() or die("Cannot load Redis module.");
$redis->connect('localhost');
$redis->set('random', rand(5000,6000));
echo $redis->get('random');

웹 브라우저에서 명령 줄에서 미세하지만 작동된다.

Nginx의 오류 로그 :

[info] 31102#0: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf:82
[error] 31108#0: *21 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Class 'Redis' not found in...

i)는 (심지어은 phpinfo에서 볼 수 없습니다

모든 설치 apt-get을 설치

다른 모든 모듈 (MySQL은, ImageMagick를 ...) 작업 좋은

내가 구글에 몇 시간을 소비했지만 유용한 아무것도 발견하지 않았습니다

해결법

  1. ==============================

    1.당신은 레디 스하지만 PHP - 레디 스를 설치했습니다. PHP - 레디 스를 설치하려면 아래에 당신은 단순히 명령을 실행할 수 있습니다

    당신은 레디 스하지만 PHP - 레디 스를 설치했습니다. PHP - 레디 스를 설치하려면 아래에 당신은 단순히 명령을 실행할 수 있습니다

    sudo apt-get install php-redis
    
  2. ==============================

    2.PHP는 레디 스의 수동 설치는이 문제를 해결

    PHP는 레디 스의 수동 설치는이 문제를 해결

    git clone git://github.com/nicolasff/phpredis.git
    cd phpredis
    phpize
    ./configure
    make
    sudo -s make install
    
    sudo -s
    echo "extension=redis.so">/etc/php5/conf.d/redis.ini
    ln -s /etc/php5/conf.d/redis.ini /etc/php5/fpm/conf.d/20-redis.ini
    exit
    

    리코의 기술 메모에서 복사

  3. ==============================

    3.TLDR; PHP 7의 nginx를 사용하여 우분투 16.04에 나는 PHP-FPM가 다시 시작되지 않았 음을 발견했다. 서비스의 간단한 재시작은 나를 위해 일한 : sudo는 서비스 PHP-FPM 다시 시작  또는 sudo는 서비스 php7.0-FPM 다시 시작 또는 sudo는 서비스 PHP5-FPM 다시 시작 당신은 위의 명령 중 하나가 당신을 위해 일을하지 않는 경우 "를 다시 시작 PHP-FPM"를 검색해야 할 필요가있다. 일부 컨텍스트를 제공하기 위해, 내가 사용 phpredis을 설치 한 표준 sudo는 apt-get을 phpredis를 설치하고 내가 사용 nginx를 다시 시작 sudo를 systemctl를 다시 시작 nginx를하지만, PHP I에서) 새로운 레디 스를 (사용하려고하는 질문과 동일한 오류가 발생 할 때마다 ( ... 클래스 '레디 스'는) ...를 찾을 수 없습니다. 하면은 phpinfo를 실행 (); 나는 PHP-FPM이 /etc/php/7.0/fpm/conf.d에서 추가 구성을로드 한 볼 수있는 Nginx에 서버의 PHP 파일 (섹션 "추가 .INI 파일이 디렉토리를 검색"). 내가 볼 수있는 간단한 1! -al /etc/php/7.0/fpm/conf.d와 그 디렉토리에 상대가 20 redis.ini라는 이름의 심볼릭 링크는 있지만 파일은 "추가 .INI은 phpinfo 섹션에서로드되지 않았습니다 파일은 "구문 분석. 지금 그것을보고 같은 문제의 nginx를 다시 시작하는 것은 PHP-FPM을 다시 시작하지 않은 것입니다. 추신 보조를 사용하여 | 내가 Nginx에 내 의심을 확인 정지했을 때 실행되는 PHP-FPM 과정이 있다면 그렙 PHP-FPM 확인합니다. 재시작은 PHP 모듈을 다시로드 할 필요가 있기 때문에, PHP-FPM 재시작은 Nginx의 재시작을 요구할 하였다.

    TLDR; PHP 7의 nginx를 사용하여 우분투 16.04에 나는 PHP-FPM가 다시 시작되지 않았 음을 발견했다. 서비스의 간단한 재시작은 나를 위해 일한 : sudo는 서비스 PHP-FPM 다시 시작  또는 sudo는 서비스 php7.0-FPM 다시 시작 또는 sudo는 서비스 PHP5-FPM 다시 시작 당신은 위의 명령 중 하나가 당신을 위해 일을하지 않는 경우 "를 다시 시작 PHP-FPM"를 검색해야 할 필요가있다. 일부 컨텍스트를 제공하기 위해, 내가 사용 phpredis을 설치 한 표준 sudo는 apt-get을 phpredis를 설치하고 내가 사용 nginx를 다시 시작 sudo를 systemctl를 다시 시작 nginx를하지만, PHP I에서) 새로운 레디 스를 (사용하려고하는 질문과 동일한 오류가 발생 할 때마다 ( ... 클래스 '레디 스'는) ...를 찾을 수 없습니다. 하면은 phpinfo를 실행 (); 나는 PHP-FPM이 /etc/php/7.0/fpm/conf.d에서 추가 구성을로드 한 볼 수있는 Nginx에 서버의 PHP 파일 (섹션 "추가 .INI 파일이 디렉토리를 검색"). 내가 볼 수있는 간단한 1! -al /etc/php/7.0/fpm/conf.d와 그 디렉토리에 상대가 20 redis.ini라는 이름의 심볼릭 링크는 있지만 파일은 "추가 .INI은 phpinfo 섹션에서로드되지 않았습니다 파일은 "구문 분석. 지금 그것을보고 같은 문제의 nginx를 다시 시작하는 것은 PHP-FPM을 다시 시작하지 않은 것입니다. 추신 보조를 사용하여 | 내가 Nginx에 내 의심을 확인 정지했을 때 실행되는 PHP-FPM 과정이 있다면 그렙 PHP-FPM 확인합니다. 재시작은 PHP 모듈을 다시로드 할 필요가 있기 때문에, PHP-FPM 재시작은 Nginx의 재시작을 요구할 하였다.

  4. from https://stackoverflow.com/questions/25230399/fatal-error-class-redis-not-found by cc-by-sa and MIT license