미디어위키 1.31 버전에서 SyntaxHighlight 동작 안하는 경우
미디어위키 1.31 버전을 설치하면서 설정 과정에서 기본 확장프로그램으로 SyntaxHighlight를 체크하여 설치하였습니다.

그런데 아래 그림과 같이 코드에 대한 하이라이팅(강조)가 적용되지 않았습니다. 코드블록은 생성되는 것 같은데 문법이 인식이 안되어 CSS가 입혀지지 않은 모습입니다. 구문 강조 오류라고 나타났습니다.






원인파악을 위한 디버깅 로그 출력 설정
먼저 원인을 파악하기 위해 LocalSettings.php에 디버깅 로그 설정을 추가합니다. 저는 가장 마지막줄에 추가했습니다(저장필요). 디버깅 로그는 오류가 나타났을때 보여지는 로그인데, 보안상 위험하므로 반드시 오류를 확인한 후 설정을 지워주어야 합니다. (제타위키 참고)
$wgShowExceptionDetails = true;
$wgDebugToolbar = true;
$wgShowDebug = true;
$wgDevelopmentWarnings = true;
error_reporting( -1 );
ini_set( 'display_errors'1 );
cs



오류가 브라우저 화면상에 그대로 노출되는군요. 여튼 오류 로그를 보니 python3 을 호출할때 퍼미션이 거부된것으로 보입니다. 그런데 저는 미디어위키를 설치하는 과정에서 python3버전을 설치한 기억이 없습니다(?)





원인. 파이썬이 설치되지 않았음
알아보니 미디어위키 1.31에 포함되어 있는 SyntaxHighlight 확장 기능은 python3 버전이 필요하다고 합니다. 그 이전 버전은 python2 버전으로 가능한 것 같습니다.

따라서 파이썬을 설치해 주어야 하며 php에서 실행할 수 있도록 파이썬이 전역 환경설정(PATH설정)으로 등록되어 있어야 합니다. 다음글을 참고하여 python을 설치해 줍니다.


파이썬이 설치된 이후에 파이썬 인터프리터를 python3이라는 이름으로 심볼릭 링크를 하나 생성해 줍니다. 이유는 미디어위키 SyntaxHighlight php에서 "python3" 으로 파이썬을 실행하기 때문입니다.
# ln -/bin/python3.6 /bin/python3
cs

이제 python3 을 실행하면 실질적으로 python3.6이 실행됩니다.





파이썬을 설치하고 링크 설정을 해주었습니다.
이전에 구문강조가 되지 않았던 문서를 다시 편집하여 저장하니 제대로 하이라이팅이 되는것을 볼 수 있습니다.


블로그 이미지

도로락

IT, 프로그래밍, 컴퓨터 활용 정보 등을 위한 블로그

댓글을 달아 주세요! 질문 환영합니다!