Script PHP tidak dieksekusi di server Apache

54

Saya baru saja menginstal ulang Apache dan PHP5 tetapi ketika saya mengunjungi root doc saya hanya mengunduh file "unduh". Dan ketika saya mencoba documentroot /index.php, ia hanya mengunduh file PHP.

Saya sudah menginstal PHP tetapi Apache sepertinya tidak ingin menjalankannya.
Orang-orang menyarankan untuk menambahkan baris 'Load Module' ke saya httpd.conftetapi saya tidak memiliki file itu.

pengguna2919631
sumber

Jawaban:

103

Mengetik:

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

akan menginstal semua yang Anda butuhkan dan akan memulai server apache dengan dukungan untuk PHP.

Untuk memverifikasi bahwa modul php dimuat, ketik:

a2query -m php5

jika tidak diaktifkan, maka muat dengan:

sudo a2enmod php5

dan mulai ulang apache:

sudo service apache2 restart

Pembaruan untuk php7.x (diuji pada Ubuntu 16.04, 16.10, 18.04, 18.10 )

Berkat komentarnya, saya memperbarui jawaban untuk php7.x.

Pasang:

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

Memeriksa:

a2query -m php7.x

Beban:

sudo a2enmod php7.x

Mulai ulang apache:

sudo service apache2 restart
girardengo
sumber
Akan lebih baik untuk digunakan a2enmoddaripada menyalin file secara manual antara mod-tersedia dan mod-enabled. a2enmodmembuat symlink dan jadi Anda hanya akan memiliki satu salinan konfigurasi.
jkt123
@ jkt123 Anda benar. terima kasih atas sarannya, saya edit jawaban saya.
girardengo
Dalam kasus saya, dikatakan "ERROR: module php5 tidak ada!" sudah terpasang
Marian Klühspies
3
untuk ubuntu 16.04 dengan php7 Saya telah dieksekusi perintah ini dalam rangka apt-get install libapache2-mod-php, a2query -m php7.0,service apache2 restart
marlo
Untuk ubuntu 14.04: # a2query -m php7.0 php7.0 (diaktifkan oleh administrator situs) Masih kode php tidak mengeksekusi
Ashish Karpe
19

Penyebab umum lainnya adalah bahwa tag pendek php <?tidak diaktifkan oleh konfigurasi default php.ini, jadi setelah upgrade atau instal ulang, pengaturan itu mungkin dimatikan dan kode php mungkin bergantung padanya. Coba ganti <?dengan <?php.

( Kredit )

tufelkinder
sumber
13

Ubuntu 16.04 telah pindah ke PHP 7. Perintah tunggal ini akan melakukan pekerjaan untuk Anda:

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

Ini libapache2-mod-phpadalah paket meta yang menginstal libapache2-mod-php7.

daltonfury42
sumber
2

Buka php.inidengan nanoterminal:

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

Kemudian ubah:

short_open_tag = Off

untuk

short_open_tag = On

Kemudian simpan dan mulai kembali apache2:

sudo systemctl restart apache2
Satrio Prasojo
sumber
1
Atau perbaiki skrip 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

Saya mengalami masalah yang sama, tetapi masalah khusus saya unik. Saya sedang menjalankan di direktori pengguna (menggunakan mod_userdir) - yang berarti Anda mengakses halaman web saya dengan http://host.name.com/~username/example.php

Ini dinonaktifkan secara default di php * .conf di direktori mod-enabled saya. Saya harus memodifikasinya untuk berkomentar:

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

Itu adalah rasa sakit untuk mencari tahu ..

Yah, aku ragu ada yang punya masalah khusus ini, tapi kupikir aku akan menambahkannya karena itu membingungkan bagiku dan MUNGKIN ada yang melakukan hal yang sama. Tidak ada yang menggunakan ~ / pengguna lagi, kecuali saya.

Anda harus memulai ulang apache setelah ini, tentu saja.

Jiminy Idiot
sumber
0

Kasus saya sedikit berbeda. Saya memutakhirkan dari Ubuntu 19.04 ke 19.10. Sementara peningkatan itu diinstal php 7.3 (di mana php 7.2 sudah diinstal). Dengan 2 versi terinstal a2query -m php7.3 kembali Tidak ada modul yang cocok dengan php7.3 .

Solusi yang saya temukan adalah dari cara menginstal php-7-3 di ubuntu .

Untuk mengatur PHP 7.0 sebagai default, jalankan

update-alternatives --set php /usr/bin/php7.0

Untuk menetapkan PHP 7.2 sebagai default, jalankan

update-alternatives --set php /usr/bin/php7.2

Untuk menetapkan PHP 7.3 sebagai default, jalankan

update-alternatives --set php /usr/bin/php7.3

Sebelum kita dapat mengkonfigurasi Apache untuk menggunakan PHP 7.3, kita perlu menonaktifkan versi lama PHP 7.0 dengan mengetik

a2dismod php7.2

Sekarang aktifkan versi PHP 7.3 yang baru diinstal dengan perintah berikut:

a2enmod php7.3

Mulai ulang server web Apache agar perubahan diterapkan:

sudo systemctl restart apache2
Adeel Raza Azeemi
sumber