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
Fizyk kwantowy
źródło
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,
1
Możliwy duplikat skryptu PHP nie uruchamiającego się na serwerze Apache
Florian Diesch 20.04.16

Odpowiedzi:

19

Mam go do pracy z linią:

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

sudo service apache2 restart
Alastair Mason
źródło
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

Tebe
źródło
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>
Fizyk kwantowy
źródło
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ł

Craig Smilovitz
źródło
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)

baobab33
źródło