Informasi OS dan server:
- CentOS 6.4 (Akhir)
- Apache 2.2.15
- PHP 5.5.1
Saya sebelumnya menginstal php 5.3.x tetapi memutuskan untuk meningkatkan. Saya pertama kali menghapus php 5.3.x dan kemudian menginstal php 5.5.1 tetapi setelah instalasi selesai apache tidak mengurai file php itu hanya mengunduhnya. Saya telah memeriksa pertanyaan serupa di sini di stackoverflow tetapi sejauh ini tidak ada yang membantu saya.
Sebagai catatan, saya memiliki baris berikut di httpd.conf dan php.conf saya yang seharusnya membuat php berfungsi tetapi tidak:
AddHandler application/x-httpd-php .php5 .php4 .php .php3 .php2 .phtml
AddType application/x-httpd-php .php5 .php4 .php .php3 .php2 .phtml
AddType application/x-httpd-php-source .phps
AddHandler php5-script .php
Saya sangat menghargai setiap bantuan. Terima kasih.
EDIT:
Saya memiliki baris ini di php.conf
<IfModule !worker.c>
LoadModule php5_module modules/libphp5.so
</IfModule>
<IfModule worker.c>
LoadModule php5_module modules/libphp5-zts.so
</IfModule>
EDIT:
Dengan menghapus
AddType application/x-httpd-php .php5 .php4 .php .php3 .php2 .phtml
apache tidak lagi mengunduh file. Sekarang apache menampilkan kode sumber, tetapi tidak semuanya hanya sebagian. saya tambahkan
AddType text/html .php
tapi tidak beruntung.
httpd.conf
apakah modul php Anda dikomentari atau tidakJawaban:
AddType yang benar untuk php adalah application / x-httpd-php
Pastikan juga modul php Anda telah dimuat
Saat Anda mengonfigurasi apache, cobalah untuk melihat halaman dari browser lain - Saya mengalami hari-hari ketika chrome dengan keras kepala menyimpan hasilnya dan terus mengunduh kode sumber sementara di browser lain tidak apa-apa.
sumber
/etc/httpd/conf/httpd.conf
Saya menemukan masalah ini hari ini dan tidak ada solusi yang dijelaskan yang berhasil untuk saya. Jadi, inilah kemungkinan penyebab lainnya:
Jika Anda memiliki sesuatu seperti
dalam
.htaccess
file folder konten web Anda, ini dapat menyebabkan skrip PHP Anda berhenti bekerja. Dalam kasus saya, server tidak mengetahuix-mapp-php6
jenisnya, karena.htaccess
file itu adalah sesuatu yang saya impor dari host web yang berbeda ketika saya mentransfer konten situs web.Hanya menghapus
AddHandler
baris dari.htaccess
file sudah menyelesaikannya untuk saya.sumber
AddHandler application/x-httpd-php54 .php54 .php
yang harus disingkirkan.Setelah berjuang keras akhirnya saya menyelesaikan masalah.
Jika Anda diminta untuk mengunduh
.php
file alih-alih mengeksekusinya, berikut adalah solusi yang tepat: Saya berasumsi bahwa Anda telah menginstal PHP5 dan masih mendapatkan kesalahan ini.Ini dia.
Tetapi Jika Anda masih mendapatkan kesalahan:
Config file php5.conf not properly enabled: /etc/apache2/mods-enabled/php5.conf is a real file, not touching it
lalu lakukan hal berikut:
Ternyata file tidak boleh disimpan
mods-enabled
, tetapi harus disimpan dimods-available
. Sebuah symlink kemudian harus dibuat dalam mods-enabled menunjuk ke file yang disimpan dalam mods-available.Pertama hapus yang asli:
Kemudian buat tautan simbolis:
Saya harap masalah Anda teratasi.
sumber
Silakan lihat arahan addtype Anda.
Sepertinya Apache memberi tahu browser bahwa ia mengirimkan jenis dokumen application / php untuk skrip dengan ekstensi seperti .php5. Sebenarnya Apache seharusnya memberi tahu browser bahwa skrip mengeluarkan teks / html.
Silakan coba ini:
Mengenai saran di atas bahwa Anda harus memberi tahu browser bahwa Anda mengeluarkan skrip PHP: Sepertinya itu ide yang tidak biasa bagi saya. Saya mencari di Google dan menemukan bahwa ada cukup banyak diskusi tentang itu di web. Rupanya ada kasus di mana Anda mungkin ingin mengatakan bahwa Anda mengirim skrip PHP (meskipun Apache seharusnya menjalankan skrip dan mengeluarkan teks / html,) dan ada juga kasus di mana browser tidak mengenali Mime tertentu itu. Tipe.
Menghapus cache browser Anda selalu merupakan ide yang bagus.
Jika bermanfaat, inilah salinan file /etc/httpd/conf.d/php.conf saya dari server yang menjalankan CentOS 5.9:
# # PHP is an HTML-embedded scripting language which attempts to make it # easy for developers to write dynamically generated webpages. # <IfModule prefork.c> LoadModule php5_module modules/libphp5.so </IfModule> <IfModule worker.c> LoadModule php5_module modules/libphp5-zts.so </IfModule> # # Cause the PHP interpreter to handle files with a .php extension. # AddHandler php5-script .php AddType text/html .php # # Add index.php to the list of files that will be served as directory # indexes. # DirectoryIndex index.php # # Uncomment the following line to allow PHP to pretty-print .phps # files as PHP source code: # #AddType application/x-httpd-php-source .phps
sumber
Ini mungkin terjadi karena modul yang hilang diperlukan untuk php Anda. Dengan asumsi Anda telah menginstal php7, cari modul php7 yang tersedia menggunakan
Perintah di atas akan mencantumkan semua modul PHP7 yang tersedia untuk instalasi. Anda dapat memulai pemasangan modul seperti,
sudo apt-get install libapache2-mod-php7.0 php7.0-mysql php7.0-curl php7.0-json
sumber
Jika .htaccess Anda memiliki sesuatu seperti ini ... AddHandler application / x-httpd-php53 .php .php5 .php4 .php3 kemudian beri komentar dan coba segarkan lagi ini berhasil untuk saya ...
sumber
Saya memiliki masalah yang sama. Apache tidak memuat file php dari situs web tertentu, cukup unduh saja. Saya membaca posting ini dan jawabannya dan saya telah melihat saya mendapatkan baris ini di tempat terakhir dari file .htaccess:
AddHandler x-mapp-php5.5 .php
Saya telah mengomentarinya dan semuanya berfungsi dengan baik.
Terimakasih untuk semua !!!
sumber
Saya sebelumnya memiliki masalah serupa, setelah meningkatkan dari 5,3 menjadi 5,4. Tetapi pengaturan saya terlihat sedikit berbeda karena saya menjalankan Debian dan menggunakan fcgid ke server halaman PHP, dan bukan modul PHP5 apache / cgi. Jadi setelah saya meningkatkan, itu juga menginstal php5_cgi, yang bertabrakan dengan pengaturan fcgid saya, dan tidak akan mengeksekusi file PHP lagi.
Saya harus menonaktifkan Apache Module dan memulai ulang Apache
Setelah modul php5_cgi dihentikan, fcgid dapat menampilkan halaman PHP lagi.
sumber
Saya memiliki gejala yang serupa, namun solusi lain: di /etc/apache2/mods-enabled/php5.conf ada saran berguna di komentar, yang saya ikuti:
sumber
Jika seseorang menggunakan php7 di lingkungan Linux
Pastikan Anda mengaktifkan php7
Mulai ulang layanan mysql dan Apache
sumber
Setelah memperbarui PHP menjadi 7.3, skrip PHP dijalankan dengan www-data bukan $ USER seperti sebelumnya.
Saya perlu menginstal ulang dan mengaktifkan PHP-FPM:
sudo apt-get install php-fpm sudo a2enmod proxy_fcgi setenvif sudo service apache2 restart sudo a2enconf php7.3-fpm sudo service apache2 restart
Untuk memastikan semuanya baik-baik saja untuk Virtualmin , saya menggunakan wizard Re-Check Configuration
/virtual-server/check.cgi
, di bawah Vitualmin / System Settings .Setelah itu, Apache / PHP mengunduh file php alih-alih menjalankannya. Jadi saya perlu mengedit
/etc/apache2/mods-available/php7.3.conf
untuk mengomentari barisSetHandler application/x-httpd-php
seperti di bawah ini:<FilesMatch ".+\.ph(ar|p|tml)$"> # SetHandler application/x-httpd-php </FilesMatch>
Setelah memulai ulang Apache, ini menyelesaikan masalah saya, semoga bantuan ini.
Jaga cache browser juga.
Sistem saya:
Ubuntu 16.04.6 LTS Webmin version 1.932 Usermin version 1.780 Virtualmin version 6.08 Apache version 2.4.41 PHP versions 7.3.12 PHP-FPM 7.3.12 Server
sumber
Saya menghabiskan dua hari untuk melacak ini dan menemukan bahwa saya meletakkan skrip PHP saya di direktori yang salah.
Pada instalasi standar Ubuntu saya, saya memasukkan skrip
/var/www
. Mereka seharusnya masuk/var/www/html
.Saya baru saja memulai pekerjaan PHP, jadi saya tidak tahu apakah solusi saya terkait dengan perubahan versi yang Anda alami.
sumber
ini memecahkan masalah untuk saya (saya telah menginstal php7):
sudo apt-get install libapache2-mod-php7.0
sudo service apache2 restart
sumber
Saya punya masalah ini. Ternyata saya telah menginstal nginx dan apache dan secara otomatis memulai saat boot. Masalahnya adalah nginx mengikat port http terlebih dahulu yang mencegah apache untuk dimulai.
sumber
Mungkin juga Anda menjalankan nginx tetapi php Anda diatur untuk dijalankan dengan apache. Untuk memverifikasi, jalankan
service nginx status
danservice apache2 status
untuk melihat mana yang sedang berjalan. Jika nginx sedang berjalan dan apache tidak, jalankan sajasudo service nginx stop; sudo service apache2 start
dan server Anda sekarang akan melayani file php seperti yang diharapkan.sumber
Oke ... Saya tahu bahwa ada 1.000.000 jawaban untuk pertanyaan ini, - tetapi saya telah menghabiskan setidaknya 6 jam efektif, mencari tahu yang ini; dan saya telah mencarinya di Google ratusan kali dan tidak menemukan satu pun pos tentangnya. Jadi saya pikir saya akan menambahkan solusi untuk masalah saya di sini.
Kesimpulannya
Jika saya mengomentari dua baris ini di file
/etc/apache2/[[SERVER-NAME].conf
.conf saya di -file:php_admin_value engine Off IPCComTimeout 31
Saya tidak tahu apa yang mereka lakukan atau bagaimana mereka sampai di sana, - tetapi itu ada di setiap
.conf
file- saya . Dan jika saya menghapus baris-baris itu dan memastikan bahwa ada symlink di/etc/apache2/sites-enabled/
-folder, maka itu tidak mengunduh index.php - dan semuanya bekerja sebagaimana mestinya.Seluruh cerita
Saya telah menginstal VirtualMin pada Ubuntu 16.04 VPS. Saya meningkatkan ke versi PHP 7.2. Tak lama setelah itu, saya memperbarui versi Ubuntu dan menemukan kesalahan 'Kernel Offset: Disabled'. Jadi saya harus menghapus versi Ubuntu terbaru, - dan ketika OS saya boot lagi: BOOM! Saya mendapat kesalahan yang dibicarakan oleh postingnya: Untuk setiap situs di VPS saya, itu hanya mengunduh index.php alih-alih menampilkannya.
Saya mencoba semua jenis hal:
a2enmod [MODULE_NAME]
. Dan saya menemukan nama modul dengan mencari di Google. Saya harus mengaktifkan sekitar 6-8 modul, sebelum saya melewati langkah validasi itu - dan perlu beberapa menit sebelum cache habis, - jadi melakukan ini adalah langkah yang membosankan.sumber
Saya mengalami masalah ini dan jika Anda sebenarnya tidak pernah bermain-main dengan pengaturan konfigurasi server Anda, maka masalah Anda adalah 90% di file .htaccess Anda
Anda juga memodifikasi file .htaccess LOKAL, atau menghapusnya (LOKAL)
sumber
Saya memiliki masalah yang mirip dengan OP ketika memutakhirkan php5 dari versi yang lebih lama, ke 5.5.9, yang merupakan versi yang diinstal dengan Mint 17.
Saya menjalankan penyiapan LAMP pada mesin di jaringan lokal saya, yang saya gunakan untuk melihat pratinjau perubahan ke situs web sebelum saya mengunggah perubahan itu ke server langsung yang sebenarnya. Jadi saya mempertahankan cermin lokal yang sempurna dari situs sebenarnya.
Setelah peningkatan, file yang berjalan dan ditampilkan dengan sempurna di situs sebenarnya tidak akan ditampilkan, atau hanya akan menampilkan html di mesin lokal. PHP tidak diurai. Perintah phpinfo () berfungsi, jadi saya tahu php berfungsi. Log tidak menghasilkan kesalahan. Melihat sumber halaman menunjukkan kepada saya kode php yang sebenarnya.
Saya telah membuat halaman test.php yang berisi kode berikut:
<?php phpinfo(); ?>
Ini berhasil. Kemudian saya menemukan ketika saya mengubah
<?php
ke<?
perintah tidak lagi bekerja. Semua situs php saya menggunakan<?
alih-alih<?php
yang mungkin tidak ideal, tetapi itulah kenyataannya. Saya memperbaiki masalah dengan membuka / etc / php5 / apache2, mencari "short_open_tag" dan mengubah nilainya dari Mati menjadi Aktif.sumber
Jika tidak ada yang berhasil,
coba komentari baris tersebut
dan mulai ulang apache menggunakan
Seharusnya berhasil!
sumber
PHP56
vim /etc/httpd/conf/httpd.conf
sumber
Saya punya masalah seperti ini. Beginilah cara saya mengatasinya. Setelah menginstal Apache maka saya menginstal PHP menggunakan perintah ini.
itu dijalankan dengan benar tetapi saya meminta file .php dari Apache, itu memberi tanpa menjalankan skrip PHP .
Lalu saya periksa PHP diaktifkan.
$ cd /etc/apache2 $ ls -l mods-*/*php*
tetapi tidak menunjukkan hasil apa pun. Saya memeriksa paket PHP yang diinstal.
$ dpkg -l | grep php| awk '{print $2}' |tr "\n" " "
Berbagai jenis versi PHP diinstal ke komputer saya. Kemudian saya menghapus beberapa paket PHP dari daftar saya sebelumnya, menggunakan apt-get purge .
sudo apt-get purge libapache2-mod-php7.0 php7.0 php7.0-cli php7.0-common php7.0-json
Saya menginstal ulang PHP
Pastikan modul PHP dimuat
$ a2query -m php7.0
jika tidak diaktifkan dengan:
$ sudo a2enmod php7.0
Mulai ulang server Apache
Terakhir, saya memeriksa proses PHP di Apache
buat file kosong
sudo vim /var/www/html/info.php
Tambahkan konten ini ke info.php & simpan.
<?php phpinfo(); ?>
Periksa di browser:
itu ditampilkan dengan benar. Saya pikir ini akan membantu siapa pun
sumber
Jika Anda memiliki virtualmin, coba beri komentar baris ini di konfigurasi apache Anda di / etc / apache2 / sites-available
#RemoveHandler .php #RemoveHandler .php7.0 #php_admin_value engine Off
sumber
Ketika saya memutakhirkan dari PHP 7.2 ke PHP 7.4, saya juga mendapat masalah yang sama. Bekerja dengan melakukan berikut: -
Dalam
[domain].conf file
, berkomentar sebagai berikut:php_admin_value engine Mati
Dan Ditambahkan:
Nonaktifkan mod 7.2 dan aktifkan 7.4 dengan mengikuti:
a2dismod php7.2
a2enmod php7.4
Dalam
/etc/apache2/mods-enabled/php7.4.conf
file, beri komentar sebagai berikut:Aplikasi SetHandler / x-httpd-php
mesin php_admin_flag Mati
sumber
Bagi orang-orang yang telah menemukan posting ini dari Google hampir 6 tahun yang akan datang (dan seterusnya!), Anda mungkin mengalami masalah ini dengan Apache 2 dan PHP 7 saat juga menggunakan
UserDir
modulnya.Penyebab lain yang mungkin dari masalah ini adalah Anda mencoba menjalankan skrip dalam "direktori pengguna" dari
UserDir
modul. Menjalankan skrip PHP di direktori pengguna dinonaktifkan secara default. Anda akan mengalami masalah ini jika skrip ada dipublic_html
direktori di folder utama dan Anda mencoba mengaksesnya darihttp://localhost/~your_username
.Untuk memperbaikinya, buka
/etc/apache2/mods-enabled/php7.2.conf
. Anda harus mengomentari atau menghapus blok tag di bagian bawah yang bertuliskan<IfModule mod_userdir.c> <Directory /home/*/public_html> php_admin_flag engine Off </Directory> </IfModule>
sumber
Saya memiliki masalah yang sama setelah menggunakan
zypper rm php*
untuk menghapus PHP dan menginstalnya lagi denganzypper in php7 php7-gd php7-gettext php7-mbstring php7-mysql php7-pear
Saya menyelesaikannya dengan mengaktifkan modul apache2 dan memulai ulang webserver:
sumber
Jika .htaccess Anda memiliki hal seperti ini
sumber