Apache 서버에서 PHP 스크립트가 실행되지 않습니다


54

방금 Apache와 PHP5를 다시 설치했지만 문서 루트를 방문하면 "다운로드"파일 만 다운로드됩니다. 그리고 documentroot /index.php를 시도 하면 PHP 파일 만 다운로드됩니다.

PHP가 설치되었지만 Apache가 실행하지 않는 것 같습니다.
사람들은 내 모듈에 '로드 모듈'라인을 추가 할 것을 제안 httpd.conf했지만 그 파일이 없습니다.

답변:


103

타자:

sudo apt-get install apache2 php5 libapache2-mod-php5

필요한 모든 것을 설치하고 PHP를 지원하여 아파치 서버를 시작합니다.

PHP 모듈이로드되었는지 확인하려면 다음을 입력하십시오.

a2query -m php5

활성화되어 있지 않으면 다음을 사용하여로드하십시오.

sudo a2enmod php5

아파치를 다시 시작하십시오.

sudo service apache2 restart

php7.x 업데이트 (우분투 16.04, 16.10, 18.04, 18.10에서 테스트 )

의견 덕분에 php7.x에 대한 답변을 업데이트했습니다.

설치:

sudo apt-get install apache2 php7.x libapache2-mod-php7.x 

검증:

a2query -m php7.x

하중:

sudo a2enmod php7.x

아파치를 다시 시작하십시오.

sudo service apache2 restart

a2enmodmods-available과 mods-enabled 사이에서 파일을 수동으로 복사하는 것보다 사용하는 것이 좋습니다 . a2enmod심볼릭 링크를 작성하므로 구성 사본이 하나만 있습니다.
jkt123

@ jkt123 당신이 맞아요. 조언 주셔서 감사합니다, 나는 내 대답을 편집합니다.
girardengo

제 경우에는 "오류 : 모듈 php5가 없습니다!"라고 말합니다. 그것은 설치되어있다
Marian Klühspies

3
php7과 우분투 16.04의 apt-get install libapache2-mod-php경우 a2query -m php7.0, 이러한 명령을 순서대로 실행했습니다 .service apache2 restart
marlo

우분투 14.04의 경우 : # a2query -m php7.0 php7.0 (사이트 관리자에 의해 활성화 됨) 여전히 PHP 코드가 실행되지 않습니다
Ashish Karpe

19

또 다른 일반적인 원인은 <?기본 php.ini 구성에 의해 PHP 짧은 태그 가 활성화되어 있지 않기 때문에 업그레이드 또는 재설치 후 해당 설정이 해제되어 PHP 코드에 따라 달라질 수 있습니다. 교체 시도 <?와 함께 <?php.

( 신용 )


13

Ubuntu 16.04 는 PHP 7로 옮겨졌습니다.이 단일 명령은 다음 작업을 수행합니다.

sudo apt-get install apache2 php libapache2-mod-php

다음 libapache2-mod-php은 libapache2-mod-php7을 설치하는 메타 패키지입니다.


2

열기 php.ininano터미널 :

sudo nano /etc/php/php5.6/apache2/php.ini

그런 다음 변경하십시오.

short_open_tag = Off

short_open_tag = On

그런 다음 apache2를 저장하고 다시 시작하십시오.

sudo systemctl restart apache2

1
또는 PHP 스크립트를 수정하십시오 :-)This directive determines whether or not PHP will recognize code between <? and ?> tags as PHP source which should be processed as such. It is generally recommended that <?php and ?> should be used and that this feature should be disabled [...]
Nicolas Raoul

1

나는 같은 문제에 부딪쳤다. 그러나 나의 특별한 문제는 독특했다. mod_userdir을 사용하여 사용자 디렉토리에서 실행 중입니다. 즉, http://host.name.com/~username/example.php를 사용하여 웹 페이지에 액세스합니다 .

이것은 mods-enabled 디렉토리의 php * .conf에서 기본적으로 비활성화되어 있습니다. 주석 처리하려면 수정해야했습니다.

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

그게 알아 내기 힘들었 어 ..

글쎄, 나는 누군가 가이 특별한 문제가 있었는지 의심하지만, 그것이 나에게 crud처럼 당황하고 누군가가 같은 일을하고 있기 때문에 그것을 추가 할 것이라고 생각했다. 아무도 나를 제외하고는 더 이상 ~ / 사용자를 사용하지 않습니다.

물론이 과정 후에 아파치를 다시 시작해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.