2026, 새로운 도약을 시작합니다.

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

안녕하세요.

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 관련 내용이 있는데

Copy


    AddType application/x-httpd-php .php


이런 식으로 되어 있고,

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

Copy
# 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개

채택된 답변
+20 포인트

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 6개

친절하신 답변 감사합니다.
서버를 말씀하시는건지 제 홈페이지내 파일을 말씀하시는건지 모르겠는데
서버내 파일들 찾아봐도 관련 내용 없는거 같고
제 홈페이지내 파일에서는 본문에 말한거 외에 따로 뭘 한거 없습니다.
최소한 대여섯 곳의 호스팅에서 문제 없었고요.
검색해 보니 etc/apache2/mods-available/php7.4.conf에서 수정해 주는거 같은데
설정을 해봐도 안되네요.
보통 호스팅을 쓰면 웹서버 마임타입 건들일이 없구요
직접 서버를 운영하면 어딘가에 묶여 있어요
호스팅 쓰면 어딘가에 header(); 함수가 보여요 해킹 당한거면 data 폴더 내에서 있어요
클라우드에 서버 세팅 처음이라서 뭐가 뭔질 잘 모르겠습니다.
계속 삽질하다 성공하고 이젠 문제없다고 생각했는데 저 문제가 발견되더라고요.
우분투에 아파치, PHP 등 그냥 설명 보고 설치했고 따로 뭐 건든 건 없습니다.
해킹일거 같지도 않고요.
일단 계속 또 검색해 봐야겠네요.
text/html 이게 없는거 아닌가요? 마임타입 뭔가 빠진거 같아요
etc/apache2/ magic에서 말씀하시는거지요?
거기서 설정해보고 테스트해봐도 동일하네...
일단 확장자 다시 js로 변경시킨 상태입니다.
계속 시간내 주셔서 정말 감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

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

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

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

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

<?php } ?>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

답변 감사합니다.
그럴 사정이 있었습니다.
그리고 제가 본문에 헷갈리게 쓴거 같은데 지금 문제는
<?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면 문제가 생기는 상황입니다.

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

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고