Nextcloud OPcache 경고를 해결하려면 적정 한도를 조정하세요.

Nextcloud의 "PHP OPcache가 올바르게 구성되지 않았습니다" 경고를 해결하려면 관리 설정 → 개요에서 전체 경고를 열고 웹 서버에서 사용하는 PHP 구성에서 해당 경고가 가리키는 OPcache 제한만 늘리세요. 해당 PHP 서비스를 다시 시작하고 경고를 다시 확인하세요. 명령줄 PHP 구성만 편집하는 것은 Nextcloud에서 사용하는 설정을 변경하지 못할 수 있습니다.

예를 들어, Nextcloud에서 인터닝된 문자열 버퍼가 거의 가득 찼다고 보고하는 경우, opcache.interned_strings_buffer서버에 충분한 RAM이 있다면 16MB에서 32MB로 늘리는 것이 합리적인 첫 번째 조정 방법입니다. 캐시된 스크립트나 공유 메모리에 대한 다른 경고가 발생하는 경우에는 다른 설정이 필요합니다.

Nextcloud에 OPcache 경고가 표시되는 이유는 무엇입니까?

OPcache는 컴파일된 PHP 바이트코드를 공유 메모리에 저장하여 반복적인 웹 요청에 필요한 컴파일량을 줄여줍니다. 또한, 동일한 문자열을 PHP에서 재사용할 수 있도록 인터닝된 문자열을 위한 공간을 예약합니다. 이러한 기능은 별개의 제한 사항이므로, 하나를 확장한다고 해서 다른 관련 경고가 반드시 해결되는 것은 아닙니다.

Nextcloud 35 서버 튜닝 문서 에 따르면 관리자 패널은 OPcache 크기 제한이 할당된 용량의 90%를 초과할 경우 경고를 표시합니다. 이 메시지에는 인터닝된 문자열 버퍼가 거의 가득 찼거나, 캐시된 스크립트 수가 부족하거나, 공유 메모리가 부족한 경우와 같은 구체적인 내용이 언급될 수 있습니다. 해결 방법은 이러한 세부 정보에 따라 달라집니다.

Nextcloud는 opcache.save_comments=1PHP 코드 주석을 보존해야 하므로 OPcache 확장이 필요합니다. 따라서 OPcache 확장을 비활성화하거나 주석 보존 기능을 비활성화하는 것은 단순히 캐시 크기 문제가 아니라 구성 문제입니다.

1. 주의가 필요한 상황을 파악합니다.

관리자 계정으로 로그인하여 관리 설정 → 개요 로 이동한 다음 OPcache 경고 메시지를 자세히 읽으십시오. 지시 사항이 명시되어 있으면 정확한 지시 사항을 기록해 두십시오. 모든 OPcache 경고가 인터닝된 문자열 버퍼 크기가 부족하다는 것을 의미하는 것은 아닙니다.

  • 저장된 문자열 버퍼가 거의 가득 찼습니다. 확인하세요 opcache.interned_strings_buffer.
  • OPcache 공유 메모리가 거의 가득 찼습니다: 확인 opcache.memory_consumption.
  • 캐시된 스크립트 또는 키가 제한에 가까워지고 있습니다. 확인하세요 opcache.max_accelerated_files.
  • OPcache가 비활성화되었거나 댓글이 보존되지 않았습니다. 다음 사항 을 확인 opcache.enable하세요 opcache.save_comments.

2. Nextcloud를 제공하는 PHP 구성을 찾습니다.

PHP-FPM을 사용하는 Debian 또는 Ubuntu 서버에서 PHP 구성은 일반적으로 PHP 버전과 서버 API별로 구성됩니다. 예를 들어 PHP 8.3 FPM은 `/php` 아래의 파일을 읽을 수 있는 /etc/php/8.3/fpm/conf.d/반면, Apache의 PHP 모듈은 `/php`를 사용할 수 있습니다 /etc/php/8.3/apache2/conf.d/.

systemd 호스트에 어떤 PHP-FPM 서비스가 있는지 확인하려면 다음 명령을 실행하세요.

systemctl list-units --type=service 'php*-fpm.service'

설치된 PHP 버전을 바꿔서 해당 OPcache 파일을 확인하세요.

sudo ls -l /etc/php/8.3/fpm/conf.d/*opcache*
sudo grep -R 'opcache\.' /etc/php/8.3/fpm/conf.d/

파일을 찾을 수 없는 경우, 사용 중인 배포판의 메인 파일 php.ini과 패키징 규칙을 확인하십시오. 이 명령어는 CLIphp --ini PHP 구성을 식별하는 데 유용 하지만, CLI와 PHP-FPM은 서로 다른 설정을 로드할 수 있습니다.

Docker 또는 Nextcloud All-in-One의 경우, Nextcloud 컨테이너 내부의 PHP 구성을 확인 하고 지원되는 영구 구성 방법을 사용하십시오. 호스트 /etc/php파일을 편집해도 컨테이너 내부의 PHP는 구성되지 않으며, 생성된 컨테이너 파일을 편집하더라도 다시 생성하면 변경 사항이 취소될 수 있습니다.

3. 관련 없는 설정을 변경하지 않고 보고된 제한값을 늘립니다.

변경하기 전에 관련 설정 파일을 백업하십시오. 일반적인 Debian/Ubuntu PHP-FPM 설치 환경에서 유지 관리가 용이한 방법 중 하나는 해당 PHP 버전의 FPM conf.d디렉터리 아래에 로컬 재정의 파일을 추가하는 것입니다. 진행하기 전에 해당 디렉터리가 PHP-FPM 설치에서 실제로 로드되는지 확인하십시오.

인터닝된 문자열 버퍼 예제 의 경우 , 다음과 같은 로컬 오버라이드를 생성하거나 편집하세요 /etc/php/8.3/fpm/conf.d/99-nextcloud-opcache.ini.

; Example for a warning about interned strings
opcache.interned_strings_buffer=32

여기서 3232MB는 32바이트가 아니라 32MB를 의미합니다. 최종 값은 실제 사용량과 사용 가능한 RAM에 맞춰 조정하십시오.

경고 메시지에 다른 제한값이 명시되어 있다면, 세 가지 값을 모두 무턱대고 더하는 대신 해당 예시를 사용하십시오 .

; Example only: larger shared bytecode cache
opcache.memory_consumption=256

; Example only: allow more cached script keys
opcache.max_accelerated_files=20000

값은 opcache.memory_consumption메가바이트 단위이며, opcache.max_accelerated_files스크립트 키 제한을 지정합니다. PHP OPcache 공식 구성 참조 문서에서 이러한 값의 단위, 기본값 및 변경 가능성에 대해 설명합니다.

경고 메시지가 용량 문제가 아닌 OPcache 비활성화 또는 주석 누락을 가리키는 경우, 다음 설정을 확인하십시오.

opcache.enable=1
opcache.save_comments=1

opcache.validate_timestamps이 경고를 무시하기 위해 Nextcloud를 끄 거나 시간을 상당히 늘리지 마십시오 opcache.revalidate_freq. Nextcloud는 캐시 재검증이 지연되면 구성 및 업그레이드 변경 사항이 즉시 적용되지 않을 수 있다고 경고합니다.

4. 새 구성을 적용합니다.

PHP-FPM을 통해 PHP 8.3이 실행되는 서버의 경우, 먼저 서비스 구성을 검증한 다음 짧은 유지 관리 시간 동안 해당 서비스를 다시 시작하십시오.

sudo php-fpm8.3 -t
sudo systemctl restart php8.3-fpm

8.3설치된 PHP-FPM 버전으로 교체하고 , 실행 파일과 서비스 이름을 확인한 후 명령을 실행하십시오. 재시작하면 해당 풀에서 처리 중인 요청이 중단됩니다. Apache 환경에서는 mod_phpPHP-FPM이 아닌 Apache 서비스가 관련 서비스입니다. 컨테이너의 경우, 구성을 유지하면서 배포 환경에 명시된 재시작 또는 재구축 절차를 따르십시오.

서비스가 다시 시작되지 않으면 백업해 둔 구성을 복원하고 PHP-FPM 또는 웹 서버 오류 로그를 확인하십시오.

5. 경고 메시지가 계속 표시되면 웹 PHP 설정을 확인하십시오.

PHP 워커가 재시작된 후 관리 설정 → 개요를 다시 로드하십시오. 동일한 경고가 계속 표시되면 변경된 지시문이 CLI뿐만 아니라 웹.ini PHP 런타임에서도 실제로 로드되었는지 확인하십시오. 나중에 로드되는 파일이나 PHP-FPM 풀 재정의로 인해 해당 값이 덮어쓰여지는지 확인하십시오.

직접 관리하는 서버에서는 접근 권한이 엄격하게 제한된 진단 엔드포인트와 PHP의 ini_get()함수를 사용하여 웹 PHP 값을 일시적으로 검사할 수 있습니다. 공개 phpinfo()페이지는 절대로 온라인 상태로 두지 마십시오. 환경 변수, 경로, 모듈 및 기타 민감한 구성 정보가 노출될 수 있습니다. 검사가 완료되면 모든 진단 엔드포인트를 즉시 제거하십시오.

지속적인 크기 조정 경고를 받으려면 값을 반복적으로 두 배로 늘리는 대신 정상적인 트래픽 상황에서 실제 OPcache 사용량을 확인하십시오. PHP opcache_get_status()설명서에는 실행 중인 PHP 프로세스에서 사용할 수 있는 메모리, 인터닝된 문자열 및 캐시된 스크립트 통계가 설명되어 있습니다.

Nextcloud의 공식 Docker 이미지 및 올인원 배포판에는 자체 PHP 기본 설정이 포함되어 있습니다. 호스트 수준에서 수정한 내용이나 다른 설치 환경에서 권장하는 값이 그대로 유지된다고 가정하지 마십시오. 사용 중인 배포 환경에 맞는 구성 모델은 Nextcloud 공식 Docker 저장소 또는 공식 올인원 저장소 를 참조하십시오.

수정 사항이 제대로 적용되었는지 확인하십시오.

관리자 설정 → 개요로 돌아가서 OPcache 관련 경고가 사라졌는지 확인하십시오. Nextcloud 페이지 몇 개를 열고 새로고침하여 애플리케이션이 정상적으로 작동하는지 확인하십시오. 정상적인 사용 후에도 경고가 다시 나타나면 동일한 측정 제한과 웹 PHP 구성을 다시 확인하십시오. 목표는 OPcache에 불필요한 메모리를 할당하지 않고 충분한 여유 공간을 확보하는 것입니다.

댓글 남기기

예약 대기열을 사용하여 Nextcloud 미리보기의 CPU 사용량 급증을 제어하세요

썸네일 작업을 제어된 백그라운드 일정으로 이동하고, 사용하지 않는 미리보기 크기를 줄이고, Nextcloud 서버에 과부하를 주지 않고 대기열을 검증하세요.

Nextcloud 데스크톱 동기화, "파일 처리 중" 문제 해결

Nextcloud 동기화를 방해하는 파일, 제외 규칙, 연결 문제 또는 클라이언트 데이터베이스 상태를 찾은 다음 업로드 및 다운로드가 안전하게 진행되는지 확인하십시오.

Nextcloud OPcache 경고를 해결하려면 적정 한도를 조정하세요.

Nextcloud 경고를 유발하는 PHP OPcache 제한을 찾아 올바른 웹 PHP 구성을 업데이트하고 안전하게 재시작한 후 결과를 확인하십시오.

Nextcloud를 CODE Docker에 연결하기: 설정 및 장단점

Nextcloud를 CODE Docker에 연결하기: 설정 및 장단점

내장 CODE와 Docker 기반 CODE를 비교한 다음, 안전한 HTTPS 역방향 프록시를 통해 Collabora Online을 Nextcloud에 연결합니다.

Galera를 사용하여 안정적인 Nextcloud 클러스터를 구축하세요

공유 스토리지, Redis 잠금, 쿼럼 인식 MariaDB 라우팅 및 실용적인 장애 조치 점검을 ​​통해 안정적인 Nextcloud 고가용성(HA) 배포를 계획하십시오.

직접 미디어 연결이 실패할 경우 Nextcloud Talk 통화를 연결하세요

직접 미디어 연결이 실패할 경우 Nextcloud Talk 통화를 연결하세요

방화벽이나 제한적인 NAT로 인해 직접 통화 매체가 차단되는 경우, Nextcloud Talk에 연결 가능한 TURN 릴레이를 구성하고 확인하십시오.

올바른 파일을 복원하여 Nextcloud 무결성 경고를 해결하세요

잘못된 파일 보고서를 사용하여 변경되었거나 누락되었거나 추가된 Nextcloud 코드를 식별하고, 신뢰할 수 있는 파일을 안전하게 복원하고, 결과를 확인할 수 있습니다.

OAuth2를 사용하여 Gmail 또는 Microsoft 365를 Nextcloud 메일에 연결합니다.

Gmail 또는 Microsoft 365를 사용하여 Nextcloud 메일에 대한 OAuth2를 설정하고, 수신 및 발신을 확인하고, 일반적인 동의 및 SMTP 오류를 해결합니다.

OCC를 사용하여 Nextcloud 유지 관리 모드 오류를 안전하게 해결하세요

OCC를 사용하여 Nextcloud 유지 관리 모드 오류를 안전하게 해결하세요

OCC를 사용하여 Nextcloud 액세스를 복원하고, 데이터베이스 마이그레이션 상태를 확인하고, 아카이브, Docker 또는 Snap 설치에 적합한 명령을 선택하십시오.

Nextcloud LDAP 및 Active Directory 로그인 설정

Nextcloud를 LDAP 또는 Active Directory에 연결하고, 사용자 및 그룹 필터를 사용하여 액세스를 제한하고, 배포 전에 보안 인증을 확인하십시오.