Apache는 PHP 파일을 실행하지 않지만 다운로드합니다.


15

I 설치 그래서 내 서버는 사용 자습서를하고 test.php 파일이 문제없이 작동 할 때 나는 나의 서버의 IP를 사용하여 주소를 입력 할 때

http://1.2.3.4/test.php

그러나 가상 호스트를 사용하는 경우 브라우저는 파일을 실행하는 대신 파일을 다운로드하도록 제공합니다. 그래서 이건:

http://blog.mydomain.com/test.php

스크립트를 실행하지 않고 파일을 다운로드하도록 제안합니다.

가상 호스트에 대해 /etc/apache2/apache2.conf에서 사용하는 코드는 다음과 같습니다.

Include /etc/phpmyadmin/apache.conf
Include /etc/apache2/mods-available/php5.conf

<VirtualHost *:80>
    DocumentRoot /path/to/vhosts/folder1
    ServerName www.mydomain.com
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /path/to/vhosts/folder2
    ServerName blog.mydomain.com
</VirtualHost>

NameVirtualHost *:80

apache2 서버를 다시 시작하면 경고 메시지가 나타납니다.

[....] Restarting web server: apache2
[Sun Jan 19 13:33:40 2014] [warn] NameVirtualHost *:80 has no VirtualHosts ... waiting [Sun Jan 19 13:33:41 2014] [warn] NameVirtualHost *:80 has no VirtualHosts

이것이 LAMP 서버라는 것을 알고 있습니까?
Braiam

@Braiam 솔직히 말해서 LAMP와 Apache 사이에서 길을 잃었습니다 ... 차이를 모르겠습니다 ... 그러나 내 질문에 대한 답변을 얻었습니까?
양자 물리학 자

이 디렉토리는 어디에서 찾을 수 있습니까? 그것은 나를 위해 작동하지 않습니다. 도와주세요? vhost vie terminal을 어떻게 다시로드합니까?
신 세계

@Godworld 어떤 디렉토리? Apache 구성 파일은에 /etc/apache2/있습니다.
양자 물리학 자

답변:


19

나는 라인과 함께 작동하도록했다 :

sudo apt-get install libapache2-mod-php7.0

sudo service apache2 restart

이 라이브러리의 이름을 지정해 주셔서 감사합니다. 나는 이것을 고치기 위해 라이브러리를 설치해야한다는 것을 알았지 만 이름을 알지 못했습니다.
Rahul Prasad

libapache2-mod-php7.0패키지는 주요 우분투 저장소에 존재하지 않습니다. 16.04가 출시 될 때까지 libapache2-mod-php5대신 사용해야 합니다.
Dan

4

때때로 더 나쁜 일이 발생할 수 있습니다 .... 나는 단지 PHP를 설치하는 것을 잊었다


5
나는 이것이 실제 답변이라고 할 수는 없다고 생각하지만, 나는 그것이 일종이라고 생각합니다.
세스

3
합리적인 수의 기계를 가지고 있고 늦은 밤에 합리적으로 늦을 때, 이것은 분명히 올바른 대답입니다.
Avio

1
실제로 유효한 답변입니다. php5, php5-cli, php5-fpm 및 php-whatnot을 저글링하는 데 문제가있었습니다. 아파치에서 방금 올바른 패키지가 누락되었습니다 .
famousgarkin

0

여기 에서 해결책을 찾았습니다 . 일부 모듈을 활성화해야한다는 것이 밝혀졌습니다 ...


에서 촬영 이 스택 오버플로 대답 으로 user1075581 :

이것은 마침내 나를 올바른 길로 인도했습니다.

http://www.linuxquestions.org/questions/linux-server-73/php-not-working-on-one-vhost-but-works-on-all-others-851093/

해결책은 다음과 같습니다.

<Directory>섹션에는 다음 줄이 포함되었습니다.

<IfModule sapi_apache2.c>
    php_admin_flag engine on
</IfModule>
<IfModule mod_php5.c>
    php_admin_flag engine on
</IfModule>

또는 서버에서 솔루션의 수정 된 복사 / 붙여 넣기 :

<Directory "/var/www/vhosts/A2/httpdocs">
    <IfModule sapi_apache2.c>
        php_admin_flag engine on
    </IfModule>
    <IfModule mod_php5.c>
        php_admin_flag engine on
    </IfModule>

    (Other configuration parameters)

</Directory>

0

나는 이것을 오랫동안 찾고 있었고 방금 내 경우에 맞는 해결책을 찾았습니다. 표준 우분투 설치 processorder.php5디렉토리 /var/www에 파일 ( )을 넣었습니다 . 나는 이것이 PHP가 보이는 곳이라고 생각했다. 그러나 html (또는 아마도 같은 것으로 간주되는 php 파일)의 경우 /var/www/html, 즉 html하위 디렉토리를 살펴 보았습니다 /var/www.

파일을 디렉토리로 옮길 때 효과가있었습니다. 나는이 문서가 어디에서나 보지 못했다고 생각하기 때문에 의심 스럽다.


0

권한 문제도이 이상한 행동을 유발할 수 있습니다

chmod -R u=rwX,go=rX my_publishing_directory

권한 문제를 제거합니다 (파일에서 644, 디렉토리에서 755)

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