메뉴 건너뛰기

XE 3.0.0-beta.24 업데이트 가이드

XE 3.0.0-beta.24 에는 XE3 PHP 지원 버전 변경, Laravel 5.5 LTS 적용, 데이터베이스 테이블 컬럼 이름 변경 등 많은 변경사항이 있어 업데이트에 각별한 주의가 필요합니다.

많은 파일이 수정되야 하므로 운영중인 소스 및 데이터베이스를 반드시 백업해 주시고

별도로 추가한 플러그인 테이블의 컬럼 이름이 camel case 일 경우는 snake case 변경해 주어야 합니다. (예 myColumn 은 my_column 으로 변경)

 

FTP 업데이트

1. latest.zip 을 다운로드 하여 전체 파일을 업로드 합니다.

 이번 버전에서는 changed.xxx.zip 파일로 업데이트가 불가합니다.

2. 안전모드로 진입합니다.

 http://my.domain/__safe_mode 로 이동하고 관리자 계정으로 로그인합니다.

spill_800x800_9a0600490d5d241ce7002afefe51de1a17818605.png

3. 페이지에서 캐시삭제, XE3.0.0-beta.24 데이터베이스 테이블 컬럼 이름 변경을 실행합니다.

spill_800x800_6e47d3c765c8573b5a165cc7b1ccc76db097a821.png

4. 사용중인 플러그이을 최신 버전으로 업데이트 합니다.

게시판, 에디터, 댓글 등 플러그인을 자료실에서 다운받아 업로드 합니다.

5. 코어 업데이트를 실행합니다.

http://my.domain/settings/update 으로 이동해서 업데이트 버튼을 클릭합니다. 이 동작은 오래 걸립니다.

 

Git

1. 최신 버전을 pull 받습니다.

2. composer update를 실행합니다.

아래와 같은 에러가 발행하게 되는것은 정상적인 스텝입니다. 다른 오류가 발생한 경우는 개발팀에게 알려주세요.

spill_800x800_e49c980955927ca5974f7b29373360aef92074a7.png

2. 안전모드로 진입합니다.

 http://my.domain/__safe_mode 로 이동하고 관리자 계정으로 로그인합니다.

spill_800x800_9a0600490d5d241ce7002afefe51de1a17818605.png

3. 페이지에서 캐시삭제, XE3.0.0-beta.24 데이터베이스 테이블 컬럼 이름 변경을 실행합니다.

spill_800x800_6e47d3c765c8573b5a165cc7b1ccc76db097a821.png

4. 사용중인 플러그이을 최신 버전으로 업데이트 합니다.

게시판, 에디터, 댓글 등 플러그인을 자료실에서 다운받아 업로드 합니다.

5. composer update 다시 실행하여 업데이트를 마무리 합니다.

6. 코어 업데이트를 실행합니다.

http://my.domain/settings/update 으로 이동해서 업데이트 버튼을 클릭합니다. 이 동작은 오래 걸립니다.

 

알려진 문제점

- debugbar 문제

debug를 켜고 진행할 경우 문제가 발생할 수 있습니다. config/production/app.php 에서 debug 를 false 로 변경하도록 합니다.

spill_800x800_4cb5b040117f46426c50559b43529b15a56e829c.png

debugbar 에서 사용자 정보를 표시할 때 사용하는 인터페이스에서 충돌이 었을 것으로 생각됩니다.

우선 core 의 Guest.php 파일을 수정하고 사용 바랍니다.

$this->throwNotSupportedException(); 코드를 제거하고 빈 문자열을 반환 하도록 수정합니다.

// core/src/Xpressengine/User/Models/Guest.php

..
    /**
     * Get the unique identifier for the user.
     *
     * @return mixed
     */
    public function getAuthIdentifier()
    {
        // $this->throwNotSupportedException();
        return '';
    }

..

- Illegal offset type in unset

플러그인에서 binding, signleton 등 코드를 변경해야합니다. 

Github 에 수정된 내용을 보고 설명 드립니다. (https://github.com/xpressengine/plugin-board/commit/81835029085e237e5fa29de7b135740b6bb7e057#diff-e462b50c2a47baf644da800a0e7c4453)

src/Plugin/Resources.php 파일 커밋 로그를 보면 아래와 같이 수정된 내용을 확인할 수 있습니다.

// 수정 전
$app->singleton(['xe.plugin.board' => Plugin::class], function ($app) {
     return XePlugin::getPlugin('board');
});

// 수정 후
$app->singleton(Plugin::class, function ($app) {
    return XePlugin::getPlugin('board');
});
$app->alias(Plugin::class, 'xe.plugin.board');

Laravel 에서 제공하는 singleton 메소드 첫번째 인자에 array 를 넘기던 것이 string 을 넘기도록 변경되었습니다.

 

- method get path does not exist

Illuminate\Routing\Route.php 에 getPath 메소드 deprecated, url 로 대체합니다.

 

  • share