HTTPd는 PHP 코드를 실행하는 대신 표시합니다.

HTTPd는 PHP 코드를 실행하는 대신 표시합니다.

내 설정:

# grep php /etc/httpd/conf/httpd.conf 
LoadModule php5_module  modules/libphp5.so
AddType x-httpd-php .php
AddHandler php5-script .php

# grep PHP /etc/httpd/conf/httpd.conf 
PHPIniDir /etc/

# grep open_tag /etc/php.ini 
; short_open_tag
short_open_tag = On

# /etc/init.d/httpd start
Starting httpd: [Tue Dec 04 03:26:29 2012] [warn] module php5_module is already loaded, skipping
httpd: apr_sockaddr_info_get() failed for holdsworth
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
                                                           [  OK  ]

# cat /var/log/httpd/error_log 
[Tue Dec 04 03:26:37 2012] [notice] SELinux policy enabled; httpd running as context unconfined_u:system_r:httpd_t:s0
[Tue Dec 04 03:26:37 2012] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Tue Dec 04 03:26:37 2012] [warn] module php5_module is already loaded, skipping
[Tue Dec 04 03:26:45 2012] [notice] Digest: generating secret for digest authentication ...
[Tue Dec 04 03:26:45 2012] [notice] Digest: done
[Tue Dec 04 03:26:53 2012] [warn] ./mod_dnssd.c: No services found to register
[Tue Dec 04 03:26:53 2012] [notice] Apache/2.2.15 (Unix) DAV/2 PHP/5.3.3 configured -- resuming normal operations
[Tue Dec 04 03:28:35 2012] [notice] caught SIGTERM, shutting down

access_log가 비어 있습니다. index.php를 열면 내용이 표시됩니다.

[root@holdsworth steve]# ls -lah /var/www/html/php/index.php 
-rwxrwxrwx. 1 root root 1.7K Oct 31 18:38 /var/www/html/php/index.php

답변1

둘 다 가지고 계신 것 같습니다.수 실행그리고SELinux활성화되었으므로 실행을 허용하도록 수정해야 합니다.PHP스크립트, 확인 시작컴퓨터 그래픽 이미지 처리허용되는 스크립트:

getsebool -a | egrep 'cgi|builtin_scriptin'

그렇지 않은 경우:

setsebool -P httpd_enable_cgi 1
setsebool -P httpd_builtin_scripting 1

또한 PHP 스크립트에 필요한 확장 플래그가 있는지, Apache 프로세스가 소유하고 있는지, SElinux와 suEXEC를 모두 만족하도록 실행 가능한지 확인하세요.

ls -lZ *.php

chcon -t httpd_sys_script_exec_t *.php
chmod +x *.php
chown  xxxx:yyyyyy  *.php

ls -l *.php

또는 공용 서버가 아닌 경우 둘 다 비활성화합니다.

바라보다:http://beginlinux.com/server_training/web-server/976-apache-and-selinux

답변2

먼저, 두 번째로 mod_php가 로드되는 위치를 찾아야 한다고 생각합니다.

[warn] module php5_module is already loaded, skipping

나는 경고 메시지가 있는 Apache 구성 파일을 굳게 믿습니다. 때로는 경고 메시지가 말하는 것보다 더 많은 의미를 갖습니다.

둘째, mod_php가 파일을 구문 분석하도록 하는 다른 방법을 시도해 보십시오:

<IfModule php5_module>
    <FilesMatch "\.php$">          
        SetHandler application/x-httpd-php
    </FilesMatch>  
</IfModule>

마지막으로 고려해보세요어디mod_php에 지시문을 넣습니다. VirtualHost 지시문이 있는 경우 그곳에서 mod_php를 활성화해야 할 수도 있습니다.

답변3

귀하의 구성 파일을 사용하고 파일 끝에 다음을 추가했습니다 httpd.conf. addType, AddHandler, PHPIniDir.

CentOS 5에서는 표시되지 않고 작동합니다 index.php.

답변4

해결책은 브라우저 캐시를 지우는 것입니다. 즉, CTRL-를 누르는 것입니다.F5

php는 작동하지만 브라우저에서 이전 버전의 php 콘텐츠를 제공하고 있습니다.

관련 정보