Il codice PHP non viene eseguito, ma il codice mostra nella pagina

Sto cercando di eseguire codice PHP su un progetto (usando Dreamweaver) ma il codice non viene eseguito.

Quando controllo il codice sorgente, il codice PHP appare come tag HTML (posso vederlo nel codice sorgente). Apache funziona correttamente (sto lavorando con XAMPP), le pagine PHP vengono aperte correttamente ma il codice PHP non viene eseguito.

Qualcuno ha un suggerimento su cosa sta succedendo?

Nota: il file è già denominato come filename.php

Modifica: il codice ..:

  

La stampa

Sembra che ci sia qualcosa di sbagliato nella tua configurazione, qui ci sono alcune cose che puoi controllare:

  1. Assicurati che PHP sia installato e funzioni correttamente. Questo può sembrare sciocco, ma non si sa mai. Un modo semplice per controllare è eseguire php -v da una riga di comando e vedere se restituisce informazioni sulla versione o eventuali errori.

  2. Assicurati che il modulo PHP sia elencato e non commentato all’interno del tuo httpd.conf di Apache. Dovrebbe essere qualcosa come LoadModule php5_module "c:/php/php5apache2_2.dll" nel file. Cerca il LoadModule php e assicurati che non ci sia alcun commento ( ; ) davanti ad esso.

  3. Assicurati che il file httpd.conf di Apache abbia il tipo PHP MIME al suo interno. Questo dovrebbe essere qualcosa come l’ AddType application/x-httpd-php .php . Questo dice ad Apache di eseguire i file .php come PHP. Cerca AddType, quindi assicurati che vi sia una voce per PHP e che non sia commentata .

  4. Assicurati che il tuo file abbia l’estensione .php su di esso, o qualsiasi estensione specificata nella definizione MIME al punto # 3, altrimenti non verrà eseguita come PHP.

  5. Assicurati di non utilizzare tag brevi nel file PHP ( ), Questi non sono abilitati su tutti i server per impostazione predefinita e il loro utilizzo è scoraggiato. Usa invece (o abilita i tag brevi nel tuo php.ini con short_open_tag=On se hai il codice che si basa su di essi).

  6. Assicurati di accedere al tuo file sul tuo server web usando un URL come http://localhost/file.php non tramite il file di accesso al file://localhost/www/file.php locale file://localhost/www/file.php

E infine controlla il manuale PHP per ulteriori suggerimenti sulla configurazione .

php7:

 sudo a2enmod proxy_fcgi setenvif sudo a2enconf php7.0-fpm sudo service apache2 restart 

Sto eseguendo Apache su Ubuntu e il mio problema era che il file /etc/apache2/mods-available/php5.conf mancava questo:

  SetHandler application/x-httpd-php  

L’ho aggiunto di nuovo e php stava analizzando correttamente i file php.

Ho trovato un altro problema a causare questo problema e l’ho già risolto. Ho accidentalmente salvato il mio script nella codifica UTF-16 . Sembra che PHP5 non riconosca il tag nella codifica a 16 bit per impostazione predefinita.

nota per gli utenti di php 7, aggiungi questo al tuo file httpd.conf:

 # PHP 7 specific configuration  AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps  DirectoryIndex index.html index.php   

Sto postando questa risposta perché la mia interfaccia di amministrazione Virtualmin / Webmin ha deciso che era una buona idea disabilitare il mio motore PHP .. mi ci è voluto un po ‘per trovare la soluzione, quindi ho pensato di condividerlo con voi ragazzi:

Inoltre, assicurati di controllare che nessuno dei tuoi file di configurazione del tuo sito web relativi a questo host o host virtuale specifico abbia a disposizione php_admin_value che distriggersno PHP, come questo:

 php_admin_value engine Off 

In caso di dubbio, commentalo …

 # php_admin_value engine Off 

E riavvia il tuo server web.

Oh Dio! Ho appena visto di nuovo la tua immagine postata, stai solo aprendo il tuo file php nel browser. hai aperto sta usando url localhost. se apri un file direttamente dalla tua directory, in ogni caso non eseguirà il codice php.

utilizzare: http://locahost/index.php o http:127.0.0.1/index.php

abilitare il codice breve php nel tuo caso, stai usando che è il codice breve php per

per impostazione predefinita i codici brevi php sono disabilitati.

usa anche: sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt se sei un utente di Ubuntu.

So che dovrebbe sembrare sciocco … ma raramente succede.

Controlla se stai cercando di eseguire php da

 **http://localhost/info.php** 

e non da

 file:///var/www/info.php 

ps> puoi notare che se scrivi da shell

 php info.php 

risponde con il codice (significa funzioni php) ..

Ho risolto questo problema disinstallando XAMPP e installando WAMP. Grazie per l’aiuto.

Ho avuto un problema simile ma nel mio caso la soluzione era diversa. il mio file che conteneva il codice php si chiamava “somename.html” lo cambiava in “somename.php” funzionava bene

Mi è appena successo di nuovo, insieme al server che scaricava i file html, piuttosto che l’elaborazione. Non avevo usato l’apache webserver per un po ‘di tempo sul computer e nel frattempo Ubuntu aggiornato come altre due versioni dall’LTS originariamente installato. Ora è

 $ cat /etc/issue Ubuntu 16.04 LTS 

Quindi il php ha funzionato in questo modo:

 $ sudo apt-get install lamp-server^ $ sudo a2enmod php7.0 $ sudo service apache2 restart 

Il server web stava ora analizzando il php. Forse ora devo aggiornare alcuni web da quando php7.0 è ora in esecuzione dove era prima di eseguire php5. Oh bene.

su mia Ubuntu 14.04, apache 2.4, php 5.5.9 install, ho provato con un esempio.php su / var / www / html (root del documento predefinito) e ha funzionato bene. Quindi il problema era nella mia configurazione dei Virtual Server. La soluzione era includere, nella directory def contenente la .php, questa riga:

  php_admin_flag engine on 

Controlla tutti i pacchetti che hai installato per php usando:

 yum list installed | grep remi 

Installa tutti i pacchetti php rilevanti, in particolare php-devel sulla tua macchina.

Questo era nel mio .htaccess

 DirectoryIndex index.html index.htm 

index.html conteneva codice PHP. Per impostazione predefinita, PHP non elaborerà i file con estensioni come htm * come codice PHP.

Puoi ignorare questo, aggiungendo quanto segue a .htaccess:

  SetHandler application/x-httpd-php  

Per una nuova configurazione di LAMP con PHP 7 modifica il file /etc/httpd/conf/httpd.conf Nota: assicurati di fare il backup per questo prima di cambiare qualcosa.

Incollalo nella parte inferiore del file:

  AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps  DirectoryIndex index.html index.php  

Quindi, cerca LoadModule e incolla la seguente riga:

 LoadModule php7_module modules/libphp7.so 

Questa linea chiederà semplicemente a httpd di caricare il modulo php 7

Quindi riavviare httpd

Penso che il problema che sta mostrando il codice invece del risultato è che non sta andando all’host locale. ricontrolla l’indirizzo in cui stai andando. Stai andando in una directory di file locale o nell’host locale.

dallo screenshot che hai inviato sta andando sul tuo computer non sul localhost.

“file: ///” dovrebbe essere “localhost /”

La reinstallazione del modulo mcrypt funzionato per me.

 $sudo apt-get install php5-mcrypt $sudo php5enmod mcrypt 

Ho avuto un caso che ho accidentalmente iniziato a decodificare la directory dei miei file in root. Ha aggiunto il file .htaccess dalla mia cartella di file che bloccherebbe tutto il php

 # If we know how to do it safely, disable the PHP engine entirely.  php_flag engine off  

In conclusione, controlla il file .htaccess su root.

Se hai una configurazione come questa:

  ServerName example.com DocumentRoot "/var/www/example.com"  SetHandler "proxy:fcgi://127.0.0.1:9000"   

Decommenta le righe successive nel tuo httpd.conf

 LoadModule proxy_module lib/httpd/modules/mod_proxy.so LoadModule proxy_fcgi_module lib/httpd/modules/mod_proxy_fcgi.so 

Per me funziona

Aggiungi l’ AddType application/x-httpd-php .php al tuo file httpd.conf se stai usando Apache 2.4

Ho affrontato questo problema su php 7.1 che viene fornito con High Sierra (OS X 10.13.5), modificando /etc/apache2/httpd.conf con le seguenti modifiche aiutate:

  1. Decommenta questa linea

     LoadModule php7_module libexec/apache2/libphp7.so 
  2. Incolla seguendo alla fine

      AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps  DirectoryIndex index.html index.php   

Assicurati che lo script contenga

  

prima del codice che dovrebbe essere eseguito. Non dovrebbe esserci spazio tra e php in questo.