phpinfo() tidak berfungsi di server CentOS saya

Saya telah menginstal PHP di server CentOS saya. Namun, ketika menjalankan phpinfo() di dalam skrip saya untuk mengujinya, saya menerima HTML, bukan informasi yang ditafsirkan.

Saya dapat melihat folder untuk PHP. Saya bahkan dapat melihat php.ini di folder etc. Tapi PHP sendiri sepertinya tidak berfungsi.

Maksud saya, file test.php saya terlihat seperti ini:

<?php
    phpinfo();
?>

Dan tanggapannya terlihat seperti ini:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html><head>
<style type="text/css">
body {background-color: #ffffff; color: #000000;}
body, td, th, h1, h2 {font-family: sans-serif;}
pre {margin: 0px; font-family: monospace;}
a:link {color: #000099; text-decoration: none; background-color: #ffffff;}
...

dan seterusnya.

Apa masalahnya dan bagaimana cara mengatasinya?

Jika saya menyalin HTML yang dikembalikan, menempelkannya ke file HTML, dan menjalankannya dari sana, saya dapat melihat hasil yang diformat, tetapi tidak dengan menjalankan test.php. Saya berasumsi PHP entah bagaimana tidak dimuat... bahkan jika dalam HTML yang ditafsirkan saya dapat melihat:

**Server API    Apache 2.0 Handler
Virtual Directory Support    disabled
Configuration File (php.ini) Path    /etc/php.ini
Scan this dir for additional .ini files    /etc/php.d
additional .ini files parsed    /etc/php.d/dbase.ini, /etc/php.d/json.ini, /etc/php.d/mysql.ini, /etc/php.d/mysqli.ini, /etc/php.d/pdo.ini, /etc/php.d/pdo_mysql.ini, /etc/php.d/pdo_sqlite.ini
PHP API    20041225
PHP Extension    20050922
Zend Extension    220051025
Debug Build    no
Thread Safety    disabled
Zend Memory Manager    enabled
IPv6 Support    enabled
Registered PHP Streams    php, file, http, ftp, compress.bzip2, compress.zlib, https, ftps**

dan seterusnya...

Pada sistem ini, ada tiga situs web yang dihosting. Apakah itu ada hubungannya dengan masalah ini?


person user1137313    schedule 22.07.2013    source sumber
comment
Sepertinya PHP sedang berjalan, dan phpinfo() mengeluarkan hasil yang benar. Anda mungkin memiliki beberapa templat atau sesuatu yang menghalangi dan membuang hasilnya.   -  person cHao    schedule 22.07.2013
comment
Kode HTML yang Anda lihat adalah hal yang sama dengan yang saya lihat ketika saya melihat sumber pada halaman yang hanya berisi <?php phpinfo(); ?>. Ini adalah header HTML dari halaman info PHP.   -  person cHao    schedule 22.07.2013
comment
Ya. Ini adalah kode HTML yang dikembalikan secara normal pada halaman pengembalian phpinfo normal. Tapi itu tidak ditafsirkan. Saya melihatnya tanpa mengklik lihat sumber. Apa yang harus saya lakukan?   -  person user1137313    schedule 22.07.2013
comment
Jika saya ingat dengan benar, php mengeluarkan HTML ketika melakukan phpinfo() dari dalam skrip yang berjalan di server web. Coba ini dari baris perintah: php -i atau jalankan skrip Anda dari baris perintah.   -  person mlewis54    schedule 22.07.2013
comment
Saya menjalankan php -i dari baris perintah, dan saya menerima banyak teks. Sepertinya phpini() harus dikembalikan. Namun, karena ini tidak berfungsi dari browser, saya cenderung yakin ada sesuatu yang salah di suatu tempat. Seperti yang saya nyatakan sebelumnya, saya tahu saya telah menginstal php, tetapi tampaknya tidak berfungsi dengan baik.   -  person user1137313    schedule 22.07.2013
comment
Apakah ada kode yang berjalan sebelum kode Anda? Seperti mungkin pengontrol/router depan, atau sesuatu yang diatur di auto_prepend_file?   -  person cHao    schedule 25.07.2013
comment
Punya masalah serupa, (kecuali ketika saya membuka halaman html, kode php akan dikomentari). Mengubah nama file dari index.html menjadi index.php memperbaikinya. Menggunakan apache2 dan php7.0   -  person kiwicomb123    schedule 21.12.2017


Jawaban (14)


Hal ini juga terjadi pada saya. Cara mengatasinya adalah membungkusnya dalam tag HTML. Lalu saya menyimpan file tersebut sebagai /var/www/html/info.php dan menjalankan http://localhost/info.php di browser. Itu dia.

<html>
    <body>
        <?php
            phpinfo();
        ?>
    </body>
</html>
person user6204369    schedule 14.04.2016
comment
Menggunakan phpinfo(); tidak akan menampilkan info sama sekali. Untuk mencetak info konfigurasi, Anda perlu mengulanginya. Jadi kodenya adalah ‹?php echo phpinfo(); ?› - person Anbuselvan Rocky; 21.10.2017
comment
Saya menemukan ini setelah memutakhirkan ke OSX High Sierra [dan php 7]. - person Bret Weinraub; 27.03.2018
comment
@AnbuselvanRocky salah. phpinfo() mengembalikan bool. itu menampilkan informasi. jika Anda ingin menangkap infonya gunakan buffering keluaran. phpinfo mengembalikan false jika gagal dan true jika berhasil. - person pgee70; 24.08.2018

Simpan halaman yang berisi

<?php
    phpinfo();
?>

dengan ekstensi .php. Sesuatu seperti info.php, bukan info.html...

person Friend    schedule 22.07.2013
comment
ya. Seperti yang saya nyatakan di atas : ...I mean my test.php file looks like this: <?php phpinfo(); ?> jadi, menurut saya sudah jelas, nama file saya test.php - person user1137313; 22.07.2013
comment
Herp. Saya menyimpan ke dalam file .html, bukan file .php. Periksa ekstensi Anda, yo! - person Abraham Brookes; 05.03.2019

Anda perlu memperbarui konfigurasi Apache Anda untuk memastikannya menghasilkan php sebagai jenis teks/HTML.

Kode di bawah ini seharusnya berfungsi, tetapi beberapa konfigurasi berbeda.

AddHandler php5-script .php
AddType text/html .php
person cmorrissey    schedule 22.07.2013
comment
di mana saya harus menjalankan kode ini? Atau haruskah saya menambahkan baris ini ke file konfigurasi? - person user1137313; 22.07.2013
comment
Anda dapat menambahkannya ke file .htaccess atau konfigurasi Apache utama Anda - person cmorrissey; 22.07.2013
comment
Saya menambahkan kode ke file httpd.conf, memulai ulang httpd tetapi tidak ada yang berubah - person user1137313; 22.07.2013
comment
Bagus! AddType adalah bagian terakhir bagi saya. - person Paul; 04.04.2019

Ini berhasil untuk saya (jawaban kedua): Mengapa file PHP saya ditampilkan sebagai teks biasa?

Cukup menambahkan ini, tidak ada yang berhasil.

apt-get install libapache2-mod-php5
person Sam Bing    schedule 20.04.2016
comment
Milik saya tidak dapat menemukan php5 jadi saya menggunakan php7.0 sebagai gantinya: apt-get install libapache2-mod-php7.0. Saya menjalankan Linux Mint 18 - person Markus Meskanen; 04.11.2016
comment
apt-get install libapache2-mod-php juga sudah cukup - person CordlessWool; 24.10.2018

Saya baru saja mengalami masalah yang sama dan menemukan bahwa klien telah menonaktifkan fungsi ini dari file php.ini mereka:

; This directive allows you to disable certain functions for security reasons.
; It receives a comma-delimited list of function names. This directive is
; *NOT* affected by whether Safe Mode is turned On or Off.
disable_functions = phpinfo;

Informasi lebih lanjut: Mengaktifkan dan menonaktifkan phpinfo() untuk alasan keamanan

person John Magnolia    schedule 04.09.2014

Cobalah untuk membuat file php.ini di root dan tulis perintah berikut dan simpan.

disable_functions =

Menggunakan kode ini akan mengaktifkan fungsi phpinfo() untuk Anda jika dinonaktifkan oleh konfigurasi PHP global.

person Ahmad    schedule 01.04.2016

Pastikan tag "php" menempel pada kode seperti ini:

?php phpinfo(); ?>

Tidak seperti ini:

? php phpinfo(); ?>

ATAU server akan memperlakukannya sebagai (kata biasa), sehingga server tidak akan memahami bahasa yang Anda tulis untuk menanganinya sehingga akan kosong.

Saya tahu ini kesalahan konyol ...tapi itu terjadi ^_^

person Toqero_Mohamed    schedule 08.03.2017
comment
Setelah mencabut rambutku habis-habisan, inilah jawabannya! - person Phillip H. Blanton; 12.08.2020

Bagi orang yang tidak memiliki pengalaman dalam membangun website (seperti saya), saya mencoba banyak, hanya untuk mengetahui bahwa saya tidak menggunakan ekstensi .php, tetapi ekstensi .html.

person pmkruyen    schedule 24.10.2018

Itu juga terjadi pada saya. Di server Red Hat Linux 7 yang baru disediakan.

Ketika saya menjalankan halaman PHP, yaitu info.php, saya bisa melihat skrip PHP teks biasa alih-alih menjalankannya.

Saya baru saja menginstal PHP:

[root@localhost ~]# yum install php

Dan kemudian restart Apache HTTP Server:

[root@localhost ~]# systemctl restart httpd
person Omari Victor Omosa    schedule 17.11.2017

Solusi saya adalah mencopot pemasangan dan memasang kembali instance PHP (7.0 dalam kasus saya):

sudo apt-get purge php7.0
sudo apt-get install php7.0

Setelah itu Anda perlu me-restart layanan Apache:

sudo service apache2 restart

Terakhir, verifikasi lagi di browser Anda dengan localhost atau alamat IP Anda.

person NarcosdaCol    schedule 07.10.2018

Saya tidak sengaja mengatur izin file yang salah. Setelah chmod 644 phpinfo.php infonya memang muncul seperti yang diharapkan.

person kghbln    schedule 14.11.2018

Ini mungkin tidak berhasil jika Anda menggunakan localhost/info.php.

Anda mungkin dapat menemukan petunjuk dari kesalahan tersebut. Temukan nomor port dalam pesan kesalahan. Bagi saya itu 80. Saya mengubah alamat menjadi http://localhost:80/info.php, dan kemudian itu berhasil bagi saya.

person M Kamakshaiah    schedule 04.03.2018

Saya memiliki masalah yang sama.

Solusi dalam kasus saya adalah mengatur default_mimetype = "text/html" di dalam file php.ini.

person W.M.    schedule 21.12.2014

Jawaban lain yang mungkin untuk Windows 10:

Perintah httpd -k restart tidak berfungsi di mesin saya.

Coba gunakan Layanan Windows 10 untuk memulai ulang layanan relatif.

person miehmg    schedule 12.10.2018