Newsgroup: it.comp.os.linux.iniziare
Titolo: PHP+APACHE

Ho installato Apache, poi PHP, ma come si fa
funzionare quest'ultimo?
Ho prvato a creare una pagina con del codice
html e codice php, il codice html viene visualizzato
correttamente, il codice php invece viene ignorato,
praticamente, come se non ci fosse. Qualcuno sa
dirmi come far funzionare il PHP?
Devo configurare Apache? Se si come?
-- 
Simone
ICQ #147054457
My OS: Linux Red Hat 7.2

 correttamente, il codice php invece viene ignorato,
Ho provato a reinstallare, questa volta ho
installato Apache e PHP assieme, (mettendo i pacchetti
rpm in una cartella ed dando il comand rpm -ivh *.rpm) 
ma continua a non funzionare!
I pacchetti che ho installato sono:
apache-1.3.20-16.i386.rpm
apache-devel-1.3.20-16.i386.rpm
apache-manual-1.3.20-16.i386.rpm
apacheconf-0.8.1-1.noarch.rpm
php-4.0.6-7.i386.rpm
php-devel-4.0.6-7.i386.rpm
php-manual-4.0.6-7.i386.rpm
php-pgsql-4.0.6-7.i386.rpm


 Devo configurare Apache? Se si come?
Devi configurare Apache.
RTFM
-- 
|f(x)-f(y)|<=L|x-y|

lipschitz wrote:

Configurare? Come? Da dove?
E' da stamattina che sono davanti al pc e non
sono ancora riuscito a fare nulla.


 ha scritto:

Partendo dal file di configurazione predefinito, leggendolo, cercando di
capirlo. Cercando di trovare la parte dedicata al php e usando le pagine
man e google quando vengono dei dubbi.
Postando solo quando ci sono dubbi *precisi* e *circostanziati*.
In una parola: RTFM.
-- 
|f(x)-f(y)|<=L|x-y|

 In una parola: RTFM.
Ecco cosa ho trovato su google:
|Configurazione di PHP3 per Linux Red Hat 6.1 (provaci lo stesso!)
|
|1 - Installazione (ma non credo ti interessi).
|    Dal CD di Red Hat 6.1 installare i pacchetti php digitando i
|comandi:
|    rpm -i /mnt/cdrom/RedHat/RPMS/php-3.0.12-6.i386.rpm
|    rpm -i /mnt/cdrom/RedHat/RPMS/php-manual-3.0.12-6.i386.rpm
|
|2 - Configurazione di Apache Web Server (questo dovrebbe essere uguale).
|    Editare il file /etc/httpd/conf/httpd.conf:
|    decommentare ( eliminando il cancelletto # ) le linee:
|    #LoadModule php3_module        modules/libphp3.so
|    #AddModule mod_php3.c
Ma il mio httpd.conf è diverso, la sezione riguardante il
php ha questa struttura:
<IfDefine HAVE_PHP>
LoadModule php_module         modules/mod_php.so
</IfDefine>
<IfDefine HAVE_PHP3>
LoadModule php3_module        modules/libphp3.so
</IfDefine>
<IfDefine HAVE_PHP4>
LoadModule php4_module        modules/libphp4.so
</IfDefine>
Il caricamento dei moduli dipende dalle variabili HAVE_PHP,
HAVE_PHP3, HAVE_PHP4,
La mia versione del php è la 4, ho cercato i file libph*.so,
l'unico che c'è è il file libphp4.so, così ho modificato
il file aggiungendo a parte la riga
LoadModule php4_module        modules/libphp4.so
in modo che l'esecuzione di questa non dipendesse da un
IfDefine, ho riavviato httpd, ma non è cambiato nulla!
Più sotto, in http.conf, c'era questo codice:
<IfDefine HAVE_PHP4>
AddModule mod_php4.c
</IfDefine>
ma nel mio hd il file mod_php4.c non esiste
(eppure i pacchetti .rpm li ho installati!)
|    Editare il file /etc/httpd/conf/srm.conf:
|    decommentare la linea:
|    #AddType application/x-httpd-php3 .php3
Ma il mio file srm.conf è praticamente vuoto, ci sono
solo delle righe commentate, eccone il contentuo:
#
# This is the default file for the ResourceConfig directive in httpd.conf.
# It is processed after httpd.conf but before access.conf.
#
# To avoid confusion, it is recommended that you put all of your
# Apache server directives into the httpd.conf file and leave this
# one essentially empty.
#
Così ho aggiunto queste due righe:
AddType application/x-httpd-php4 .php4
AddType application/x-httpd-php .php
|    per ulteriori configurazioni dell' interprete php editare
|    il file php3.ini che si trova nella directory /etc/httpd
E in /etc/php.ini vedo queste due righe:
 ; Enable the PHP scripting language engine under Apache.
engine = On


 |Configurazione di PHP3 per Linux Red Hat 6.1 (provaci lo stesso!)
                                    ^^^^^^^^^^^
Se non sbaglio, ultimamente il file di configurazione di apache ha
cambiato leggermente sintassi.
Adesso accetta gli include.
Sempre se non sbaglio, nel file di configurazione di apache è in certi
casi importante l'ordine in cui sono date le direttive.
Sostanzialmente quello che hai fatto tu (aggiungere AddType Application
e il LoadModule) sono le operazioni corrette (i.e. è quello che ho fatto
io e a me funziona).
Forse la sintassi per l'AddType del php4 è sbagliata; io ho:
    #
    # AddType allows you to tweak mime.types without actually editing
    # it, or to
    # make certain files to be certain types.
    #
    # For example, the PHP 3.x module (not part of the Apache
    # distribution - see
    # 
http://www.php.net
) will typically use:
    #
    AddType application/x-httpd-php3 .php3
    AddType application/x-httpd-php3-source .phps
    #
    # And for PHP 4.x, use:
    #
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
Nota che io per il php4 ho come estensione .php e non .php4.
Inoltre per caricare il php non ho usato il direttamente loadmodule, 
ma ho usato un include (questa parte va in fondo al file di conf.):
# ==> mod_php configuration settings <==
#
# PACKAGES REQUIRED:  ossllibs.tgz (A series), mysql.tgz (AP series),
#                     gmp.tgz (GTK series), and apache.tgz (N series)
#
Include /etc/apache/mod_php.conf
Il file /etc/apache/mod_php.conf è il seguente (N.B.: il file seguente è
un file differente da httpd.conf, le parti precedenti invece fanno parte
dell'httpd.conf):
#
# mod_php - PHP Hypertext Preprocessor module
#
LoadModule php4_module /usr/libexec/libphp4.so
AddModule mod_php4.c
# Tell Apache to feed all *.php files through the PHP module
AddType application/x-httpd-php .php
# This will display PHP files in colored syntax form.  Use with caution.
#AddType application/x-httpd-php-source .phps
Ah, io ho slack, quindi i pacchetti indicati nelle dipendenze saranno
diversi dai tuoi. Per il resto dovrebbe essere tutto uguale.
-- 
|f(x)-f(y)|<=L|x-y|

 AddModule mod_php4.c
Questo file invece mi manca.
Ho provato a cercare su 
rpmfind.net
, ma non c'è nessun pacchetto .rpm
che lo contiene.
'notte
-- 
My OS: Linux Red Hat 7.2
ICQ #147054457
Linux User #276372
Linux Machine #159118

 Questi pacchetti non ce li ho, ho installato dai pacchetti .rpm
Ovvio, io ho una slack, tu una redhat. Per essere *sicuro* di aver
installato tutti i pacchetti con tutte le dipendenze usa le opzioni
del comando rpm (non ricordo quale, ma c'è un'opzione che ti dice le
dipendenze). Al limite vai su rpmfind e metti il nome _esatto_ del
pacchetto mod_php che hai installato e verifica le dipendenze.
A questo punto se hai messo l'AddModule, il LoadModule e l'AddType
application *deve* funzionare. Fai un file _solo_ testo chiamato
hello.php che contiene questo testo:
html><head><title>PHP Test</title></head>
<body>
<?php echo "Hello World<p>"; ?>
</body></html>
 
e mettilo nella radice del webserver (su slack è /var/www/html-docs/,
su redhat *potrebbe* essere /home/httpd/html).
Riavvia il demone digitando:
/etc/rc.d/rc.http start 
o comando equivalente per la redhat.
Poi vai con un web browser su 
http://127.0.0.1/hello.php
 e vedi cosa
c'è: dovrebbe esserci solo la scritta "Hello World".

 pacchetto mod_php che hai installato e verifica le dipendenze.
Avevo già gurardato su rpmfind, ma non si trova nulla,
cmq, alla fine ho risolto tutto: ho disintallato il php
e l'ho reinstallato dal pacchetto .tar.gz, ma non riesco
ancora a capire perché dagli rpm non si poteva installare,
ovvero, si installava, ma non era possibile configurarlo
per Apache perché mancavano dei files, non compresi nell'rpm
