source

WordPress Apache VirtualAlloc 및 VirtualFree 실패, PHP 메모리 부족

ittop 2023. 2. 26. 10:32
반응형

WordPress Apache VirtualAlloc 및 VirtualFree 실패, PHP 메모리 부족

저는 Uniform Server WAMP 패키지(Apache 버전 2.4.20, PHP 버전 7.0.8)를 사용하여 몇 개의 웹 페이지를 직접 호스트하려고 합니다.그 중 하나는 단순한 Bootsrap 포트폴리오이고, 다른 하나는 WooCommerce와 다른 플러그인을 사용하는 WordPress 기반의 온라인 숍입니다.

Apache 서비스를 재시작할 때까지 WordPress 기반 사이트가 작동을 중지하는 경우가 있습니다.Apache의 메인 로그는 다음과 같은 오류로 채워져 있습니다.

VirtualAlloc() 실패: [0x00000008] 이 명령을 처리할 수 있는 스토리지가 부족합니다.Virtual Free() 실패: [0x000001e7] 잘못된 주소에 액세스하려고 합니다.

그리고 내 상점 Apache 오류 로그에는 다음과 같은 내용이 가득합니다.

[8월 23일 (화) 14:49:59.357235 2016][:error] [pid 11300:tid 1768][client 88.119.96.56:52269] PHP 치명적인 오류:메모리 부족(할당된 2097152) (4096바이트 할당 시도):\소프트웨어\UniServerZ\vhosts\***\wp-includes\pomo\mo.php (276행), 참조처: http://***/wp-admin/edit.dit?post_type=shop_order

행은 268, 270 및 276으로 다르며, mo.120에서는 다음과 같습니다.

$entry = new Translation_Entry(); // 268
...
$parts = explode(chr(4), $original); // 270
...
$parts = explode(chr(0), $original); // 276

여기서 전체 소스 코드를 찾을 수 있습니다.

그동안 제 포트폴리오 페이지는 문제없이 작동합니다.

php.ini의 memory_limit을 2048MB로 늘렸습니다.define('WP_MEMORY_LIMIT', '256M');그리고.define('WP_MAX_MEMORY_LIMIT', '512M');wp-config.download에 접속할 수 없지만 적어도 일주일에 두 번은 제 웹사이트에 접속할 수 없고 위에 언급된 메시지로 가득 차 있습니다.

내 사이트에서는 트래픽이 많이 생성되지 않고, 서버는 16GB의 RAM과 절반의 빈 512GB SSD를 가지고 있습니다.현재 로그에서 알 수 있는 것은 거의 없기 때문에 문제의 원인을 파악하거나 원인을 찾을 수 있도록 도와 주십시오.

업데이트 1

VirtualAlloc 및 VirtualFree의 모든 장애보다 흥미로운 행을 발견했습니다.

[2016년 8월 23일 (화) 21:02:40.298272][:error] [pid 504:tid 1836][client 191.96.249.54:36032] 스크립트 'D:/Software/UniServerZ/ww/xmlrp.php'를 찾을 수 없거나 시작할 수 없습니다.

.htaccess 파일에 다음 행을 추가하여 xmlprc를 비활성화한 해킹 시도의 피해자였던 것 같습니다.

<Files "xmlrpc.php">
Order Allow,Deny
Deny from all
</Files>

이게 도움이 됐으면 좋겠다.

업데이트 2 - 며칠 후

문제가 해결된 것 같습니다.서버 구성 오류로 인해 클라이언트가 거부되는 경우가 종종 있지만 웹사이트는 더 이상 실패하지 않습니다.

업데이트 3 - 몇 주 후

VirtualAlloc() 및 VirtualFree()의 장애는 의심스러운 스크립트 요구 없이 다시 발생하며 로그는 언급된 장애로 가득 차 있습니다.또한 shops 로그에는 메모리의 부족에 관한 에러가 다수 존재합니다.Apache 오류를 보다 상세하게/상세하게 만들어 스토리지 부족 오류를 트리거하는 명령 또는 액세스를 시도한 잘못된 주소를 파악하는 방법이 있습니까?

업데이트 4 - 몇 달 후

웹 사이트를 정기적으로 사용하고 Apache를 재부팅한 후 오류가 막 멈추는 동안 사용하던 플러그인이 업데이트되어 메모리 누수가 발생하지 않으며 다음 오류가 발생할 때까지 모든 것이 작동합니다.

WordPress는 일부 플러그인이 사용하고 있는 PHP 네이티브 세션을 사용하지 않지만 사용할 수 있기 때문에 이것이 도움이 될지는 확실하지 않습니다.

상황: 황: : OS 、 7.0.6 - 7.0.11 OS、 PHP 7.0.6 - 7.0.11
php 세션 사용으로 인해 VirtuaAlloc이 실패합니다.http://php.net/manual/en/features.sessions.php 는 모든 php session_ 함수를 제 함수로 제거/삭제했습니다.

재생 방법: session_start(); Apache 서버에서 동시에 여러 번 동일한 스크립트를 실행합니다.

언급URL : https://stackoverflow.com/questions/39103101/wordpress-apache-virtualalloc-and-virtualfree-failed-php-out-of-memory

반응형