php, mysql, apache2

Ho seguito la vostra spiegazione per avviare tra loro i vari programmi ma ho riscontrato 2 problemi............

Quando ho aggiunto l'estensione msqli non sono riuscita a trovarla nella pagina di php (dove dite che la avrei trovata circa a metà) e poi quando provo la connessione a mysql mi viene questa scritta sulla pagina

Fatal error: Call to undefined function mysqli_connect() in C:\Programmi\Apache Group\Apache2\htdocs\testmysql.php on line 2

Sapete dirmi cos è successo???

inviato 11 anni fa
leilina73
X 0 X

è evidente che l'estensione mysqli non è stata caricata.

Dopo aver fatto le modifiche al php.ini hai riavviato Apache? Nel farlo hai ricevuto degli errori?

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

è ripartito senza problemi nessun messaggio di errore

risposto 11 anni fa
leilina73
X 0 X

ricapitoliamo i passaggi per installare mysqli (supponendo che il php sia stato scompattato nella cartella C:\php)

1) copiare in C:\windows il file libmysql.dll presente nella cartella di php

2) nel php.ini modificare la direttiva extension_dir: extension_dir = "C:\php\ext"

3) aggiungere nel php.ini la direttiva extension=php_mysqli.dll

4) riavviare apache

Fatto tutto?

In caso affermativo sicura di aver solo una copia del file php.ini sul PC?

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

ho fatto proprio tutto ma niente non funziona.

Ho controllato e ricontrollato ma niente.......

Sono novizia in ste cose ma riesco a capire abbastanza bene

risposto 11 anni fa
leilina73
X 0 X

La cosa che non mi convince è che se nel php.ini viene richiesto di caricare una estensione (cosa che accade con la direttiva extension=php_mysqli.dll) al momento del riavvio di Apache o la cosa va a buon fine o si riceve un errore. Non ci sono alternative.

Quindi se non ricevi nessun errore al riavvio di Apache allora o l'estensione è stata caricata correttamente (ma l'avresti vista elencata nell'output del phpinfo()) oppure nel php.ini non c'è la direttiva suddetta (ma mi hai confermato che invece l'hai messa).

Ultima possibilità: dai un'occhiata all'intestazione della pagina ottenuta con il php.ini. Noterai una cella della tabella in cui c'è scritto "Configuration File (php.ini) Path". Cosa c'è scritto alla sua destra?

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

C:\WINDOWS

c'è scritto

risposto 11 anni fa
leilina73
X 0 X

Ciò significa che php cerca il php.ini nella cartella di windows

Dove hai il php.ini? Se hai seguito la guida dovrebbe trovarsi nella cartella C:\php

a questo punto credo che tu abbia fatto qualche errore nel modifcare il file httpd.conf infatti avresti dovuto inserire le righe:

LoadModule php5_module "c:/php/php5apache2.dll"

AddType application/x-httpd-php .php

PHPIniDir "C:/php"

e la terza dice proprio a php di andare a cercare il php.ini nella cartella c:\php

Non ti rimane altro che controllare questo passaggio

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

il php.ini si trova  in c:/php....

risposto 11 anni fa
leilina73
X 0 X

controlla allora di aver messo la direttiva

PHPIniDir "C:/php"

in httpd.conf

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

e anche quel messaggio è giusto.......

Ora io ho due file httpd e httpd.default

Ho scritto nel primo lo script di prima

Dovevo metterlo nell'altro????

Scusa la mia ignoranza ma mi sto avvicinando da sola a queste cose e forse faccio un po' fatica...... Intanto grazie :):):):):)

risposto 11 anni fa
leilina73
X 0 X

il file si chiama httpd.conf, solo quesllo devi modificare. Attenta a Windows che ti nasconde le estensioni dei files.

Verifica che in tale file ci siano le direttive

LoadModule php5_module "c:/php/php5apache2.dll"

AddType application/x-httpd-php .php

PHPIniDir "C:/php"

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

non c'è quel file

solo i due che ti ho detto

con httpd.txt

e httpd.defaul.txt

ho provato a cambiare nell'altro ma adesso mi apre le due pagine in dreamweaver

:(

risposto 11 anni fa
leilina73
X 0 X

e mi da sempre questo errore

Fatal error: Call to undefined function mysqli_connect() in C:\Programmi\Apache Group\Apache2\htdocs\testmysql.php on line 2

risposto 11 anni fa
leilina73
X 0 X

si vede che il programma che hai usato per editare i due files ha midificato l'estensione in .txt

rinomina httpd.txt in httpd.conf e verifica che al suo interno ci siano quelle 3 righe famose poi riavvia apache e riprova

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

niente da fare adesso rifaccio tutto dall'inizio e vediamo chi la vince.

Io ho installato l'ultima versione di mysql la 5......... ora che ci penso perchè la 4. non mi partiva......... può dipendere da quello??

risposto 11 anni fa
leilina73
X 0 X

no, il problema è solo di php  :dunno:

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

rifaccio tutto così seguo di nuovo passo passo

Poi al massimo ti "rompo" un'altra volta

risposto 11 anni fa
leilina73
X 0 X

niente da fare , non funziona, devono esserci problemi con la nuova versione di mysql credo............. non so cosa fare ho seguito tutto passo passo

risposto 11 anni fa
leilina73
X 0 X

ti ripeto che non è un problema di MySQL.

Il problema è che il php non trova il php.ini e pertanto non sa che deve caricare l'estensione mysqli

dall'output di phpinfo() hai verificato che il php.ini viene cercato nella cartella di windows (posizione di default) e ciò significa che la direttiva PHPIniDir "C:/php" del file httpd.conf per qualche ragione non ha avuto effetto.

Se non riesci a risolvere questo problema puoi sempre spostare il php.ini nella cartella di windows, proprio dove il php lo sta attualmente cercando.

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

non ne vuole proprio sapere......................

Ci rinuncio

Grazie lo stesso......

Ciao Leila

risposto 11 anni fa
leilina73
X 0 X

non ne vuole proprio sapere......................

Ci rinuncio

Grazie lo stesso......

Ciao Leila

tutti abbiamo avuto problemi all'inizio, basta avere pazienza e con calma riprovare.  :bye:

risposto 11 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda