사용자 계정 웹페이지에서 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개
해결했습니다. 어떻게 보면 너무나 당연한 것을 놓치고 있었습니다. 사용자 계정의 문제니까 사용자 계정 디렉토리 사용부분을 보아야 했었습니다.
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로 되어 있었으니 당연히 안될 수 밖에요.
댓글을 작성하려면 로그인이 필요합니다.
요약하여 정리하면 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 파일을 열어 확인해보는것도 좋을것 같습니다.
댓글을 작성하려면 로그인이 필요합니다.
감사합니다. 시도해 보겠습니다.
short_tag 는 php.ini에서 On으로 했습니다. var/www/html에 있는 phpinfo.php가 잘 보이는 걸 보면 그 문제는 아닌 듯합니다.
우분투 리눅스20.04, php7.4입니다. etc/apache2 아래로 가니 httpd2.conf가 있습니다. 이 파일이 맞나 모르겠습니다. 끝에 추가하고, apache restart하고 확인했는데 여전히
댓글을 작성하려면 로그인이 필요합니다.
apache 설정단에서 해당 디렉토리의 실행시 php함수 실행선언이 되어 있지않아 php코드가 그대로 노출되어지는걸로 보여집니다.
아니면 php 버전특성상
<? 이렇게 하면 그냥 코드가 노출되고 <?php 이렇게 했을때 php가 제대로 실행되는거라면
short_tag php.ini 설정 부분의 문제일수도 있으니 참고하셔서 체크해 보시면 좋을듯 합니다.
댓글을 작성하려면 로그인이 필요합니다.
대체로 리눅스나 우분투 시스템에서 이런 현상이 나타납니다.
PHP버전별로 이 문제를 해결하는 방법이 다릅니다.
PHP5에서는
/etc/apache2/mods-available/php5.conf 파일을 열구
SetHandler application/x-httpd-php
이것을 삽입합니다.
PHP7에서는 httpd.conf파일에서
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
DirectoryIndex index.html index.php
이부분을 삽입합니다.
위와 같이 수정한 후 꼭 아파치서비스를 재시작 하는거 잊지 마세요.
댓글을 작성하려면 로그인이 필요합니다.
index.html은 잘 뜨니까요.
접속하면 소스가 뜨는 걸 보면 디렉토리 설정은 맞은 것 같습니다. php가 소스코드를 html로 버꾸어 주는 것을 않는 것이라고 봐야하는 데요.
댓글을 작성하려면 로그인이 필요합니다.
apache 셋팅 문제 같습니다.
httpd.conf 쪽을 확인해보셔야 할듯 합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인