질문/조언질답게시판

php를 7.1에서 7.2로 변경하였습니다.

0.1 차이이지만 많은 변화가 있다는 이야기로 php7.2로 업데이트를 하였습니다.

 

업데이트 후에는 당연하게도 500 에러가 발생하였고,

기준 모듈에서 사용중인 return new Object 값을 return new BaseObject로 변경해야했습니다.

 

제가 해결한 방식은 

config.inc.php 파일에 ini_set('display_errors', true); 을 입력하고 에러가 나는 파일에서 수정하는 것이였습니다.

변경하면 500 에러가 해결됩니다.

 

7.2로 업그레이를 하여도 초보자분들도 전혀 문제가 되지 않는 것이죠.

 

문제는 모듈이 새로 업데이트 되거나 코어가 업데이트되면, 다시 수정을 해줘야 합니다.

따라서 서버단에서 내용을 일괄변경하는 명령어로 처리했으면 하는데요.

 

제가 찾아본 방법은

find ./ -name "*.php" -exec sed -i 's/return new Object/return new BaseObject/g' {} \;

find ./ -name "*.php" -exec sed -i 's/return\snew\sObject/return\snew\sBaseObject/g' {} \;

 

입니다. 구글링해서 적용해봤는데 결과는 실패했습니다.

정규식에서 공백을 \s로 처리했는데도 실패한 이유가 무엇인지 궁금합니다.

 

  • profile
    저는 그냥 라이믹스 깃헙 켜고 기본 모듈 제외하고 모듈 일일히 돌아가면서 new Object -> new BaseObject로 바꿨네요.. 모르는 자는 손이라도 고생해야죠..
    시간도 오래걸릴줄 알았는데 넉넉잡아 한시간 정도로 다 끝나더라고요!.. 흑..

    그런데 보니까 소셜xe의 경우 socialxe/lib/ 에 있는 파일들도 수정을 해줘야 되더라고요.. 로그보고서 오류나서 알게되었네요..
    저렇게 일괄 변경이 되면 얼마나 좋은까요 ㅜㅜ
  • profile profile
    네 이걸 일일이 수정해야 한다는걸 저도 이번에 처음 알게 되었습니다.
    그래도 조금만 관심을 가지면 해결되는 문제라서 다행이라고 생각합니다.
    저는 관리하는 사이트가 여러개라서 일괄로 되지 않으면 정말 지옥을 맛보게 됩니다. ㅎㅎ
  • profile

    자답해봅니다. ^^
    두번째 명령어가 변경을 잘못하는 거였네요. 찾는건 되었고, 변경하는건 이렇게 가능할지 테스트 해봐야 겠습니다.


    find ./ -name "*.php" -exec sed -i 's/return\snew\sObject/return new BaseObject/g' {} \;

    find ./ -name "*.php" -exec sed -i 's/extends\sObject/extends BaseObject/g' {} \;

     

    이걸로 잘 되네요. ㅎㅎ