mediawiki를 업데이트 할 때에는 CLI에서 실행해야 합니다. CLI에서의 기본 PHP는 8.1입니다.
CLI용 PHP를 8.2로 변경하기
Bash
sudo ln -sf /usr/local/php82/bin/php /usr/bin/phpphp -v 명령어로 버전을 확인할 수 있습니다.
위키 사이트별로 업데이트 하기
CLI에서는 SERVER_NAME 변수가 없기 때문에 직접 지정해야 합니다.
Bash
SERVER_NAME=wiki.devany.kr php maintenance/run.php update1.45.1에서 1.46.0으로 업데이트
DB 업데이트 실행 중 DPL3 확장기능 에러
- 증상:
php maintenance/run.php update실행 시DynamicPageList3확장기능 내 Maintenance 클래스의 접근 제어자(updateSkippedMessage) 미치합 오류 발생Fatal error: Access level to ... CreateView::updateSkippedMessage() must be public - 원인: MediaWiki 1.46.0 상위 클래스 변경으로 인한 확장기능 호환성 문제
- 해결책:
- DB 업데이트 진행 전에
LocalSettings.php에서wfLoadExtension( 'DynamicPageList3' );비활성화(주석 처리) - DB 업데이트 명령어를 실행
SERVER_NAME=wiki.devany.kr php maintenance/run.php updateSERVER_NAME=gamewiki.devany.kr php maintenance/run.php update
- 업데이트 완료 확인 후 주석을 다시 해제합니다.
- DB 업데이트 진행 전에
MediaWiki 1.46.0 호환성 처리 (LocalSettings.php)
$wgHooks익명 함수 할당 방식 폐지 대응- 원인: 1.46.0부터
$wgHooks['HookName'][] = function() { ... };형태의 익명 함수 할당 방식이 전면 금지되어 Fatal Error를 유발함. - 해결책: 함수 이름을 지정한 후 배열에 문자로 할당하는 방식으로 변경.
- 원인: 1.46.0부터
JavaScript
function fnAddGoogleAdSenseNotice(&$data, $skin) {
// 코드 내용
return true;
}
$wgHooks['SiteNoticeAfter'][] = 'fnAddGoogleAdSenseNotice';Synology NAS 특유의 ACL 권한 문제 해결 (사이트 미로딩/500 에러)
- 증상: DB 업데이트 성공 후 브라우저 접속 시 무한 로딩 또는 500 Internal Server Error 발생. CLI 테스트 시 아래와 같은 권한 오류 출력:
Warning: dba_open(...): Failed to open stream: Permission denied Fatal error: Uncaught Error: Failed opening required '.../function.php': Permission denied - 원인:
- CLI에서
devany계정으로 스크립트를 실행하면서 캐시/vendor 폴더 내 파일 소유권 및 권한이devany로 고정됨. - 웹서버 서비스 계정인
http가 캐시 및 라이브러리 파일에 접근하지 못함. - DSM 탐색기상으로
777권한이어도 시놀로지 전용 ACL(권한 제어 목록)이 상위에 적용되어 있으면 리눅스 권한이 무시됨.
- CLI에서
- 해결책 (터미널 일괄 권한 초기화):
- 기존 캐시 파일 삭제
sudo rm -rf /volume1/web/mediawiki/cache/*
- 미디어위키 전체 폴더 권한 및 소유권 리셋 (리눅스 기본 755)
sudo chown -R devany:http /volume1/web/mediawiki sudo chmod -R 755 /volume1/web/mediawiki
- cache 및 images 폴더는 http 쓰기 권한(777) 부여
sudo chmod -R 777 /volume1/web/mediawiki/cache sudo chmod -R 777 /volume1/web/mediawiki/images
- 웹서버(http) 계정 권한으로 로컬라이제이션 캐시 재전개
sudo -u http SERVER_NAME=wiki.devany.kr php maintenance/run.php rebuildLocalisationCache --force
- 기존 캐시 파일 삭제






