사용자 계정 웹페이지에서 php 소스가 출력

사용자 계정 웹페이지에서 php 소스가 출력

QA

사용자 계정 웹페이지에서 php 소스가 출력

본문

디렉토리 링크가 var/www/html로 설정되어 있습니다.

var/www/html/index.html, var/www/html/phpinfo.php 모두 잘 뜹니다.

웹브라우저에서 kauf.iptime.org 엔터,kauf.iptime.org/phpinfo.php 엔터 모두 잘 뜹니다.

문제는 사용자 계정입니다.

웹페이지 위치를  사용자/public_html로 설정되어 있습니다. 사용자 계정은 kim입니다.

home/kim/public_html/index.html ,home/kim/public_html/phpinfo.php 두 파일을 두었습니다.

웹브라우저에서 

kauf.iptime.org/~kim엔터 하면 index.html이 잘 뜹니다.

kauf.iptime.org/~kim/phpinfo.php 엔터 하면 php 소스가 뜹니다.

php문제인 것 같은데 chmod는 777로 해두었습니다. 하부까지.

왜 그런지 감이 안옵니다.

이 질문에 댓글 쓰기 :

답변 8

대체로 리눅스나 우분투 시스템에서 이런 현상이 나타납니다.

PHP버전별로 이 문제를 해결하는 방법이 다릅니다.


PHP5에서는
/etc/apache2/mods-available/php5.conf 파일을 열구

<FilesMatch ".+\.ph(p[345]?|t|tml)$">
    SetHandler application/x-httpd-php
</FilesMatch>

이것을 삽입합니다.

PHP7에서는 httpd.conf파일에서 

<IfModule php7_module>
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
    <IfModule dir_module>
        DirectoryIndex index.html index.php
    </IfModule>
</IfModule>

이부분을 삽입합니다.

 

위와 같이 수정한 후 꼭 아파치서비스를 재시작 하는거 잊지 마세요.

apache 설정단에서 해당 디렉토리의 실행시 php함수 실행선언이 되어 있지않아 php코드가 그대로 노출되어지는걸로 보여집니다.
아니면 php 버전특성상
<? 이렇게 하면 그냥 코드가 노출되고 <?php 이렇게 했을때 php가 제대로 실행되는거라면

short_tag php.ini 설정 부분의 문제일수도 있으니 참고하셔서 체크해 보시면 좋을듯 합니다.

감사합니다. 시도해 보겠습니다.

short_tag  는 php.ini에서 On으로 했습니다. var/www/html에 있는 phpinfo.php가 잘 보이는 걸 보면 그 문제는 아닌 듯합니다.

우분투 리눅스20.04, php7.4입니다. etc/apache2 아래로 가니 httpd2.conf가 있습니다. 이 파일이 맞나 모르겠습니다. 끝에 추가하고, apache restart하고 확인했는데 여전히

실제로 실행하는 아파치의 경로가 /var/www/html/ 아닌경우도 있을수 있어요

파일이 rsync로 되는지 여부도 확인해보면 좋을거 같네요

일반적으로 txt 파일을 열어 확인해보는것도 좋을것 같습니다.

요약하여 정리하면  var/www/html은 문제가 없습니다. index.html. phpinfo.php 둘다 뜨니까요.

사용자 계정 home/kim/public/은 index.html은 되고 phinfo.php 만 소스가 뜹니다.

아파치 directoryindex 설정은 맞다고 보아야 하고 php가 var/www/html은 되고   home/kim/public은 소스가 뜨니 php.ini의 directoryindex 와 관련이 있는 것 같은데 모르겠습니다. 

php.ini를 올려놓았습니다.

http://kauf.iptime.org/~kim/tt.html

(home/kim/public/은 index.html이 되니 가능했습니다.

해결했습니다. 어떻게 보면 너무나 당연한 것을 놓치고 있었습니다. 사용자 계정의 문제니까 사용자 계정 디렉토리 사용부분을 보아야 했었습니다.

etc/apache2/mods-available/php7.4.conf를 수정했습니다. 끝 부분에 

<IfModule mod_userdir.c>
    <Directory /home/*/public_html>
        php_admin_flag engine On
    </Directory>
</IfModule>

php_admin_flag engine On 이 Off로 되어 있었으니 당연히 안될 수 밖에요.

답변을 작성하시기 전에 로그인 해주세요.
전체 0 | RSS
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT