WAMP로 테스트가 마친 PHP프로젝트를

cent OS로 옮겼더니... 동작이 안되었습니다..


도대체 어디가 문제였을까.. 디버깅을 시도했습니다...

파일 접근(쓰기 / 읽기 등)에 있어서 문제가 발생했더라구요

대체 뭐가문제일까 찾아보았습니다..


파일 권한을 777로도 줘보고, 상위디렉터리까지 권한을 바꿔도 보고

파일을 새로 생성도 해보고,, 이상한 행동들은 다 했습니다..


검색을 열심히 해보니 전부 삽질이었습니다.

문제는 selinux가 실행된 상태였기 때문이었습니다.


selinux란?

-------------------------------------------------------------------------

보안 강화 리눅스(Security-Enhanced Linux, 간단히 SELinux)는 미국 국방부 스타일의 강제 접근 제어(MAC)를 포함한 접근 제어 보안 정책을 지원하는 매커니즘을 제공하는 리눅스 커널 보안 모듈이다. 다양한 리눅스 배포판에 추가할 수 있는 커널 수정 및 사용자 공간 도구들의 모임이다. 보안 강화 리눅스는 보안 결정 진행을 보안 정책과는 별개로 함과 동시에 보안 정책의 영향을 받는 소프트웨어의 양을 간소화하는 것을 시도하는 구조를 이룬다.[1][2] 보안 강화 리눅스의 기반이 되는 주요 개념들은 미국 국가안보국의 일부 초기 프로젝트들로 거슬러 올라간다.

이 보안 모듈은 2003년 8월 8일 버전 2.6을 기점으로 주류 리눅스 커널에 통합되어 있다.

----------------------------------------------------------------------

라고 위키에서 말하는군요

위키출처 : https://ko.wikipedia.org/wiki/%EB%B3%B4%EC%95%88_%EA%B0%95%ED%99%94_%EB%A6%AC%EB%88%85%EC%8A%A4


[해결방법]

지금 실행된 selinux 종료 (재부팅 설정에 따라 부팅하면 다시 켜질수있음)

# setenforce 0


부팅 시 실행하지 않기 설정

# vi /etc/selinux/config

SELINUX=disabled

(부팅때마다 실행할 경우 SELINUX=enforcing)


관련된 이슈나 정보가 있으면 댓글로 알려주세요~


Fossology는 PHP기반의 웹 UI 인터페이스를 제공하고 있습니다.

주소는 디폴트값으로 설정되어있다면 "[서버host주소]:8081/repo" 입니다.


그런데 이걸로 무언가 더 업데이트하거나 서비스를 만들어보고 싶다면

누구나 UI부터 바꾸어주고싶다는 생각이 들 것입니다.


저번 포스트에서 이러한 웹페이지들이 어느 경로에 위치해 있는지

간단히 적었습니다만... 경로는 찾긴 찾았으나 도대체

무엇을 어떻게 수정해야 할지 감이 오지 않습니다.


Fossology 웹페이지를 조금만 연구해보신들이라면 눈치채셨겠지만,

URL에 mod라는 get Parameter를 넘겨줌으로써 사용자가 원하는 링크를 처리하는 것을 발견하셨을 겁니다.



바로 이런것 처럼요. 예를들어서 웹페이지에 처음들어갔을때 홈화면은 mod=home 입니다.

mod에 값을 넣어서 요청하면, 각 값마다 반응하여 이에 적합한 페이지를 리턴해주는 기능을 수행하는 페이지들이 있습니다.

하나의 페이지에는 여러개의 모듈(php파일)들이 모여 구성되어 있으므로,

이걸 하나로 묶어주는 파일을 찾으면 작업이 수월할거라고 생각됩니다.

그렇다면 하나로 묶어주는 파일이 어떻게 mod라는 쿼리를 받아서 처리하는지 안다면,

자신이 원하는 페이지를 빠르게 찾아내어 수정이 가능할 것입니다.


찾아보니 다음과 같군요


문자열을 검색하는 프로그램을 통해, mod라는 쿼리에 대해 어떻게 값을 가져오는지 알 수 있었습니다.

아, 알고봤더니 const NAME = {VALUE};를 통해 값을 가져오는 것이었네요!

예를들어 우리가 처음 웹에 들어갔을때 접하는 메인화면의 경우

mod=home을 get parameter로 요청하게 되고,

이는 HomePage.php라는 녀석이 응답하게 됩니다.

사용자가 쿼리값을 home으로 주었으니, 이 페이지는 결론적으로 home.html.twig라는 웹페이지를 리턴하게 되네요..

즉, 메인화면을 수정하고 싶으면 home.html.twig의 내용 및, home.html.twig에서 import(?)하고 있는 php모듈들을

원하시는대로 수정하시면 되겠네요!

이상 하나의 웹페이지를 구성하게 되는(사용자가 보낸 url의 쿼리값을 받아내는) 페이지를 알아보았습니다.

질문이나 제안은 댓글로 남겨주세요~




추가)

어떻게 보면 const Name = {VALUE};의 내용을 가지고있는 파일들의 갯수가 즉, Fossology에서 기본으로

제공하는 웹환경의 총 페이지 갯수가 얼추 되겠네요, 제가 검색한 경우에는 총 31개가 나왔습니다.

(www/ui 디렉터리부터 검색)

'Develop Issue > Fossology' 카테고리의 다른 글

fossology web 편집하기  (0) 2017.11.10
Fossology란 무엇인가  (0) 2017.11.09


fossology web 편집, 수정하기


이 포스팅에서는 localhost:8081/repo로 접속했을 때 나오게되는 fossology 웹 인터페이스 페이지를

수정하기 위한 경로에 대해서 알아봅니다.


우선 웹페이지들이 담긴 디렉터리를 찾아 들어갑니다

fossology가 패키지에 의해 설치 되었다면, 

fossology 웹 루트는 "/usr/share/fossology/www/"이며, 

소스 설치가 사용 된 경우 웹 루트는 '/usr/local/share/fossology/www/'입니다.

저같은 경우에는 Docker를 이용하여 설치했기 때문에 후자의 경로로 들어갔습니다.


현재 다른 부분에 대한 내용도 파악중인 부분이긴 하지만,

여러분들이 /repo페이지에서 보게되는 핵심적인 html소스들은 다음과 같습니다.


해당 웹루트 경로에서부터 "ui\template"


우선 여기로 들어가면, twig 확장자가 나오게 됩니다..

해당 내용을 보시면 대체로 우리가 눈에 보이게 되는 html 파일들이 들어있습니다.


html이면 html이지, 뒤에 붙은 twig는 무엇인지 의문을 가지게 됐는데요,

확인해보니 PHP 언어의 템플릿 엔진이라고 합니다..(한국어로 된 정보는 거의 없는것 같네요 -.-;;;)

구태여 twig가 무엇인지 잘 알진 못하더라도, 결국에는 우리가 잘 알고있는 html 소스코드들이 나와있기 때문에

뭔가 부족하고 허접(?)해 보이는 UI를 수정 할 수 있을 것같은 자신감이 듭니다!


fossology에 대한 새로운 정보를 얻게 되면 다시 포스팅 남기겠습니다.

fossology에 대한 자료 자체가 얻기가 힘드네요 ㅜ.ㅜ;;;


참조 url

fossology 웹루트 경로 : http://archive15.fossology.org/projects/fossology/wiki/Config-How_to_Configure_the_FOSSology_site

twig : https://en.wikipedia.org/wiki/Twig_(template_engine)

'Develop Issue > Fossology' 카테고리의 다른 글

Fossology URL query별 접속되는 페이지 알아보기  (1) 2017.11.13
Fossology란 무엇인가  (0) 2017.11.09

+ Recent posts