GLPI 마이그레이션 오류 해결(Synology php 명령 방법)

Synology WebStation을 이용해 GLPI를 설치해 이용중이였는데,

GLPI의 버전을 9에서 10으로 마이그레이션 후 아래와 같은 오류가 화면에 표시되었습니다.

 

오늘은 이 문제를 해결한 경험을 공유해보도록 하겠습니다.

참고했던 관련 포스팅은 https://github.com/glpi-project/glpi/issues/10534 입니다.

 

주황색 경고창에 해결 방법까지 자세히 나와있지만, 콘솔창에 어떻게 입력하라는건지 깝깝하기만 합니다.

 

하지만, 어려워 하지말고 차근차근 고민해 봅니다. 자세히 뚤어져라 계속 보다보면, 답이 보이기 마렵이니.

 

glpi 폴더를 보면 bin/console 이라는 파일이 있음을 확인 할 수 있습니다.

우리는, 쉘로 접속해 php 명령어를 glpi 경로에서 실행시켜 주기만 하면 되는것 같습니다.

 

1. 쉘 접속을 위한 환경설정 변경

쉘에 접속하기 위해 Synology DSM에 접속 > 제어판에서 SSH 포트를 활성화 합니다.

※ 해킹에 노출이 되기 쉬우니 위해 SSH 서비스는 필요할때만 활성화 하시고, 22번 포트 보다는 10022 등과 같은 남이 모를만한 포트로 사용하시기 바랍니다. 

 

 

2. PHP 패키지 설치 확인

그리고 패키지 센터에서 PHP 7.2 또는 7.4가 설치 되어 있는지 확인하세요.

 

3. 쉘 접속 및 PHP 명령어 실행

Putty 또는 SSH 접속으로 NAS의 IP:설정한 포트(ex. 주소 : 192.168.0.111 / 포트 : 22 )와 같이 접속합니다.
그리고, glpi가 설치된 경로로 이동해서, 명령어를 입력합니다. (glpi의 경로는 이때 web의 경로에 따라 경로가 달라질 수 있습니다)

※ 명령어를 입력은 오류메시지 상에서 php~ 로 시작되지만, Synology 에서는 여러개의 php가 설치되어 있기 때문에 버전을 지정하여 실행하기 위해 php72 또는 php74 등으로 시작해서 마이그레이션 명령어를 입력합니다.

 

오류 내용표시 및 마이그레이션 요청 내용(예시)

columns are using the deprecated datetime storage field type.
Run the "php bin/console glpi:migration:timestamps" command to migrate them.

 

예시내용 기준 쉘 명령 입력

$ php74 bin/console glpi:migration:timestamps

 

이후 처리 질의 및 처리 결과

 

4. 결과 확인

GLPI에 접속하면, 오류 메시지가 표시되지 않는 것을 확인 할 수 있습니다.

 

 

 

5. SSH 서비스 비활성화

보안을 위해 Synology DSM에 접속 > 제어판 > SSH 포트를 비활성화 합니다.