View Full Version : Configurare apache (problemi con php)
Ho installato apache 2, php 5 e mysql 5 su sistema operativo linux versione centOS 5.1.
Ho provato a verificare la corretta installazione di php creando nella cartella /var/www/html il file info.php (contenente lo script <?php phpinfo() ?>.
Quando ho digitato l'indirizzo http://localhost/info.php, il browser mozilla firefox non ha generato alcun output, nè sono stati generati degli errori.
Viene visualizzata una pagina bianca.
Quale può essere il problema?
Scoperchiatore
26-12-2007, 00:06
Ho installato apache 2, php 5 e mysql 5 su sistema operativo linux versione centOS 5.1.
Ho provato a verificare la corretta installazione di php creando nella cartella /var/www/html il file info.php (contenente lo script <?php phpinfo() ?>.
Quando ho digitato l'indirizzo http://localhost/info.php, il browser mozilla firefox non ha generato alcun output, nè sono stati generati degli errori.
Viene visualizzata una pagina bianca.
Quale può essere il problema?
Prova a fare
telnet localhost 80
Se ti dice qualcosa di questo tipo:
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
allora apache va bene, e probabilmente sarà così.
Però, se php non fosse stato installato correttamente, la pagina bianca ti sarebbe apparso col tag php non interpretato. Prova a aggiungere qualcosa, oltre a phpinfo, come la data o tag HTML statici
Prova a fare
telnet localhost 80
Se ti dice qualcosa di questo tipo:
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
allora apache va bene, e probabilmente sarà così.
Però, se php non fosse stato installato correttamente, la pagina bianca ti sarebbe apparso col tag php non interpretato. Prova a aggiungere qualcosa, oltre a phpinfo, come la data o tag HTML statici
Dopo aver avviato apache (/etc/init.d/httpd start) ho digitato sul terminale telnet localhost 80 e sono state visualizzate le righe seguenti:
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
Dunque apache funziona.
Ho modificato il file info.php aggiungendo altre istruzioni.
Ecco il contenuto attuale del file:
<html>
<head>
<title> Informazioni su php </title>
</head>
<body>
Di seguito sono riportate le informazioni relative alla configurazione di php:
<?php
phpinfo();
echo (date("d-m-y"));
?>
</body>
</html>
Ho digitato l'indirizzo http://localhost/info.php, ma non viene visualizzato assolutamente nulla sul browser.
Non viene visualizzato nè il titolo "Informazioni su php", nè la frase "Di seguito sono riportate le informazioni relative alla configurazione di php", nè l'output php, nè il codice sorgente php.
Appare solo una pagina completamente vuota.
Ho provato anche a inserire nella directory /var/www/html il file prova.html, contenente il seguente codice html:
<html>
<head>
<title> Prova </title>
</head>
<body>
Prova
</body>
</html>
Questo file viene visualizzato correttamente dal browser.
Hai installato cosa significa ? Che li hai messi su da zero ? Perchè di solito Centos ha già un suo apache precompilato. Non vorrei che adesso ce ne fossero 2.
Io proverei a rimuovere tutto e a ributtare su tutto. Rimuovi tutto con yum e ributti su.
Qui c'è uan guida al sistema LAMP: http://lamphowto.com/
Qui c'è una guida completa (è per la 4.1, ma vale anche per la 5.x), inizia dall'installazione, ovviamente puo saltare alla parte che ti interessa:
http://www.howtoforge.com/perfect_setup_centos_4.3
Hai installato cosa significa ? Che li hai messi su da zero ? Perchè di solito Centos ha già un suo apache precompilato. Non vorrei che adesso ce ne fossero 2.
Io proverei a rimuovere tutto e a ributtare su tutto. Rimuovi tutto con yum e ributti su.
Qui c'è uan guida al sistema LAMP: http://lamphowto.com/
Qui c'è una guida completa (è per la 4.1, ma vale anche per la 5.x), inizia dall'installazione, ovviamente puo saltare alla parte che ti interessa:
http://www.howtoforge.com/perfect_setup_centos_4.3
Inizialmente avevo seguito la guida http://lamphowto.com/ per installare apache (installazione tramite file .tar.gz).
Poi mi sono accorto che centOS ha già un suo apache installato.
Perciò ho eliminato la cartella in cui avevo installato apache (/sw/pkg/apache) e quella in cui avevo estratto i file di installazione (/usr/local/src).
Poi ho installato i seguenti pacchetti rpm con yum: php php-gd php-mysql php-mbstring php-imap mysql-server (il pacchetto httpd è una dipendenza).
Ho creato il file info.php e l'ho inserito nella cartella /var/www/html.
Inizialmente all'indirizzo http://localhost/info.php veniva visualizzato correttamente l'output dalla funzione phpinfo().
Finchè, per inserire i documenti da far girare su apache nella cartella /home/<mionomeutente>/public_html, non ho decommentato le seguenti righe (in grassetto) sul file /etc/httpd/conf/httpd.conf:
<IfModule mod_userdir.c>
#
# UserDir is disabled by default since it can confirm the presence
# of a username on the system (depending on home directory
# permissions).
#
UserDir disable
#
# To enable requests to /~user/ to serve the user's public_html
# directory, remove the "UserDir disable" line above, and uncomment
# the following line instead:
#
#UserDir public_html
</IfModule>
#
# Control access to UserDir directories. The following is an example
# for a site where these directories are restricted to read-only.
#
#<Directory /home/*/public_html>
# AllowOverride FileInfo AuthConfig Limit
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
# <Limit GET POST OPTIONS>
# Order allow,deny
# Allow from all
# </Limit>
# <LimitExcept GET POST OPTIONS>
# Order deny,allow
# Deny from all
# </LimitExcept>
#</Directory>
Ho anche inserito il carattere # davanti a "UserDir disable".
Ho quindi spostato il file info.php dalla cartella /var/www/html alla cartella /home/<mionomeutente>/public_html, ma, quando ho digitato l'indirizzo http://localhost/info.php, il server ha inviato il seguente messaggio:
Not Found
The requested URL /info.php was not found on this server.
Apache/2.2.3 (CentOS) Server at localhost Port 80
Allora ho ricommentato le righe che avevo decommentato nel file httpd.conf e ho decommentato la riga "UserDir disable".
Ho reinserito il file info.php nella cartella /var/www/html, e ho digitato sulla barra degli indirizzi http://localhost/info.php, ma il browser firefox non visualizzava assolutamente nulla, nemmeno messaggi di errore.
Oggi ho provato a reinstallare tutto.
Ho trovato tutti i pacchetti da disinstallare con i seguenti comandi:
- rpm -qa | grep -i apache
- rpm -qa | grep -i httpd
- rpm -qa | grep -i php
- rpm -qa | grep -i mysql
Ho disinstallato tutti i pacchetti con yum.
Li ho reinstallati seguendo la guida http://www.howtoforge.com/perfect_setup_centos_4.3.
Ma niente: la pagina http://localhost/info.php è ancora vuota.
Mi sembra di aver risolto il problema, dato che ora viene visualizzato correttamente l'output della funzione phpinfo().
Ho reinstallato di nuovo php e apache, questa volta però eliminando i file nei quali viene salvata la configurazione della precedente installazione (.rpmsave) ed eliminando anche il file info.php precedentemente salvato nella cartella /var/www/html.
Ecco in pratica quello che ho fatto:
rpm -qa | grep -i php
yum remove <pacchetti php trovati con il comando precedente>
rm /etc/php.ini~ /etc/php.ini.rpmsave
rm /etc/httpd/conf.d/php.conf~ /etc/httpd/php.conf.rpmsave
rpm -qa | grep -i httpd
yum remove <pacchetto httpd trovato con il comando precedente>
rm httpd.conf~ httpd.conf.rpmsave
yum install <pacchetti php e pacchetto httpd precedentemente rimossi>
/etc/init.d/httpd start
/sbin/chkconfig --levels 235 httpd on
cd /var/www/html
rm info.php info.php~ prova.html
gedit phpinfo.php
Nel file phpinfo.php ho inserito di nuovo lo script <?php phpinfo(); ?>.
Adesso l'output dello script php viene visualizzato correttamente dal browser, non appare più una pagina bianca.
Come posso configurare apache per salvare i file da far girare sul server nella cartella /home/<mionomeutente>/public_html (invece che in /var/www/html) senza fare di nuovo danni?
Se hai apache 2 devi modificare la DocumentRoot in questo file
/etc/apache2/sites-available/default
Nel mio File System non c'era il file /etc/apache2/sites-available/default.
Ho cambiato la Document Root nel file /etc/httpd/conf/httpd.conf (ho sostituito /var/www/html con /home/<mionomeutente>/public_html).
Ho creato la directory public_html e ho salvato al suo interno il file info.php.
Ma, all'indirizzo http://localhost/info.php veniva visualizzato il seguente messaggio d'errore:
Forbidden - You don't have permission to access /info.php on this server
Ho fatto alcune ricerche con google e ho appreso che tutte le directory che apache deve attraversare per arrivare a public_html devono avere i permessi di lettura/scrittura ed esecuzione, altrimenti viene visualizzato il messaggio d'errore sopra indicato.
Perciò ho cambiato i permessi della cartella /home/<mionomeutente>/public_html con le seguenti istruzioni:
su
cd /
chmod -R 755 home
Ora tutto sembra funzionare a dovere.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.