MIME 에러 관련 서버 설정하는 법 좀 알려주세요.

MIME 에러 관련 서버 설정하는 법 좀 알려주세요.

QA

MIME 에러 관련 서버 설정하는 법 좀 알려주세요.

답변 2

본문

안녕하세요.

 

xxx.js 파일을 
xxx.php로 확장자를 변경한 후 파일 상단에
<?php if(!preg_match("/".$_SERVER['HTTP_HOST']."/i",$_SERVER['HTTP_REFERER'])) exit;?>
를 넣은 후
<script src="xxx.php"></script>
이런 식으로 불러오고 있습니다. 

 

그간 대여섯 곳의 호스팅사와 컴퓨터에 설치한 라라곤 등에서 아무 문제 없이 사용하고 있었는데,

클라우드에 우분투+아파치 세팅하고 사용 중인데 문제 있는 줄 몰랐다가 오늘에서야 문제가 있다는 걸 알았습니다.


이게 계산식 소스 부분인데 제대로 나오지 않고 있었습니다. 

크롬 개발자 도구에서 보면 
Refused to execute script from 'xxx.php' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled.
문제가 나오더군요.

 

검색해 보고 
<script type="text/javascript" src="xxx.php"></script>
<script type="application/x-httpd-php" src="xxx.php"></script>
이런 식으로 수정을 해봤는데 개발자 도구의 에러 문구는 없어졌지만 여전히 계산식이 제대로 작동하지 않고 있습니다.

xxx.php를 xxx.js로 변경하고 <script type="text/javascript" src="xxx.js"></script>로 불러오면 문제없고요.

 

지금 이런 상황에서 서버 설정 어디에서 어떤 부분을 추가 혹은 수정하면 해결이 가능한지 궁금합니다.

검색해 보니 httpd.conf에서 뭔가 설정을 해야 하는 거 같은데
라라곤이나 클라우드나 httpd.conf 파일 자체가 없습니다.

 

관련이 있는지 모르겠는데 파일 이리저리 살펴보니 
제 컴에 설치한 라라곤의 etc/apache2/mod_php에 mime 관련 내용이 있는데


<IfModule mime_module>
    AddType application/x-httpd-php .php
</IfModule>

이런 식으로 되어 있고,

 

문제 있는 클라우드는 etc/apache2/ 폴더 안에 
확장자 없는 magic 파일이 있는데 mime 관련 내용이 아래와 같이 있습니다.


# Added ISO mimes
0    string        MOVI          video/sgi
4    string        moov          video/quicktime
4    string        mdat          video/quicktime
4    string        wide          video/quicktime
4    string        skip          video/quicktime
4    string        free          video/quicktime
4    string        idsc          image/x-quicktime
4    string        idat          image/x-quicktime
4    string        pckg          application/x-quicktime
4    string/B    jP          image/jp2
4    string        ftyp
>8    string        isom          video/mp4
>8    string        mp41          video/mp4
>8    string        mp42          video/mp4
>8    string/B    jp2          image/jp2
>8    string        3gp          video/3gpp
>8      string          avc1          video/3gpp
>8    string        mmp4          video/mp4
>8    string/B    M4A          audio/mp4
>8    string/B    qt          video/quicktime

 

아시는 분 답변 주시면 정말 감사하겠습니다.

이 질문에 댓글 쓰기 :

답변 2

php 내부에선 없나요? 마임타입건들거나 헤더 부분 확인해보세요

친절하신 답변 감사합니다.
서버를 말씀하시는건지 제 홈페이지내 파일을 말씀하시는건지 모르겠는데
서버내 파일들 찾아봐도 관련 내용 없는거 같고
제 홈페이지내 파일에서는 본문에 말한거 외에 따로 뭘 한거 없습니다.
최소한 대여섯 곳의 호스팅에서 문제 없었고요.

보통 호스팅을 쓰면 웹서버 마임타입 건들일이 없구요
직접 서버를 운영하면 어딘가에 묶여 있어요
호스팅 쓰면 어딘가에 header(); 함수가 보여요 해킹 당한거면 data 폴더 내에서 있어요

클라우드에 서버 세팅 처음이라서 뭐가 뭔질 잘 모르겠습니다.
계속 삽질하다 성공하고 이젠 문제없다고 생각했는데 저 문제가 발견되더라고요.
우분투에 아파치, PHP 등 그냥 설명 보고 설치했고 따로 뭐 건든 건 없습니다.
해킹일거 같지도 않고요.
일단 계속 또 검색해 봐야겠네요.

js화일을 불러오는 위치에서 조건으로 불러오면 될 것을....

js화일에다 php코드를 넣어서 해야하는 이유가 무엇인가요?

 

<?php if(!preg_match("/".$_SERVER['HTTP_HOST']."/i",$_SERVER['HTTP_REFERER'])){

<script src="xxx.js"></script>

<?php } ?>

 

 

답변 감사합니다.
그럴 사정이 있었습니다.
그리고 제가 본문에 헷갈리게 쓴거 같은데 지금 문제는
<?php if(!preg_match("/".$_SERVER['HTTP_HOST']."/i",$_SERVER['HTTP_REFERER'])) exit;?>
와는 아무 상관 없습니다.
파일안에 <?php if(!preg_match("/".$_SERVER['HTTP_HOST']."/i",$_SERVER['HTTP_REFERER'])) exit;?>가 없어도 파일명이 js가 아니라 php면 문제가 생기는 상황입니다.

그리고 적어주신 내용이 뭔지 모르겠으나 저렇게 적용하면 홈페이지 자체가 깨지네요.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 48
© SIRSOFT
현재 페이지 제일 처음으로