2012-04-24 27 views
9

Il problema è, php -v mostra che PHP 5.3 è installato, e ho apache che funziona correttamente con i file HTML, tuttavia i file PHP mostrano solo l'origine della pagina, e mi rendo conto che probabilmente è una configurazione errata di apache, ma ho provato ogni guida, tutorial e suggerimenti che ho trovato, e non ho ottenuto nulla, e sono abbastanza nuovo in centos, quindi l'aiuto sarebbe molto apprezzato.Problemi di installazione di PHP 5.3 con apache su centos

+0

FYI, dal momento che questa è una domanda di configurazione e non una questione di programmazione, è probabilmente più rilevante per [serverfault.com] (http://serverfault.com). – Wiseguy

risposta

12

.php dovrebbe mai mostrare source ... che significa che l'installazione non è stato fatto correttamente .. invece cercando di rattoppare l'errore, che sono sicuro sarebbe poi una lunga lista penso che si dovrebbe appena ri installare

aggiornamento Yum

yum update 

Installa priorità

yum install yum-priorities 

Rimuovere PHP attuale

yum remove php php-* 

Rimuovere httpd attuale

yum remove httpd 

installare Apache

yum install httpd 

installare PHP

yum install php53u-pear php53u php53u-cli php53u-common php53u-devel php53u-gd php53u-mbstring php53u-mcrypt php53u-mysql php53u-pdo php53u-soap php53u-xml php53u-xmlrpc php53u-bcmath php53u-pecl-apc php53u-pecl-memcache php53u-snmp 

Fix APC

yum remove php53u-pecl-apc 
yum update php53u-pecl-apc --enablerepo=ius-testing 

Modifica php.ini

display_errors = On 

Riavviare Apache

service httpd restart 
+0

Ok, l'ho fatto, e ora invece di mostrare sorgente, il mio file phpinfo stampa solo un pagina vuota. modifica: se visualizzo la fonte in un browser, mostra ancora il codice php. –

+0

Non dovrebbe farlo ... credo sia corretto .... puoi rifarlo ancora una volta .. questa volta inizia rimuovendo httpd ... 'yum rimuovi httpd' installalo indietro .... quindi installa php assicurati riavviare il servizio Apache 'httpd restart' dopo l'installazione di php – Baba

+0

Vorrei aggiornare la mia risposta per i passaggi completi – Baba

0

modificare la vostra configurazione di Apache a /usr/local/apache2/conf/mime.types e aggiungere il seguente alla parte inferiore:

application/x-httpd-php php phtml php5 

Ora avviare Apache usando

/usr/local/apache2/bin/apachectl start 
+0

satya: non ho avuto la cartella/local/apache, quindi sono andato avanti e ho provato il tuo suggerimento con httpd.conf e ho ricevuto questo errore 'Starting httpd: Errore di sintassi sulla riga 998 di /etc/httpd/conf/httpd.conf : Comando non valido 'application/x-httpd-php', forse errato o definito da un modulo non incluso nella configurazione del server ' –

3

Se si' hai costruito dalla fonte, è necessario aggiungere questo al vostro httpd.conf:

LoadModule php5_module modules/libphp5.so 
<FilesMatch \.php$> 
    SetHandler application/x-httpd-php 
</FilesMatch> 
+2

Ho provato il tuo suggerimento e non ho ricevuto errori, ma non è stato risolto nulla. –

+0

Questo funziona per me. I moduli 'LoadModule php5_module modules/libphp5.so AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps applicazione SetHandler/X- httpd-php ' L'ho aggiunto al mio'/etc/httpd/mod.d/php.load' –

8

dopo l'aggiornamento, file PHP ini saranno sostituiti.

Questo farà sì che "Short Open Tags" sia "Off".

Se l'applicazione utilizza <? ?> anziché <?php ?>, php "mostrerà" il codice, non elaborandolo, fornendo al browser il codice sorgente php (magari in una pagina vuota a seconda del codice).

Per risolvere questo problema, ho appena eseguo:

yum remove php* 
yum install php53* 

poi, modificati:/etc/php.ini, cambiando i tag brevi su:

short_open_tag = On 

infine:

service httpd restart 

speriamo vi sia utile;)

+0

Qualsiasi installazione di php 4+, può essere configurata in questo modo –

3

Se PHP è installato da installatore di pacchetti yum, rpm ecc avrà php di default .ini che ha short_open_tag = Off di default, prova a impostarlo su 'On' e riavvia il servizio Apache.

se short_open_tag = Off, gli script php che iniziano con "meno di + punto interrogativo" non verranno elaborati da apache. tuttavia "meno di + punto interrogativo + php" dovrebbe funzionare correttamente.

+0

Wonderful. Ha funzionato. In realtà l'ho provato prima aggiungendo short_open_tag = On, tuttavia non ho notato che c'era un altro short_open_tag = Off nelle righe in fondo al file. Ho dovuto commentare e ha funzionato. Molte grazie. –

0

Non sono riuscito a far funzionare nessuna delle altre soluzioni su CentOS, fino a quando non ho installato il php base RPM (che ora è php54w), che ha installato httpd per me. Solo allora renderebbe il modulo libphp5.so per apache. L'unico comando che mi serviva era:

yum install php54w php54w* 

Non so il motivo per cui non è stata trovata php54w con *, ma a meno che è installato, Apache non conteneva il modulo PHP. .

-3

in httpd.conf, rimuovere il commento Include conf.d/* conf

+2

Puoi approfondire questa risposta? –

Problemi correlati