2013-08-06 14 views
8

Ho visto questa domanda ha risposto molte volte, ma la maggior parte finale sia risposta o dicendo al richiedente di mettere questo:Perché php non è in esecuzione?

<?php phpinfo() ?> 

in un file di prova. Ovviamente, se ciò producesse quello che ci si aspettava, non sarei qui. Invece, ottengo un errore 404.

Sto usando un server Ubuntu 12.04 con Amazon. Apache è installato, php5 è installato e Apache è stato riavviato. Ho seguito la seguente sequenza:

sudo apt-get install apache2 

sudo apt-get install php5 

sudo apt-get install libapache2-mod-php5 

sudo /etc/init.d/apache2 restart 

Ognuno dei primi tre comandi ora mi dà "apache2 è già alla versione più recente 0 aggiornati, 0 installati, 0 da rimuovere e 3 non aggiornati" Ovviamente, sostituire apache2 con php5 e libapache2-mod-php5 per gli altri due.

Questo è un modo sicuro per dirmi che è installato, corretto? Bene, quando uso il comando "top", php non è uno dei servizi in esecuzione, che mi dice che non è in esecuzione, corretto?

Navigare verso l'indirizzo IP mi dà "Funziona!" Di Amazon pagina, ma la navigazione verso qualsiasi altra pagina sul server produce un errore 404.

Qualsiasi aiuto è molto apprezzato.

+3

prova questo: phpinfo(); – Maximus2012

+2

phpinfo è una funzione. usa 'phpinfo()'. – Mic1780

+0

Che cosa intendi per qualsiasi altra pagina –

risposta

9

Controlla i file di configurazione di apache. Per Debian/Ubuntu sono in /etc/apache2/sites-available/ per RedHat/CentOS/etc sono nello /etc/httpd/conf.d/. Se lo hai appena installato, il file in esso è probabilmente chiamato default.

Assicurarsi che il file di configurazione in là punti alla cartella corretta e quindi assicurarsi che gli script si trovino lì.

La linea che stai cercando in questi file è DocumentRoot /path/to/directory.

Per un'installazione vuota, è probabile che i file php siano nello /var/www/.

Quello che avrete anche bisogno di fare è trovare il file php.ini, probabilmente situato a /etc/php5/apache2/php.ini o /etc/php.ini e trovare la voce per display_errors e passare a On.

+0

Ahh! Grazie mille! Sospettavo di essere nel posto sbagliato, ma mi è stato detto che era la directory corretta. Dovrò scrivere questo giù per riferimento futuro. – Christian

+0

Non sono ancora sicuro del motivo per cui "top" non ha mostrato php, ma ho creato un file php in quella cartella e funziona perfettamente. – Christian

+0

superiore? come nel comando 'top'? Non mostrerebbe php, si mostrerebbe come apache. ma sono contento di poterti aiutare! – castis

-5

è necessario aggiungere il punto e virgola alla fine di tutte le cose php come eco, funzioni, ecc

cambiamento <?php phpinfo() ?>-<?php phpinfo(); ?>

Se questo non funziona, utilizzare la funzione ini_set di php per mostrare gli errori: ini_set('display_errors', 1);

+4

se una funzione è l'unica cosa all'interno dei tag php, il punto e virgola non ha importanza. – castis

+1

sei corretto @castis. ma è la migliore pratica. dai un'occhiata qui: http://stackoverflow.com/a/2038751/1637737 quindi in realtà il punto e virgola è ancora richiesto. php è abbastanza intelligente da risolvere i problemi dei pigri. – Mic1780

+3

questo è bello e tutto, ma non lo aiuta con il suo problema. – castis

0

Durante l'installazione di Apache e PHP sotto Ubuntu 14.04, avevo bisogno di attivare specificamente configurazioni php mediante l'emissione di a2enmod php5-cgi

5

Un grande punto è che PHP è disabilitato in home directory degli utenti di default, quindi se si esegue il test da public_html non funziona. Controllare /etc/apache2/mods-enabled/php5.conf

# Running PHP scripts in user directories is disabled by default 
# 
# To re-enable PHP in user directories comment the following lines 
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it 
# prevents .htaccess files from disabling it. 
#<IfModule mod_userdir.c> 
# <Directory /home/*/public_html> 
#  php_admin_flag engine Off 
# </Directory> 
#</IfModule> 

Diverso da quello che l'installazione in Ubuntu è reale facile, come tutte le cose che hai usato per mettere in httpd.conf viene fatto automaticamente.

+0

che ha funzionato per me – spankmaster79

0

Digita nel browser localhost: 80 // test5.php [dove 80 è la tua porta e test.php è il tuo nome file] invece di c: //xampp/htdocs/test.php.

Problemi correlati