Nextcloud PHP 메모리 제한 경고 해결

Nextcloud PHP 메모리 제한 경고를 해결하려면 웹 서버에서 사용하는 PHP 설정 파일에서 memory_limit최소 512MB로 설정한 512M다음 해당 PHP 서비스를 재시작하거나 다시 로드하십시오. Nextcloud의 최신 안정 버전 관리 설명서에서는 이 PHP 설정에 최소 512MB를 권장합니다. 파일을 수정한 후에도 경고가 계속 발생하는 가장 일반적인 이유는 웹 서버가 명령줄 PHP 설치와 다른 PHP 설정을 사용하고 있기 때문입니다.

배포 환경에 맞는 절차를 선택하십시오. Apache(mod_php 사용), Apache 또는 Nginx(PHP-FPM 사용), 컨테이너 또는 관리형 Nextcloud 패키지 중에서 선택할 수 있습니다. 호스트의 임의 주소를 수정 php.ini하고 모든 배포에 동일하게 적용되지 않도록 하십시오. Nextcloud 관리자 개요 페이지에서 웹 애플리케이션 구성을 확인하십시오.

이 경고는 무슨 의미인가요?

PHP의 memory_limit최대 메모리 할당량은 단일 PHP 스크립트가 할당할 수 있는 최대 메모리 용량입니다. 이는 Nextcloud에 예약된 총 RAM 용량이 아니며, 서버에서 사용 가능한 물리적 메모리 용량을 늘리는 것도 아닙니다. Nextcloud 설명서에서는 이 설정에 최소 512MB를 할당하도록 권장합니다. 또한, 시스템 요구 사항 문서에서는 실제 서버 메모리 요구량은 사용자, 애플리케이션, 파일 및 활동에 따라 달라지며, PHP 프로세스당 최소 512MB, 최소 128MB의 RAM을 권장한다고 명시하고 있습니다.

PHP 제한을 높이면 구성 경고가 해결되고 메모리 집약적인 요청에 더 많은 여유 공간을 확보할 수 있습니다. 하지만 이는 호스트의 RAM 용량을 늘리거나 메모리 누수를 해결하거나 모든 애플리케이션이 성공적으로 완료될 것을 보장하지는 않습니다. 서버가 이미 메모리 부족 상태인 경우, 요청당 제한을 높이면 동시 실행되는 PHP 워커가 시스템 RAM을 고갈시킬 위험이 커질 수 있습니다.

어떤 PHP 설정을 수정해야 할까요?

먼저 PHP가 Nextcloud를 실행하는 방식을 파악하십시오. 터미널에서 `php artisan`과 같은 php --ini명령어를 실행하면 명령줄(CLI) 구성 정보를 확인할 수 있습니다. Nextcloud의 웹 요청은 별도의 Apache 모듈이나 PHP-FPM 서비스를 사용하거나, 다른 php.ini설정 파일이나 풀 오버라이드를 사용할 수 있습니다. Nextcloud는 웹과 CLI PHP가 서로 다른 구성 파일을 사용할 수 있다고 명시적으로 언급합니다.

데비안 계열 시스템에서 /etc/php/8.x/apache2/php.iniPHP 모듈과 /etc/php/8.x/fpm/php.iniPHP-FPM의 일반적인 설치 위치는 다음과 같습니다. 실제 PHP 버전과 디렉터리 이름은 배포판에 따라 다를 수 있습니다. 다른 배포판에서는 공유 폴더와 같은 다른 경로를 사용하는 경우가 많습니다 /etc/php.ini. 이러한 경로는 예시일 뿐이며, 실제 사용 중인 파일은 패키지 관리자, 서비스 구성 및 PHP 런타임을 사용하여 찾으십시오.

CLI 구성을 확인하려면 다음 명령을 실행하세요.

php --ini
php -i | grep -i '^memory_limit'

이러한 명령어는 명령줄에서 PHP를 호출하는 예약 작업에 유용하지만, 브라우저에 표시되는 Nextcloud 프로세스가 동일한 값을 사용한다는 것을 증명하지는 않습니다. phpinfo()서버에 공개 페이지를 남겨두지 마십시오. 경로, 모듈 및 런타임 세부 정보가 노출될 수 있습니다.

Apache 또는 PHP-FPM의 제한을 어떻게 설정하나요?

설정을 변경하기 전에 활성 구성 파일을 백업하십시오. 올바른 파일에서 php.ini기존 줄을 찾아 워크로드에 맞게 선택한 memory_limit값 또는 그보다 높은 값으로 설정하십시오 .512M

memory_limit = 512M

여러 파일 끝에 중복된 줄을 추가하는 대신 하나의 활성 설정을 사용하십시오. PHP-FPM 풀은 워커에 대한 값도 정의할 수 있으므로, 값이 php.ini적용되지 않으면 풀 구성을 확인하십시오. 일부 PHP 배포 환경에서는 디렉터리별 설정을 지원합니다 .user.ini. 이 기능의 활성화 여부는 서버 구성에 따라 다르므로 관리자에게 확인해야 합니다.

Apache에서 mod_php 사용

Apache에서 사용하는 설정을 편집 php.ini하고 저장한 다음 Apache를 다시 시작하여 모듈이 설정을 다시 로드하도록 하십시오. 서비스 이름은 운영 체제에 따라 다릅니다. Debian 또는 Ubuntu에서는 서비스 이름이 일반적으로 apache2이고, RHEL 계열 시스템에서는 일반적으로 입니다 httpd. 운영 체제 및 유지 관리 절차에 맞는 서비스 이름을 사용하십시오.

sudo systemctl restart apache2

사용하는 배포판의 유닛 이름이 다르면 해당 부분을 교체하십시오 apache2. Nextcloud가 mod_php 대신 PHP-FPM을 통해 제공되는 경우 Apache만 재시작하면 PHP 워커가 다시 로드되지 않습니다.

PHP-FPM을 사용하는 Apache 또는 Nginx

사이트에서 실제로 사용 중인 PHP-FPM 설정을 편집하십시오. 변경 사항을 저장한 후 해당 PHP-FPM 서비스를 다시 시작하거나 새로고침하십시오. 서비스 이름에는 PHP 버전이 포함될 수 있으며(예: `php-FPM`) php8.3-fpm, 또는 다른 공급업체별 이름을 사용할 수도 있습니다.

sudo systemctl restart php8.3-fpm

설치된 PHP 버전에 맞는 서비스 이름을 사용하십시오. Nginx는 PHP 요청을 FPM으로 전달하므로 PHP 설정을 변경하려면 일반적으로 FPM에도 변경 사항을 적용해야 합니다. Nginx만 재시작하면 PHP의 메모리 제한이 다시 로드되지 않습니다. PHP-FPM 풀 구성에서 재정의하는 경우 memory_limit풀 설정을 조정하거나 재정의를 제거한 다음 풀을 재시작하십시오.

Nextcloud가 Docker, AIO, Snap 또는 다른 패키지에서 실행된다면 어떨까요?

해당 설치 방법에 맞는 구성 메커니즘을 사용하십시오. 호스트의 PHP 파일을 편집해도 컨테이너 또는 격리된 패키지 내부의 PHP 런타임은 일반적으로 변경되지 않습니다. 공식 Nextcloud Docker 이미지 문서에는 PHP_MEMORY_LIMIT환경 변수가 설명되어 있으며, 현재 이미지 문서에는 기본값이 설정되어 있습니다 512M. Compose 파일 또는 컨테이너 구성에서 해당 변수를 설정한 다음 배포 절차에 따라 애플리케이션 컨테이너를 다시 생성하거나 재시작하십시오.

environment:
  PHP_MEMORY_LIMIT: 512M

해당 설정을 모든 설치 유형에 복사하지 마십시오. Nextcloud 설명서에 따르면 AIO, Snap, NCP 및 Community Docker와 같은 턴키 환경에는 PHP가 사전 구성되어 있으며 관리자는 사용자 지정을 위해 패키지별 지침을 참조하도록 안내합니다. 이러한 설정의 경우 해당 패키지에서 지원하는 인터페이스 또는 문서를 사용하십시오. 영구 볼륨 마운트 및 생성된 구성은 일회성 수동 편집을 덮어쓸 수 있습니다.

경고 메시지가 수정되었는지 어떻게 확인할 수 있나요?

  1. 웹에 연결된 PHP 설정에 변경 사항을 적용하고 해당 웹/PHP 서비스를 다시 시작하거나 새로고침하십시오.
  2. 관리자 계정으로 Nextcloud에 로그인한 다음 설정 > 관리 > 개요를 엽니다 .
  3. 페이지를 새로고침하고 구성 경고를 검토하세요. PHP 메모리 제한 경고가 사라졌는지 확인하십시오.
  4. 이전에 경고를 발생시켰던 대표적인 작업(예: 해당 앱 작업)을 실행하고 Nextcloud 및 PHP 로그에서 메모리 부족 메시지가 있는지 확인하십시오.

Nextcloud 백그라운드 작업을 시스템 cron을 통해 실행하는 경우, CLI PHP 구성을 별도로 확인하십시오. 웹에 표시되는 경고는 해제될 수 있지만 CLI 작업에서는 여전히 더 낮은 제한값이 사용될 수 있습니다. cron 명령에서 사용하는 동일한 PHP 바이너리에 대해 php --iniCLI 값을 확인하십시오.php -i

언제 가치를 5억 1200만 이상으로 올려야 할까요?

경고가 사라졌지만 문서화된 워크로드가 여전히 PHP 제한에 도달하거나, 앱의 지원 지침에서 더 많은 메모리를 요구하는 경우에만 이 문제를 제기하십시오. 먼저 실제 서버 메모리, PHP-FPM 워커 수, 데이터베이스 메모리 및 기타 서비스를 확인하십시오. PHP는 스크립트별로 제한을 적용하므로 여러 워커가 동시에 상당한 메모리를 사용할 수 있습니다. -1PHP 문서에 메모리 제한이 없다고 나와 있는 `php-FPM` 대신 호스트의 메모리 예산에 맞는 측정된 제한을 설정하십시오.

경고 메시지는 사라졌지만 서버 속도가 여전히 느려지거나 프로세스가 종료되는 경우, 시스템 메모리 및 스왑 사용량, PHP-FPM 로그, Nextcloud 로그를 확인하십시오. 특정 애플리케이션이나 요청이 과도한 메모리를 사용하고 있는지 살펴보세요. APCu 또는 Redis와 같은 메모리 캐시는 캐싱 및 성능 문제를 해결하는 데 도움이 되지만, PHP 설정을 대체하는 것은 아닙니다 memory_limit. 한 번에 한 가지 요소만 변경하여 개선 여부를 확인하세요.

증상별 빠른 확인

  • php.ini 파일을 편집한 후에도 경고 메시지가 남아 있다면, Apache/FPM 파일 대신 CLI 파일을 편집했는지, 또는 풀 설정이 이를 재정의하는지 확인하십시오.
  • 경고는 사라졌지만 cron 작업이 여전히 실패합니다. CLI PHP 바이너리와 별도의 구성을 확인하십시오.
  • 웹 서버를 재시작한 후 오류가 발생하는 경우, 웹 서버 또는 PHP-FPM 서비스의 상태 및 로그를 확인하고, 구성 변경으로 인해 시작 오류가 발생한 경우 백업을 복원하십시오.
  • 경고는 사라졌지만 호스트의 RAM이 부족합니다. 동시 실행 수를 줄이거나, 메모리를 추가하거나, PHP 제한을 더 늘리기 전에 메모리를 사용하는 프로세스를 식별하십시오.
  • 컨테이너 또는 턴키 패키지를 사용하는 경우 호스트의 php.ini 파일을 변경하는 대신 패키지에서 지원하는 PHP 설정을 변경하십시오.

공식 참고 자료

댓글 남기기

Nextcloud PHP 메모리 제한 경고 해결

Nextcloud PHP 메모리 제한 경고 해결

Nextcloud의 PHP memory_limit을 최소 512M로 설정하고, 올바른 웹 PHP 구성을 찾은 다음, Apache 또는 PHP-FPM을 다시 시작하고 경고가 사라졌는지 확인하십시오.

Matrix Coturn TURN/STUN 서버를 설정하여 음성 및 영상 통화를 가능하게 하는 방법

Matrix Coturn TURN/STUN 서버를 설정하여 음성 및 영상 통화를 가능하게 하는 방법

Synapse를 사용하여 Matrix WebRTC 통화를 위한 Coturn 설정을 구성합니다. 공유 자격 증명, NAT, 방화벽 포트, TLS 옵션을 구성하고 기존 TURN과 MatrixRTC 및 LiveKit을 구분합니다.

OAuth2 인증을 사용하여 Nextcloud 메일 앱을 구성하는 방법

OAuth2 인증을 사용하여 Nextcloud 메일 앱을 구성하는 방법

Nextcloud 메일을 Gmail 또는 Microsoft 365용 OAuth2로 구성하고, IMAP/SMTP 액세스를 확인하고, 리디렉션 문제를 해결하고, 제한 사항을 파악하세요.

Element에서 "신원 확인 불가" 세션 경고를 해결하는 방법

Element에서 "신원 확인 불가" 세션 경고를 해결하는 방법

Element의 "ID 확인 불가" 세션 경고를 해결하려면 다른 신뢰할 수 있는 장치 또는 복구 키를 사용하여 인증하고, 재설정이 안전한 시점을 알아보세요.

Kopano 사서함을 Grommunio 또는 Zammad로 이전하기: 올바른 방법을 선택하세요

Kopano 사서함을 Grommunio 또는 Zammad로 이전하기: 올바른 방법을 선택하세요

Kopano 마이그레이션과 grommunio 및 Zammad 마이그레이션을 비교해 보세요. 각 마이그레이션 경로에서 보존할 수 있는 사서함 데이터, 테스트 및 결과 검증 방법, 그리고 IMAP 또는 사용자 지정 가져오기가 적합한 경우를 알아보세요.

Nextcloud 데이터 폴더를 외장 하드 드라이브로 안전하게 마이그레이션하는 방법

Nextcloud 데이터 폴더를 외장 하드 드라이브로 안전하게 마이그레이션하는 방법

Nextcloud 데이터 디렉토리를 파일 참조를 손상시키지 않고 외장 하드 드라이브로 이동하는 방법입니다. 백업, 영구 마운트, rsync, 권한 설정 및 심볼릭 링크를 안전하게 활용하세요.

systemd를 사용하여 Nextcloud cron 작업이 자동으로 실행되지 않는 문제를 해결하세요

systemd를 사용하여 Nextcloud cron 작업이 자동으로 실행되지 않는 문제를 해결하세요

Ubuntu에서 Nextcloud systemd cron 타이머 문제를 해결하려면 서비스 사용자, PHP 및 Nextcloud 경로, 타이머 활성화 여부, 작업 실행 기록을 확인하십시오.

BigBlueButton에서 Etherpad 연동을 설정하는 방법

BigBlueButton에서 Etherpad 연동을 설정하는 방법

BigBlueButton 4.0 beta.4 또는 이전 버전에서 Etherpad 공유 메모를 활성화하세요. 선택적 패키지를 설치하고, 회의 수준 또는 전체 기본값을 선택하고, 프록시 문제를 해결하세요.

Nextcloud 업로드 용량 제한(2GB) 해결 방법: 대용량 파일 업로드 허용

Nextcloud 업로드 용량 제한(2GB) 해결 방법: 대용량 파일 업로드 허용

PHP, Nginx 또는 Apache, 리버스 프록시, 타임아웃 및 스토리지 설정을 확인하여 Nextcloud 업로드 용량 제한(2GB)을 해결하세요. 기존 제한 용량보다 큰 파일을 사용하여 변경 사항을 안전하게 테스트할 수 있습니다.

Let's Encrypt를 사용하여 ownCloud 서버에 SSL/HTTPS를 설정하는 방법

Let's Encrypt를 사용하여 ownCloud 서버에 SSL/HTTPS를 설정하는 방법

Apache에서 실행되는 ownCloud 서버에 Let's Encrypt HTTPS를 설정합니다. DNS 및 포트를 확인하고, Certbot을 사용하여 인증서를 발급하고, 리디렉션을 활성화하고, 갱신을 테스트합니다.