Apache nie wykonuje plików PHP, ale każe mi je pobierać


15

Tak więc skonfigurowałem mój serwer, korzystając z tego samouczka, a kiedy plik test.php działa bez problemu po wprowadzeniu adresu przy użyciu adresu IP mojego serwera jako

http://1.2.3.4/test.php

Jeśli jednak korzystam z wirtualnych hostów, przeglądarka po prostu oferuje pobranie pliku zamiast jego wykonania. Więc to:

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

oferuje pobranie pliku zamiast wykonania skryptu.

Kod używany w /etc/apache2/apache2.conf dla hostów wirtualnych jest następujący:

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

Chociaż muszę powiedzieć, że po ponownym uruchomieniu serwera Apache2 pojawia się komunikat ostrzegawczy:

[....] 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

Czy wiesz, że jest to serwer LAMP?
— Braiam

@Braiam, szczerze mówiąc, zgubiłem się między LAMPĄ a Apache ... Nie znam różnicy ... czy otrzymałeś odpowiedź na moje pytanie?
— The Quantum Physicist

gdzie znajdę ten katalog? nie działa mi. proszę pomóż? jak mogę ponownie załadować vhost vie terminal?
— Boski świat

@Godworld Jaki katalog? Pliki konfiguracyjne Apache są w /etc/apache2/.
— The Quantum Physicist,

Odpowiedzi:


19

Mam go do pracy z linią:

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

sudo service apache2 restart

Dziękujemy za nazwanie tej biblioteki. Wiedziałem, że muszę zainstalować bibliotekę, aby to naprawić, ale nie znałem nazwy.
— Rahul Prasad

libapache2-mod-php7.0Pakiet nie istnieje w głównym repozytorium Ubuntu. Dopóki nie zostanie wydany 16.04. Zamiast tego powinieneś użyć libapache2-mod-php5.
— Dan

4

Czasami mogą się zdarzyć nawet gorsze rzeczy ... Po prostu zapomniałem zainstalować php


5
Nie sądzę, by można to nazwać prawdziwą odpowiedzią, ale chyba tak jest.
— Seth

3
Jeśli masz rozsądną liczbę maszyn i jest dość późno wieczorem, jest to zdecydowanie poprawna odpowiedź.
— Avio,

1
Rzeczywiście ważna odpowiedź. Miałem problem z żonglowaniem php5, php5-cli, php5-fpm i php-whatnot. Apache właśnie brakowało odpowiedniego pakietu.
— famousgarkin

0

Tutaj znalazłem rozwiązanie . Okazuje się, że musiałem włączyć niektóre moduły ...


Zaczerpnięte z tej odpowiedzi Przepełnienie stosu przez user1075581 :

W końcu postawiłem mnie na właściwej ścieżce:

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

Oto rozwiązanie:

W <Directory>sekcji zamieściłem następujące wiersze:

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

Lub zredagowana kopia / wklej rozwiązanie na moim serwerze:

<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

Szukałem tego od dłuższego czasu i właśnie znalazłem rozwiązanie, które działa w moim przypadku. Umieściłem swój plik ( processorder.php5) w katalogu /var/wwww standardowej instalacji Ubuntu. Myślałem, że to jest miejsce, w którym wygląda php. Ale dla html (lub plików php, które prawdopodobnie są uważane za to samo) szukał /var/www/html, tj. htmlPodkatalogu /var/www.

Kiedy przeniosłem mój plik do katalogu, zadziałało. Jestem podejrzliwy, ponieważ nie sądzę, żebym to gdziekolwiek udokumentował


0

problemy z uprawnieniami mogą również prowadzić do uzyskania tego dziwnego zachowania

chmod -R u=rwX,go=rX my_publishing_directory

pozbywa się problemów z uprawnieniami (644 w plikach i 755 w katalogach)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.