Posted by on the 6th of February, 2021 at 11:02 pm under 컴퓨터.  This post has one comment.

WordPress 자체 업데이트가 생기고 난 뒤에 정말 편해서 잘 쓰고 있다. 그런데 이번에 5.6.1 버전으로 업데이트 하려는데 자꾸 중간에 아래 메시지만 나오고 업데이트가 안되었다.

Downloading update from https://downloads.wordpress.org/release/wordpress-5.6.1-new-bundled.zip…

오랜만에 수동 업데이트를 하려니 엄두가 안나서 자동 업데이트가 안되는 원인을 찾다 강제로 자동 업데이트를 했다.

강제로 자동 업데이트

화면에 나오는 메시지로는 어쨌거나 다운로드부터 문제가 생겼다. 저 메시지를 찍는 부분은 wp-admin/includes/class-wp-upgrader.php 이다. 파일 다운로드 자체는 wp-admin/includes/file.php 에서 한다.

download_url 함수에서 하는데 임시 경로에 파일을 만든다. 일단 다운로드가 잘 되나 확인하려고 wp-content/temp 디렉토리를 만들고 777 권한 설정을 했다. 그리고 wp-config.php 에서 임시 경로를 바꿨다.

define('WP_TEMP_DIR', dirname(__FILE__) . '/wp-content/temp/');

다시 업데이트를 눌렀고 임시 디렉토리에 파일이 생긴것도 확인했다. PC에서도 다운로드 받아 크기가 같은지 확인 했다.

파일 다운로드는 되었으나 대략 16MB로 시간이 오래 걸려서 서버에서 응답을 끊은 것 같았다. 그래서 이미 임시 디렉토리에 파일을 받았으니 받아 놓은 파일을 쓰도록 wp-admin/includes/class-wp-upgrader.php 파일을 고쳤다.

//$download_file = download_url( $package, 300, $check_signatures );
$download_file = trailingslashit( WP_TEMP_DIR ) . "임시 파일 이름";

이렇게 고치고 다시 업데이트를 했다. 파일이 이미 있기 때문에 바로 업데이트가 되었고, 수정했던 파일은 업데이트가 되면서 자동으로 원본으로 바뀌었다. wp-config.php에서 임시 디렉토리 설정과 임시 디렉토리는 직접 지웠다.

그런데 위에 적은 것처럼 시간이 오래 걸려서 응답이 끊긴게 원인이란걸 이 방법을 하고 나서야 깨닳았다.

진짜 원인 해결

Tools -> Site health 에 들어가면 여러가지 정보를 보여준다. 여기에서 Info -> Server에 다음 값이 있다.

PHP time limit	30

WordPress 파일을 다운로드 받고 검사하고 이 과정에서 시간이 너무 오래 걸려서 php 실행이 중간에 멈췄다. 

해결 방법은 wp-config.php 파일에서 시간을 늘려주면 된다. 그런데 나는 이미 위에 적은 강제로 자동 업데이트를 해버려서 확인은 못했다. 적당히 180초로 했는데 이것도 모자라면 더 늘리면 된다.

set_time_limit(180);



* Required

The URI to TrackBack this entry is:
https://bmp.pe.kr/blog/index.php/2021/02/06/iwinv%ec%97%90%ec%84%9c-wordpress-%ec%97%85%eb%8d%b0%ec%9d%b4%ed%8a%b8%ea%b0%80-%ec%95%88%eb%90%a0-%eb%95%8c/trackback/

Posted on the 26th of June, 2021 at 1:08 am.

다시 업그레이드 할 때가 왔는데 진짜 원인 해결이라고 적어놓은 방법이 실제로는 안된다 ㅜㅜ