Pagina 1 di 1

MySQL e PHP (ancora)

Inviato: dom 9 ott 2005, 22:49
da HackMeSoftly
Ho la Slack 10.2, che ha di default sia PHP che MySQL installati. Ma se lancio un qualunque script di connessione al DB, PHP non si connette, per esempio:

Codice: Seleziona tutto

Fatal error: Call to undefined function: mysql_connect()
Ci sono altre operazioni che devo fare dopo la semplice installazione della Slack per far digerire MySQL a PHP?
Con il phpinfo() mi pare che mysql non sia incluso, eppure mi sembra che il php.ini sia ben configurato (eventualmente lo posto, se non avete una soluzione veloce).

Eventualmente da quale directory devo ricompilare php? Provo a lanciare un ./configure con --with-mysql, forse la Slack 10.2 non lo fa di suo... scusate l'ignoranza, ho fatto un slocate ma non riesco a capire dove stanno i sorgenti, o se li devo riscaricare :)

Inviato: dom 9 ott 2005, 23:02
da HackMeSoftly
Addenda: forse devo installare il MySQL max, perchè è incluso solo il client, nella Slack 10.2?

Inviato: lun 10 ott 2005, 0:27
da tojo72
da root lancia

mysql_install_db per installare il database degli utenti

Ora sotto /var/lib/mysql dovresti trovare due nuove directory:

/var/lib/mysql/mysql che contiene il database di utenti
/var/lib/mysql/test che è vuota

Ora lancia

chown -R mysql /var/lib/mysql

Fai partire il server con

mysqld_safe &

Verifica che sia in up con

mysqladmin ping

Entra con

mysql

Se ottieni un errore, puoi vederlo con

cat /var/lib/mysql/NOMEHOST.err

Inviato: lun 10 ott 2005, 0:53
da HackMeSoftly
Ho fatto, ed è andato tutto a buon fine, ma l'errore Call to undefined function nello script PHP, si ripete...

Inviato: lun 10 ott 2005, 0:55
da masalapianta
non hai supporto mysql nel php che usi; carica l'apposita libreria o ricompila php

Inviato: lun 10 ott 2005, 1:54
da HackMeSoftly
masalapianta ha scritto:non hai supporto mysql nel php che usi; carica l'apposita libreria o ricompila php
Ho scaricato e ricompilato php con l'opzione --with-mysql, ho restartato tutti i servizi, ma ancora phpinfo() non mi mostra il mysql! :cry:
Forse, non avendo messo il prefix, me l'ha installato in qualche altra directory e continua a usare quello vecchio?

Per sicurezza, ho provato a reinstallare con --prefix=/usr. Ho poi controllato le date di creazione delle directory di php e mi risulta:

/usr/bin/php 10/10/2005
/usr/include/php 10/102005
/usr/lib/php 5/9/2005
/usr/local/bin/php 10/10/2005
/usr/local/include/php 10/10/2005
/usr/local/lib/10/10/2005

Posto che io abbia sbagliato a mettere il prefix tutte e due le volte, perchè /usr/lib/php (che se non mi sbaglio dovrebbe contenere anche le librerie per mysql) è ancora a data 5/9, che è il giorno in cui ho installato la slack?

Scusatemi, sono un po' inesperta :) spiegatemelo come se avessi due anni...

Inviato: lun 10 ott 2005, 13:11
da twister
nel php.ini questo è decommentato?
; Load the MySQL module by default. Comment this out if you don't use MySQL.
extension=mysql.so

comunque io sto con il php.ini di default e va senza problemi...


/usr/lib/php resta fermo al 5 è normale

Inviato: lun 10 ott 2005, 13:53
da HackMeSoftly
Si, è decommentato :(
Non capisco cosa ci sia che non va:

Codice: Seleziona tutto

; Load the MySQL module by default.  Comment this out if you don't use MySQL.
extension=mysql.so

Inviato: lun 10 ott 2005, 14:30
da -Shark-
Controllato che in extension sotto php (/usr/lib/php/extension/) ci sia mysql.so?
Se non stà, cerca di vedere in usr/local/ dove hai fatto l'installazione da sorgenti aggiungendo --with-mysql e vedi se li dentro stà il file .so
Se c'è prova a modificare il php.ini per fargli cercare le estensioni li (il file di default è ben commentato, comunque c'è extension a qualche parte)!

Inviato: lun 10 ott 2005, 15:07
da HackMeSoftly
-Shark- ha scritto:Controllato che in extension sotto php (/usr/lib/php/extension/) ci sia mysql.so?
C'è:
root@Asim0v:/usr/lib/php/extensions# dir
gettext.so mysql.so
-Shark- ha scritto: Se c'è prova a modificare il php.ini per fargli cercare le estensioni li (il file di default è ben commentato, comunque c'è extension a qualche parte)!
In php.ini la directory delle estensioni è:

Codice: Seleziona tutto

; Directory in which the loadable extensions (modules) reside.
; extension_dir = "./"
extension_dir = "/usr/lib/php/extensions/"
Che effettivamente è quella dove si trova mysql.so!
Comunque ho cercato tutti i mysql.so del mio sistema:

Codice: Seleziona tutto

root@Asim0v:/usr/lib/php/extensions# slocate mysql.so
/opt/kde/lib/kde3/keximigrate_mysql.so
/var/run/mysql/mysql.sock
/usr/lib/php/extensions/mysql.so
/usr/lib/perl5/site_perl/5.8.7/i486-linux/auto/DBD/mysql/mysql.so
/usr/lib/qt-3.3.4/plugins/sqldrivers/libqsqlmysql.so
/usr/local/lib/php/extensions/no-debug-non-zts-20020429/mysql.so
Ho provato a cambiare la directory delle estensioni di php.ini, al posto di /usr/lib/php/extensions, ho provato anche l'ultima, ma niente da fare... php continua a non riconoscere le funzioni mysql...

Inviato: lun 10 ott 2005, 16:06
da HackMeSoftly
Ho risolto, e scrivo qui come ho fatto.
Ho controllato il log degli errori di apache che si trova in /var/log/apache/error_log. Ho restartato apache tenendo in visione il log con:

Codice: Seleziona tutto

tail -f /var/log/apache/error_log
e mi dava un errore di parsing nel file php.ini, che quindi veniva letto solo fino alla riga 65 (e quindi non arrivava ai settaggi di mysql):

Codice: Seleziona tutto

[Mon Oct 10 15:10:47 2005] [notice] SIGHUP received.  Attempting to restart
PHP:  Error parsing /etc/apache/php.ini on line 65
Sono andata a controllare, e alla riga 65 ho trovato:

Codice: Seleziona tutto

 - error_reporting = E_ALL        [Code Cleanliness, Security(?)]
Mi sono resa conto che era quel (?) a dare fastidio. L'ho tolto, ho restartato apache ed ora è tutto ok.
Avevo decommentato quella riga qualche giorno fa per vedere gli errori, e avevo erroneamente pensato che quei caratteri (che ATTENZIONE, c'erano già nel php.ini originale!!!) facessero parte del file di configurazione, invece no!

Ora, sarei curiosa di sapere se tutti, nel php.ini della Slack 10.2, avete il (?) in più, perchè io di certo non ce l'ho messo.

Saluti a tutti e grazie per i consigli!

AGGIUNTA SUCCESSIVA: Mi sono resa conto che avevo decommentato la riga sbagliata. Il (?) è presente in un campo note che deve restare commentato, insomma, è colpa mia e non della Slack :)
Scusate per la perdita di tempo e grazie ancora.

Inviato: lun 10 ott 2005, 16:25
da -Shark-
Rimane ai posteri, l'importante è esserne usciti! :-)

Inviato: lun 10 ott 2005, 17:29
da HackMeSoftly
-Shark- ha scritto:Rimane ai posteri, l'importante è esserne usciti! :-)
Si, ma anche la mia figura di me**a rimane ai posteri :lol: :lol: :lol:

Inviato: lun 10 ott 2005, 20:36
da Paoletta
HackMeSoftly ha scritto:
-Shark- ha scritto:Rimane ai posteri, l'importante è esserne usciti! :-)
Si, ma anche la mia figura di me**a rimane ai posteri :lol: :lol: :lol:
vabbè capita!
P.S. bellissimo il tuo nick!