|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Dec 2007
Messaggi: 5
|
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? |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Sep 2001
Città: Roma
Messaggi: 1944
|
Quote:
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
__________________
"Oggi è una di quelle giornate in cui il sole sorge veramente per umiliarti" Chuck Palahniuk Io c'ero |
|
![]() |
![]() |
![]() |
#3 | |
Junior Member
Iscritto dal: Dec 2007
Messaggi: 5
|
Quote:
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. |
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Nov 2004
Città: Reggio Emilia e dintorni
Messaggi: 3726
|
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
__________________
Open CD ITA - Open DVD ITA - Linux da Zero - RFC1925 - O.S.: Debian & Slackware - Rule #1: It has to work ! AVERE DELLE CONOSCENZE E NON CONDIVIDERLE E' COME NON AVERE NULLA |
![]() |
![]() |
![]() |
#5 | |
Junior Member
Iscritto dal: Dec 2007
Messaggi: 5
|
Quote:
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. |
|
![]() |
![]() |
![]() |
#6 |
Junior Member
Iscritto dal: Dec 2007
Messaggi: 5
|
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? |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Nov 2004
Città: Reggio Emilia e dintorni
Messaggi: 3726
|
Se hai apache 2 devi modificare la DocumentRoot in questo file
/etc/apache2/sites-available/default
__________________
Open CD ITA - Open DVD ITA - Linux da Zero - RFC1925 - O.S.: Debian & Slackware - Rule #1: It has to work ! AVERE DELLE CONOSCENZE E NON CONDIVIDERLE E' COME NON AVERE NULLA |
![]() |
![]() |
![]() |
#8 |
Junior Member
Iscritto dal: Dec 2007
Messaggi: 5
|
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. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:09.