[RISOLTO] SQL PHP IIS

moustache

Nuovo Utente
10 Mar 2020
14
0
1
Buon giorno a tutti,
Il titolo spiega gran parte del mio problema, devo creare un piccolo form per inviare e salvare i dati su un server SQL, la difficoltà stà nel fatto che ho a disposizione solo un server windows con iis.
Ho installato il php (ormai provate tutte dalla 7.0 alla 7.4) ho installato i driver windows per sql, ma non c'è stato verso di far caricare il modulo sql su php.
ho letto un infinità di forum dove dicono che questo si verifica con la versione sbagliata dei driver ma ho provato ormai tutte le configurazioni possibili.
il server è un win 2016 64bit, uso i fast CGI quindi scelgo php nts, per usare wincache il modulo ufficiale supporta solo fino alla versione 7.3 di php quindi ho installato quella in 64bit, e in fine dal sito di microsoft ho installato i driver corretti per php 7.3 64bit nts.
ma su phpinfo non ho mai visto caricare i driver correttamente. Qualche buona anima mi da la dritta per fare questo? altrimenti dovrei sviluppare un progetto in asp.net ma .. uff..
 

marino51

Utente Attivo
28 Feb 2013
2.865
153
63
Lombardia
ma su phpinfo non ho mai visto caricare i driver correttamente
controlla se le estensioni sql sono attivate in php.ini
anche se uso la versione 5.6, ti allego la parte finale di php.ini in modo da confrontarla con la tua
Codice:
[WebPIChanges]
error_log = C:\PHP_WorkDir\PHP56_errors.log
upload_tmp_dir = C:\PHP_WorkDir
session.save_path = C:\PHP_WorkDir
cgi.force_redirect = 0
cgi.fix_pathinfo = 1
fastcgi.impersonate = 1
fastcgi.logging = 0
max_execution_time = 300
date.timezone = Europe/Rome
extension_dir = "C:\Program Files\PHP\v5.6\ext\"
;include_path="C:\Program Files\PHP\v5.6\includes\"
include_path="C:\Program Files\PHP\includes\"

[PHP_WINCACHE]
extension=php_wincache.dll

[ExtensionList]
extension=php_mbstring.dll
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_curl.dll
extension=php_exif.dll
extension=php_xmlrpc.dll
extension=php_openssl.dll
extension=php_soap.dll
extension=php_imap.dll
extension=php_tidy.dll

extension=php_fileinfo.dll
extension=php_intl.dll

extension=php_xsl.dll

[PHP_PDO_ODBC]
extension=php_pdo_odbc.dll

[PHP_PDO_SQLSRV_56_TS]
extension=php_pdo_sqlsrv_56_nts.dll

[PHP_SQLSRV_56_TS]
extension=php_sqlsrv_56_nts.dll

[COM_DOT_NET]
extension=php_com_dotnet.dll

;[PHP_MYSQL]
;extension=php_mysql.dll
;extension=php_mysqli.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_sqlite.dll

aggiungo, le dll devono stare nella cartella assieme alle altre estensioni
 
Ultima modifica:

moustache

Nuovo Utente
10 Mar 2020
14
0
1
nel mio file php.ini ho aggiunto queste righe:

Codice:
extension = php_wincache.dll
extension = php_pdo_sqlsrv_71_nts_x64.dll
extension = php_sqlsrv_71_nts_x64.dll
ovviamente la mia release è la 7.1.9 quindi ho usato i driver coerenti a differenza del 56 che sono nel tuo file, corretto?
 

moustache

Nuovo Utente
10 Mar 2020
14
0
1
aggiungerei anche
Codice:
extension=php_pdo_odbc.dll
vedi poi i 2 link, soprattutto nel secondo dove parla del driver odbc da installare in ambiente windows
https://docs.microsoft.com/it-it/sq...ver?redirectedfrom=MSDN&view=sql-server-ver15
https://docs.microsoft.com/it-it/sq...-for-the-php-sql-driver?view=sql-server-ver15
Ho aggiunto l'estensione per ODBC che mi hai indicato, io però nella cartella dove ho installato php ovvero "c:/programmi/php7.1.9/" non ho quella DLL, è precaricata da qualche parte? non compare caricata nel phpinfo..
i due link che mi hai dato sono proprio quelli che ho seguito facendo attenzione alla combinazione versione/compatibilità etc..
Domanda tu hai la ver. a 32 bit su ambiente 64?
 

marino51

Utente Attivo
28 Feb 2013
2.865
153
63
Lombardia
ho la versione a 32 bit, perché la prima installazione é avvenuta molti anni fa, quando 64 bit stava iniziando (2007) e pur essendo una macchina a 64 bit, avevo optato per la versione a 32, avendo difficoltà, allora, a reperire le versioni a 64 bit
poi upgrade dopo upgrade tutto é aggiornato, ma non ho mai voluto reinstallare il S.O. perché avrei dovuto reinstallare anche tutte le applicazioni e sono dell'idea che quando un sistema funziona bene é meglio non disturbarlo ….

il driver che manca, php_pdo_odbc.dll, é l'interfaccia per "Data Sources (ODBC)", se non usi quel tipo di accesso, non ti serve
 

moustache

Nuovo Utente
10 Mar 2020
14
0
1
ho la versione a 32 bit, perché la prima installazione é avvenuta molti anni fa, quando 64 bit stava iniziando (2007) e pur essendo una macchina a 64 bit, avevo optato per la versione a 32, avendo difficoltà, allora, a reperire le versioni a 64 bit
poi upgrade dopo upgrade tutto é aggiornato, ma non ho mai voluto reinstallare il S.O. perché avrei dovuto reinstallare anche tutte le applicazioni e sono dell'idea che quando un sistema funziona bene é meglio non disturbarlo ….

il driver che manca, php_pdo_odbc.dll, é l'interfaccia per "Data Sources (ODBC)", se non usi quel tipo di accesso, non ti serve
Si non avevo intenzione di usare un ODBC visto che c'è il modo di accedere direttamente all' SQL ma se serve lo aggiungo. tralaltro l'istanza di SQL risiede nello stesso server dove devo pubblicare la pagina web.
ma mi mancano sempre qesti benedetti driver...
 

marino51

Utente Attivo
28 Feb 2013
2.865
153
63
Lombardia
devono esserci,
verifica i nomi e verifica che siano nella cartella indicata in
extension_dir = "C:\Program Files\PHP\v5.6\ext\"

verifica che in php.ini ci sia una sola definizione attiva (non commentata) di
extension_dir
 

moustache

Nuovo Utente
10 Mar 2020
14
0
1
devono esserci,
verifica i nomi e verifica che siano nella cartella indicata in
extension_dir = "C:\Program Files\PHP\v5.6\ext\"

verifica che in php.ini ci sia una sola definizione attiva (non commentata) di
extension_dir
Risolto, era esattamente questo 'extension_dir = "C:\Program Files\PHP\v5.6\ext\"' banalmente avevo messo il precorso relativo e non assoluto! grazie Mille marino51