# Problemi con Php e MySql

## alexbr

Spiacente di ritornare nel forum e aprire un'altro topic per fare una domanda già posta, ma php continua a non funzionare col supporto mysql e questo mi irrita non poco.

L'errore è sempre lo stesso:

```
Fatal error: Call to undefined function: mysql_connect() in /home/httpd/htdocs/sito/index.php on line 7

```

dubbi atroci mi assalgono: non vorrei mai arrivare a soluzioni winzozziane come reinstallare tutto!  :Shocked:   :Shocked:   :Shocked: 

Ho emerso già una decina di volte php e mod_php con tutte le combinazioni di USE flags che mi potessero venire in mente ma l'errore è sempre lo stesso: aiutatemi!!!

----------

## shev

Sinceramente non so che dirti, però ispirandomi a questo topic ti faccio le ovvie domande: hai avviato mysql? sicuro sicuro di aver usato la flags "mysql" quando l'hai compilato (hai controllato con le opzioni -vp di emerge)?

Spiacente di non poterti essere troppo d'aiuto... (magari google ne sa qualcosa  :Wink:  ).

----------

## alexbr

Ho provato a fare tutto ciò che mi hai detto:

anche il topic che mi hai segnalato purtroppo non mi è stato di aiuto.  :Sad: 

Forse l'unica soluzione è proprio quella di reinstallare tutto da capo (dopo tutto, è stata la mia prima installazione di gentoo e ci sono anche altre modifiche che vorrei fare nel mio sistema per cui credo sia meglio così  :Very Happy: : )

Sto scrivendo un programma in php stile portale per la condivisione di files.

Non vorrei continuare ad usare windows per le svilupparlo e testarlo: è un po' frustrante.  :Sad: 

A proposito: colgo l'occasione per ridirigervi al sito che sto sviluppando con i miei amici: http://utenti.lycos.it/marentaxdevelop/

lo sviluppo del portale è a buon punto e chiunque volesse provarlo può farlo. Il file più aggiornato è sito-0.0.6-a.zip.

E' il mio primo programma in php: ditemi che ve ne pare.  :Very Happy: 

Scusate lo sproloquio... non è per fare propaganda ma perchè un contributo all'OpenSource in più è sempre meglio che uno in meno!  :Wink: 

----------

## paolo

Il problema non è il MySQL che gira o meno (cmq DEVE essere in esecuzione), quanto invece la mancanza del supporto mysql nel php stesso, visto l'errore.

Indaga in questa direzione e mostraci qualche output perchè qui siamo tutti come S.Tommaso  :Wink: 

Direi che puoi iniziare a mostrarci "emerge -vp mod_php".

Paolo

----------

## alexbr

Come vuoi: ecco qui l'output, ma a me sembra tutto normale!

```
 

These are the packages that I would merge, in order:

 

Calculating dependencies ...done!

[ebuild   R   ] dev-php/mod_php-4.3.2-r4  -apache2 +X +crypt -curl -firebird -flash -freetds -gd -gd-external +gdbm -imap -informix -ipv6 +java +jpeg -ldap -mcal -memlimit +mysql +nls -oci8 -odbc +pam +pdflib +png -postgres +qt -snmp +spell +ssl -tiff +truetype +xml2

 

```

Tu che ne dici?

----------

## paolo

Ok, ora manda un "emerge mod_php > log.txt" e poi vedi se in questo file (log.txt) c'è qualcosa di strano.

Speriamo non sia colpa dell'ultima versione in portage  :Smile: 

Paolo

----------

## paolo

Cmq dai un "emerge rsync" perchè non hai l'ultima versione (che è la 4.3.3-r1 qui da me)

Paolo

----------

## alexbr

Illustro un mio ragionamento contraddittorio mentre compila:

mod_php contiene i moduli aggiuntivi per php, giusto?

questi moduli si dovrebbero caricare automaticamente, giusto?

se così non fosse basterebbe aggiungere al file php.ini la direttiva extension=mysql.so, giusto?

una volta configurato il file php.ini tutto dovrebbe andare, giusto?

non va.

ma cosa mi hanno messo? la nutella al posto del processore e la mostarda al posto del cervello?  :Shocked: 

skepticism inside, powered by marentax

----------

## alexbr

questione aggiuntiva: è fortemente sconsigliato fermare la compilazione in corso?

Stacco di brutto lo faccio soffrire pian piano?

scusa il messaggio, dev'essere la stanchezza!

----------

## paolo

CTRL+C e interrompi in scioltezza.

Il supporto per il mysql è compilato dentro al php.

Paolo

----------

## alexbr

compilato! ma non so per quale strano motivo ha comunque rediretto due linee di output alla console: forse possono essere interessanti!

```
/var/tmp/portage/mod_php-4.3.2-r4/work/php-4.3.2/ext/standard/var_unserializer.c: In function `php_var_unserialize':

/var/tmp/portage/mod_php-4.3.2-r4/work/php-4.3.2/ext/standard/var_unserializer.c:308: warning: comparison is always false due to limited range of data type

```

per il resto l'output su file non dice niente di particolare... se vuoi vederlo te lo mando via e-mail domani.

----------

## paolo

Scarica l'ultima versione.

Aggiorna il portage e riemergi mod_php.

Paolo

----------

## mrfree

 *Quote:*   

> mod_php contiene i moduli aggiuntivi per php, giusto?

 

In realtà no, mod_php implementa il supporto php per apache/apache2 in forma modulare (non dimenticare di abilitare il caricamento di tale modulo)

Anche secondo me durante la compilazione non viene eseguita la parte riguardante le estensioni mysql, prova a dare uno sguardo alla parte del 

```
./configure
```

 durante l'emerge dovresti vedere qualche voce riguardante MySQL. Probabilmente sarà settatta a no in tal caso prova a verificare l'installazione del mySQL Server

----------

## BlueRaven

In aggiunta a tutto quello che ti hanno detto, se PHP comunque fa il parsing delle pagine, metti dentro a un file index.html:

```
<?php phpinfo(); ?>
```

e cerca la sezione relativa a mysql, così hai qualche indizio in più su come risolvere il problema.

Magari posta qui il risultato.

----------

## alexbr

 *Quote:*   

>  durante l'emerge dovresti vedere qualche voce riguardante MySQL. Probabilmente sarà settatta a no in tal caso prova a verificare l'installazione del mySQL Server

 

purtroppo proprio quei settaggi sono attivi, come vedi in seguito, e riconosce anche il socket di connessione sul mio computer... è proprio questo che mi preoccupa (ricordiamo che mysql è avviato e funziona con altri programmi come il client distribuito col database, anche se non centra molto):

```
checking for MySQL support... yes

checking for specified location of the MySQL UNIX socket... /var/run/mysqld/mysqld.sock

checking for MySQL UNIX socket location... /var/run/mysqld/mysqld.sock

```

 *Quote:*   

> e cerca la sezione relativa a mysql, così hai qualche indizio in più su come risolvere il problema. 

 

Non c'è una sezione mysql sul mio php_info.  :Shocked: 

la cosa sta diventando sempre più strana, non trovate (nessuno ha mai pensato a una faccina che esprima ad un misto tra tristezza ed ironia e voglia di farsi a fettine?)?

----------

## cerri

Mi sembra assurdo, ma hai controllato che in php.ini ci siano i settaggi per MySQL?

CMQ se nel php_info non c'e' traccia di MySQL... E' raggiungibile il tuo server per vedere l'output di php_info?

----------

## alexbr

il mio in effetti non è un server vero e proprio... è un portatile per testare i miei programmi:

non saprei come farti rispondere da apache, ma ti do quealche informazione, se ti è utile:

l'ip del computer con cui sono connesso ha internet (ha windows perchè non ho ancora i driver per il mio modem adsl) è: 80.117.115.116

l'ip del mio computer nella rete locale è: 192.168.0.2

se riesci ad entrare lo riconoscerai per l'index originale di apache... la cartella che contiene il programma in php sta in sito/

un file con php_info si chiama test.php e sta nella root directory

dimmi cosa altro ti può servire

----------

## cerri

Se riuscissi ad entrare, mi arresterei da solo  :Smile: 

Riesci a postare il php_info da qualche parte?

----------

## alexbr

te lo posto al primo ip (quello del server windows) sul mio programma, ok?

----------

## cerri

OK, poi spara l'url.

----------

## alexbr

eccola qui: http://192.168.0.1/sito/download.php?file_id=28

----------

## cerri

Nonononoo.

Quell'ip NON va bene  :Smile: 

----------

## alexbr

Che stupido!!! ho copiato la link location dalla rete interna!  :Laughing: 

questo è l'ip per gli esterni: http://80.117.115.116/sito/download.php?file_id=28

----------

## paolo

Ti esorto ancora una volta ad aggiornare il portage e quindi a scaricare il mod_php più recente.

<BTW>

Effettivamente nel phpinfo(); del mysql non c'è traccia se non nei parametri di configure...

Mostraci anche l'output di emerge mod_php.

Paolo

----------

## alexbr

scusa ma è moralmente scorretto postare un output di compilazione di un mega e due... neanche ci stà!  :Wink: 

----------

## cerri

Direi di più:

 *Quote:*   

>  './configure' '--prefix=/usr' '--host=i686-pc-linux-gnu' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--datadir=/usr/share' '--sysconfdir=/etc' '--localstatedir=/var/lib' '--without-readline' '--with-apxs2=/usr/sbin/apxs2' '--without-db3' '--without-db4' '--without-db2' '--with-mcrypt=/usr' '--with-mhash' '--with-gdbm=/usr' '--with-java=/opt/blackdown-jdk-1.4.1' '--without-pgsql' '--with-xpm-dir=/usr/X11R6' '--with-pdflib=/usr' '--without-gd' '--with-png-dir=/usr' '--with-jpeg' '--with-jpeg-dir=/usr' '--enable-exif' '--with-tiff-dir=/usr' '--without-mysql' '--with-ttf' '--with-t1lib' '--with-gettext' '--with-qtdom' '--with-pspell' '--with-openssl' '--without-curl' '--without-imap' '--without-ldap' '--with-dom' '--with-dom-xslt' '--with-dom-exslt' '--without-kerberos' '--with-pam' '--disable-memory-limit' '--disable-ipv6' '--disable-dbx' '--with-zlib' '--with-zlib-dir=/usr/lib' '--with-sablot=/usr' '--enable-xslt' '--with-xslt-sablot' '--with-xmlrpc' '--enable-wddx' '--with-xml' '--enable-mbstring=all' '--enable-mbregex' '--with-bz2' '--with-crack' '--with-ndbm' '--with-cdb' '--enable-bcmath' '--enable-calendar' '--enable-dbase' '--enable-filepro' '--enable-ftp' '--with-mime-magic' '--enable-sockets' '--enable-sysvsem' '--enable-sysvshm' '--enable-sysvipc' '--with-iconv' '--enable-shmop' '--enable-dio' '--enable-inline-optimization' '--enable-track-vars' '--enable-trans-sid' '--enable-versioning' '--with-config-file-path=/etc/php/apache2-php4'

 

----------

## alexbr

ho notato anch'io, ma questo secondo me conferma solo che è logico che i comandi di connessione al database non vadano, ma non mi dice niente sul perchè durante la compilazione emerge riconosce come dipendenze mysql, configure le include nel MakeFile e il risultato della compilazione sia un pacchetto che con mysql non sembra nemmeno parente di quarantesimo grado  :Wink:  !

----------

