http://cpdev.tistory.com/23

관리자 페이지 무료 템플릿 모음


https://colorlib.com/wp/free-bootstrap-admin-dashboard-templates/

HTML CSS 이미지 블러효과 (뿌옇게 만들기)


https://nubiz.tistory.com/443

https://fronteer.kr/service/html2jade

https://studyforus.com/help/274040




• HTTP를 통한 동적 적응 형 스트리밍 

• ISO 23009-1-2012 MPD 및 세그먼트 형식 

• HTTP 호환 표준을 통한 미디어 컨텐트 전달 사양.

• ISO 기본 미디어 파일 형식 및 MPEG-2 전송 스트림에 대한 정의 된 지원. 실제적으로 이는 H264 및 AAC와 동일합니다.

• DASH 콘텐츠는 미디어 프레젠테이션 설명 및 관련 콘텐츠 세그먼트로 구성됩니다. 

• XML 스키마를 사용합니다.

• Apple의 HTTP Live Streaming (HLS)과 유사하게 DASH에는보다 포괄적 인 기능 세트가 포함되어 있습니다.


• Dynamic Adaptive Streaming over HTTP 

• ISO 23009-1-2012 MPD and Segment Formats 

• Specification on media content delivery via HTTP-compliant standards.

• Defined support for ISO Base Media File Format and MPEG-2 Transport Streams. 

• In practical terms, this equates to H264 and AAC

• DASH content comprises of a Media Presentation Description and associated content segments. 

• Uses XML schema.

• Similar to Apple’s HTTP Live Streaming (HLS), DASH contains a more comprehensive feature set.

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

widevine이란 무엇인가  (0) 2017.09.04

다른 환경에 있던 스프링 프로젝트를

내 개발환경으로 끌어들이니 메이븐 pom.xml에서 Missing artifact 에러가 발생했다..

한참 이유를 찾아 다녔는데

<type> 엘리먼트에 대한 속성을 지정해주지 않았기 때문이었다.

메이븐을 통해 라이브러리 의존성을 지정해 줄 때,

경우에 따라 어떤 메이븐 라이브러리는 pom에 정의된 dependency를 받아오게끔 구성되어 있다..

이런 라이브러리를 적용할때 <type>pom</type>을 빼먹으면

jar를 찾을 수 없어서 에러가 발생한다.


예시)

<!-- https://mvnrepository.com/artifact/com.github.oshi/oshi-dist -->

<dependency>

    <groupId>com.github.oshi</groupId>

    <artifactId>oshi-dist</artifactId>

    <version>3.4.0</version>

    <type>pom</type>

</dependency>


참고)

https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html

http://knight76.tistory.com/entry/maven-type-pom


crontab은 일정 시간동안 정해놓은 패턴을 반복하여 프로그램을 제어 할 수 있는 리눅스의 기능이다.

이를 활용하면, 일정시간마다 실행되어야하는 프로그램들을 간편하게 처리 및 관리해 줄 수 있다.

(마치 윈도우 기반 서버의 작업 스케줄러와 유사하다고 보면된다..)

프로젝트 중, 일정시간마다 php를 실행시켜줘야하는 기능을 구현해야 했는데

이를 통해 빠르게 해결 할 수 있었다.



1. 우선 php엔진이 어느 위치에 존재하는지 확인한다.

# whereis php 


2. crontab을 편집하기 위한 명령어 입력한다. (vi로 동작함)

# crontab -e 


3. 2.를 통해 오픈된 문서에 crontab 룰에 맞춰서 명령어를 작성해준다.

10 * * * * /usr/bin/php -q /.../process.php

맨 앞의 5개 파라미터(* * * * *)은 각각 분, 시, 일, 월, 요일(각 파라미터별 입력범위 : 00~59, 00~23, 00~31, 01~12, 0~7)을 의미한다.

즉 상기 명령어는 각 시간별 10분에 실행하라는 뜻이다.

하지만, 시간별 10분이 아닌 "10분 마다" 실행을 하려면

 */10 * * * *를 입력한다.

그 다음 파라메터는 php엔진의 위치, -q는 실행하겠다는 옵션을 의미한다.

그 다음에 입력된 경로는 실행할 php파일경로다.


4. 기타 명령어들

- crontab 재시작

# /etc/rc.d/init.d/crond restart


- 현재 crontab 리스트 보기

# crontab -l 


- 로그 조회

# tail /var/log/cron


- 작업 종료(사용 시, crontab 명령어들이 사라진다)

# crontab -r 



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

+ Recent posts