Apache tidak mengeksekusi file PHP, tetapi membuat saya mengunduhnya

15

Jadi saya mengatur server saya menggunakan tutorial ini , dan ketika file test.php bekerja tanpa masalah ketika saya memasukkan alamat menggunakan IP server saya sebagai

http://1.2.3.4/test.php

Namun, jika saya menggunakan virtualhosts, browser hanya menawarkan untuk mengunduh file daripada menjalankannya. Jadi ini:

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

menawarkan untuk mengunduh file daripada menjalankan skrip.

Kode yang saya gunakan di /etc/apache2/apache2.conf untuk host virtual adalah sebagai berikut:

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

Meskipun saya harus mengatakan bahwa ketika saya me-restart server apache2 saya mendapatkan pesan peringatan:

[....] 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
Fisikawan Kuantum
sumber
Apakah Anda sadar bahwa itu adalah server LAMP?
Braiam
@Braiam jujur ​​aku tersesat antara LAMP dan Apache ... Saya tidak tahu bedanya ... Namun, Anda mendapat jawaban untuk pertanyaan saya?
Fisikawan Kuantum
di mana saya menemukan direktori ini? itu tidak bekerja untuk saya. tolong bantu? bagaimana cara memuat ulang terminal vhost vie?
Dunia Tuhan
@ Dunia Direktori apa? File konfigurasi Apache ada di /etc/apache2/.
Fisikawan Quantum
1
Kemungkinan duplikat skrip PHP yang tidak dijalankan pada server Apache
Florian Diesch

Jawaban:

19

Saya membuatnya bekerja dengan garis:

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

sudo service apache2 restart
Alastair Mason
sumber
Terima kasih telah memberi nama perpustakaan ini. Saya tahu saya harus menginstal perpustakaan untuk memperbaikinya tetapi tidak tahu namanya.
Rahul Prasad
The libapache2-mod-php7.0paket tidak ada di repository Ubuntu utama. Tidak sampai 16,04 dirilis. Anda harus menggunakannya libapache2-mod-php5sebagai gantinya.
Dan
4

Terkadang hal yang lebih buruk dapat terjadi .... Saya hanya lupa menginstal php

Tebe
sumber
5
Saya sulit berpikir ini bisa disebut jawaban nyata, tapi saya kira itu agak.
Seth
3
Ketika Anda memiliki jumlah mesin yang masuk akal dan itu cukup larut malam, ini jelas merupakan jawaban yang valid.
Avio
1
Memang jawaban yang valid. Saya punya masalah juggling php5, php5-cli, php5-fpm, dan php-yang lainnya. Apache baru saja melewatkan paket yang tepat .
famousgarkin
0

Saya menemukan solusinya di sini . Ternyata saya harus mengaktifkan beberapa modul ...


Diambil dari jawaban Stack Overflow ini oleh user1075581 :

Ini akhirnya menempatkan saya di jalan yang benar:

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

Inilah solusinya:

Di <Directory>bagian ini, saya menyertakan baris-baris ini:

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

Atau, salinan / tempel solusi yang sudah dihapus pada server saya:

<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>
Fisikawan Kuantum
sumber
0

Saya sudah mencari ini sejak lama dan saya baru saja menemukan solusi yang berfungsi dalam kasus saya. Saya telah meletakkan file saya ( processorder.php5) di direktori /var/wwwdalam instalasi ubuntu standar. Saya pikir ini adalah tempat yang php lihat. Tetapi untuk html (atau file php yang mungkin dianggap hal yang sama) itu terlihat/var/www/html , yaitu htmlsubdirektori dari /var/www.

Ketika saya memindahkan file saya ke direktori itu berhasil. Saya curiga karena saya pikir saya tidak melihat ini didokumentasikan di mana pun

Craig Smilovitz
sumber
0

masalah izin juga dapat menyebabkan perilaku aneh ini

chmod -R u=rwX,go=rX my_publishing_directory

akan menghilangkan masalah izin (644 pada file dan 755 pada direktori)

baobab33
sumber