Fedora Online Forum

Il forum della comunità italiana di Fedora

#1 13-12-2014 10:18:44

mmF15
Appena sbarcato sul forum
Registrato: 11-05-2012
Messaggi: 22

[Risolto] httpd non visualizza i file PHP

Ciao,
sto cercando di installare LAMP seguendo la guida.
Ho installato MySQL, Apache, PHP e i pacchetti PHP consigliati.

Se nel browser digito:

http://localhost

ottengo la pagina di Apache che conferma il funzionamento: quindi, tutto ok.

Se, invece, digito:

http://localhost/test.php

che contiene semplicemente:

<?php
  phpinfo();
?>

ottengo una pagina vuota (e anche il codice HTML visualizzato nel browser è completamente vuoto).

Se creo una pagina HTML statica di prova in:

/var/www/html/prova.html

e ne carico il contenuto con:

http://localhost/prova.html

posso visualizzarlo correttamente.

Anche PHP è installato correttamente, infatti ottengo:

$ php -v
PHP 5.5.19 (cli) (built: Nov 21 2014 12:01:33) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies

Che ve ne pare?
Riepilogando: non riesco a visualizzare le pagine PHP.
Grazie.

P.S.1: non ho fatto alcuna modifica al file di configurazione httpd.conf
P.S.2: questo messaggio è presente anche in "[F20] Programmi" (dove l'ho inserito originariamente), ma l'ho copiato qui perché mi sembra il forum più appropriato.

Ultima modifica di mmF15 (13-12-2014 15:53:24)

Non in linea

#2 13-12-2014 11:11:21

frafra
Amministratore
Da Trondheim (Norvegia)
Registrato: 14-05-2014
Messaggi: 2'358
Sito web

Re: [Risolto] httpd non visualizza i file PHP

L'utente del server web, ha i permessi per eseguire quel file?

Non in linea

#3 13-12-2014 11:20:25

mmF15
Appena sbarcato sul forum
Registrato: 11-05-2012
Messaggi: 22

Re: [Risolto] httpd non visualizza i file PHP

Ciao,
ho risolto il problema. Scrivo i dettagli per tutti.

Si tratta del modo in cui SELinux confina i file nella directory /var/www/html.
Per verificare come sono confinati, basta digitare:

$ ls -Z
-rw-rw-r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 prova.html
-rw-rw-r--. root root unconfined_u:object_r:user_home_t:s0 test.php

Con questi valori, httpd riesce a caricare prova.html, ma non test.php.
La soluzione consiste nell'impostare anche per test.php il medesimo confinamento di prova.html:

# chcon "unconfined_u:object_r:httpd_sys_content_t:s0" /var/www/html/test.php

Così, infatti, si ottiene:

# ls -Z
-rw-rw-r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 prova.html
-rw-rw-r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 test.php

E httpd può caricare tranquillamente il file test.php.

Mi resta da chiarire ancora una cosa, che giro a voi (cortesemente):
si può confinare il contenuto della cartella /var/www/html/ una volta per tutte, cioè anche per le sottocartelle e i file che vengono aggiunti successivamente (durante lo sviluppo dell'applicazione)?
O si deve usare ogni volta:

# chcon "unconfined_u:object_r:httpd_sys_content_t:s0" /var/www/html/*

per tutti i file e le cartelle? (non sembra ideale)

Qualche idea?
Grazie.

Ultima modifica di mmF15 (13-12-2014 15:52:13)

Non in linea

Piè di pagina