디렉토리 링크가 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이 되니 가능했습니다.
대체로 리눅스나 우분투 시스템에서 이런 현상이 나타납니다.
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>
이부분을 삽입합니다.
위와 같이 수정한 후 꼭 아파치서비스를 재시작 하는거 잊지 마세요.
답변을 작성하려면 로그인이 필요합니다.