Moodle 3.1.14+ e PHP 7.0.32

Moodle 3.1.14+ e PHP 7.0.32

di Angelo Nardi -
Numero di risposte: 1

Salve,

sto pianinicando la migrazione dall'attuale verisone di Moodle 2.9.2+ alla versione 3.5.

L'attuale versione del PHP è 5.6.38, il mio SQL Server è il 12 e i drive SQLSRV sono  i 3.2

Ho per tanto in ambiente di test fatto una prima migrazione da 2.9 a 3.1.14 e fin qui tutto bene il sito funziona perfettamente.

Sto ora cercando di effettuare l'ugrade di PHP alla versione 7.0.32 utilizzando i drive SQL 4.0 ma ricevo sempre il seguente errore php "Unable to load dynamic library 'C:\PHP\PHP7.0\ext\php_sqlsrv_7_nts_x86.dll' - Impossibile trovare il modulo specificato."

Il file è presente nella directory specificata e cambiado i riferimenti della extension_dir, nell'errore viene cambiato coerentemente il path.

Ho provato anche con i driver SQL  5.3 ma con i medesimi risultati. 

Nel PHP ini le sezioni relative a SQL Server, identiche alla versione 5.6.38 funzionante, sono:

...

[PHP_SQLSRV_7_NTS_X86]

extension=php_sqlsrv_7_nts_x86.dll

.....

[MSSQL]

; Allow or prevent persistent links.

mssql.allow_persistent = On


; Maximum number of persistent links.  -1 means no limit.

mssql.max_persistent = -1


; Maximum number of links (persistent+non persistent).  -1 means no limit.

mssql.max_links = -1


; Minimum error severity to display.

mssql.min_error_severity = 10


; Minimum message severity to display.

mssql.min_message_severity = 10


; Compatibility mode with old versions of PHP 3.0.

mssql.compatibility_mode = Off


; Connect timeout

;mssql.connect_timeout = 5


; Query timeout

;mssql.timeout = 60


; Valid range 0 - 2147483647.  Default = 4096.

;mssql.textlimit = 4096


; Valid range 0 - 2147483647.  Default = 4096.

;mssql.textsize = 4096


; Limits the number of records in each batch.  0 = all records in one batch.

;mssql.batchsize = 0


; Specify how datetime and datetim4 columns are returned

; On => Returns data converted to SQL server settings

; Off => Returns values as YYYY-MM-DD hh:mm:ss

;mssql.datetimeconvert = On


; Use NT authentication when connecting to the server

mssql.secure_connection = Off


; Specify max number of processes. -1 = library default

; msdlib defaults to 25

; FreeTDS defaults to 4096

;mssql.max_procs = -1

Forse mi sfugge qualcosa, ma non riesco prorpio a capire.

Se qualcuno può darmi un aiuto, gliene sarei grato.


Angelo Nardi


Media dei voti:  -
In riposta a Angelo Nardi

Re: Moodle 3.1.14+ e PHP 7.0.32

di Matteo Scaramuccia -

Ciao Angelo,
non so se hai già risolto ma quando ci si sente persi l'uso di Dependency Walker può rivelarsi molto utile nel capire che cosa la DLL non trovi come sue dipendenze: http://www.dependencywalker.com/ .

Detto questo, utilizzando la 5.3:

  1. extension_dir è compilata correttamente?
  2. PDO è abilitato (php_sqlsrv_*_nts_x64.dll e php_pdo_sqlsrv_*_nts_x64.dll)?
  3. hai installato la versione corretta di Microsoft ODBC Driver (17+)?

HTH,
Matteo