2011-04-08 19 views
8

Ho un server web Apache. Supponiamo che il dominio di questo server sia example.com.download del browser file php dal server web Apache

Quando accesso a example.com, il file index.php viene visualizzato correttamente nel browser.

Tuttavia, quando accedo ad es. example.com/~user, quindi il file index.php del file /home/user/public_html/index.php viene scaricato anziché visualizzato.

Come posso risolvere questo problema? Ho cambiato "expose_php = Off" in php.ini, ma non è cambiato nulla.

+2

Cosa Linux distribuzione che si stiamo usando? Di default debian/ubuntu disabilita l'analisi php nelle directory pubbliche degli utenti. – RageZ

risposta

12

Se siete su Debian/Ubuntu un'occhiata a questo file /etc/apache2/mods-available/php5.conf

miniera assomiglia a questo e si può vedere ho dovuto commentare qualche linea per ottenere PHP lavorare nel dell'utente DIR

<IfModule mod_php5.c> 
    <FilesMatch "\.ph(p3?|tml)$"> 
     SetHandler application/x-httpd-php 
    </FilesMatch> 
    <FilesMatch "\.php$"> 
     SetHandler application/x-httpd-php 
    </FilesMatch> 
    <FilesMatch "\.phps$"> 
     SetHandler application/x-httpd-php-source 
    </FilesMatch> 
    # 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_value engine Off 
    # </Directory> 
    #</IfModule> 
</IfModule> 

si prega di notare che, dopo la modifica del file si dovrà riavviare apache per le modifiche abbiano effetto, il comando per riavviare Apache su un sistema basato su Debian è: /etc/init.d/apache2 restart

5

Spero che questo salva qualcun altro il mal di testa. So che questa domanda è vecchia, ma si presenta ancora quando si cerca questo problema.

Non sono sicuro se questo funziona su tutte le installazioni di apache2, ma sto eseguendo apache2 su ubuntu e ho avuto il problema del mio browser di scaricare file invece di visualizzare il file indice corretto.

il problema risiede nel file /etc/apache2/mods-enabled/dir.conf Il documento predefinito impostazione qui è stato override quello che avevo impostato in /etc/apache2/httpd.conf

Così appena aperto up /etc/apache2/mods-enabled/dir.conf e cambia l'ordine dei file elencati.

:)

0

Ho avuto un'esperienza simile - alcuni file php lavoro OK, ma altri sembrano avere il codice php grezzo scaricato.

Nel mio caso, era a causa dei file interrotti utilizzando il formato di tag breve di <? e ? >. Questo non è raccomandato, e potresti trovare che php.ini predefinito ha forzato questo supporto. Con il supporto disattivato, il codice php viene inviato al browser come se fosse HTML.

Se non è possibile evitare di tag brevi (come nel mio caso - un intero codebase eredità usando i tag brevi), allora si può impostare per essere ammessi in php.ini:

short_open_tag = On 
Problemi correlati