테스트 사이트 - 개발 중인 베타 버전입니다

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

daumev 2년 전 조회 1,978

디렉토리 링크가 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개

daumev
2년 전

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

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로 되어 있었으니 당연히 안될 수 밖에요.

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

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

daumev
2년 전

요약하여 정리하면  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이 되니 가능했습니다.

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

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

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

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

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

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

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

daumev
2년 전

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

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

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

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

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

플라이
2년 전

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

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

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

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

s
2년 전

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

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

</p>

<p>PHP5에서는</p>

<p><code>/etc/apache2/mods-available/php5.conf 파일을 열구</code></p>

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

<p><code>이것을 삽입합니다.</code></p>

<p>

</p>

<p><code>PHP7에서는 httpd.conf파일에서 </code></p>

<pre>
<code><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></code></pre>

<p><code>이부분을 삽입합니다.</code></p>

<p>

 

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

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

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

daumev
2년 전

index.html은 잘 뜨니까요.

접속하면 소스가 뜨는 걸 보면 디렉토리 설정은 맞은 것 같습니다. php가 소스코드를 html로 버꾸어 주는 것을 않는 것이라고 봐야하는 데요.

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

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

M
2년 전

apache 셋팅 문제 같습니다.

httpd.conf 쪽을 확인해보셔야 할듯 합니다.

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

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

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

로그인