Avete impostato ODBC su un sistema Widnows a 64 bit. Ma la connessioen non avviene... Bsogna ricordare che una versione a 64 bit di un sistema operativo Microsoft Windows include 2 versioni dello strumento di amministrazine di origine dati Microsoft Open Database Connectivity (ODBC) (Odbcad32.exe):
- versione a 32 bit del file Odbcad32.exe si trova nella cartella %systemdrive%\Windows\SysWoW64.
- versione a 64 bit del file Odbcad32.exe si trova nella cartella %systemdrive%\Windows\System32.
PHP.ini memoria insufficiente
Può capitare che, una volta avviata un'applicazione PHP in IIS, si presenti un errore di questo tipo:
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 14848 bytes) in C:\Inetpub\xxxxx on line xxxx.
E' necessario controllare i parametri del php.ini, nello specifico: memory_limit. Portando il valore a 256 o 512 MB e riavviando IIS il problema dovrebbe rientrare. Nel caso non fosse cos, è meglio controllare la varia opzioni presenti in phpinfo().
La nuova versione di PHP è stata rilasciata. La versione 5.3.x è quindi disponibile per il download qui. Tuttavia, a fronte di alcuni vantaggi, ci sono alcune incompatibilità. Valutare bene prima di procedere all'upgrade.
Un sito web deve avere o meno il prefisso www davanti? in realtà è una scelta, ma il fatto i utilizzarlo semplifica la configurazione dei DNS. Per ridirezionare i visitatori da un dominio senza www a uno con il prefisso, basta utilizzare ISAPI rewirte. Per esempio, immaginiamo di dover ridirezionare http://onen.it su http://www.onen.it senza generare errori.
Il più famoso e utile tool per IIS è ISAPI Rewrite 3 di Helicontech, scaricabile qui. Una volta scaricato e installato basta scrivere:
RewriteEngine on
RewriteCond %{HTTPS} (on)?
RewriteCond %{HTTP:Host} ^(?!www\.)(.+)$ [NC]
RewriteCond %{REQUEST_URI} (.+)
RewriteRule .? http(?%1s)://www.%2%3 [R=301,L]
Perchè il copdice scritto venga eseguito, è necessario aver impostato il corretto DNS, con un record A, sia per il domini con il prefisso www, sia per il doinio senza prefisso. Se su IIS sono presenti più siti in hosting, è necessario aver inserito l'appropriato host header name.
Per realizzare una connessione sicura del proprio sito web, è necessario disporre di un certificato. Si può acquistarlo da società come Verisign ma si può anche crearlo in autonomia per essere utilizzato con IIS 6-7. Un certificato provvede quindi alla crittografia della trasmissione e provvede così alla sicurezza. Tecnicamente un certificato autoprodotto o uno acquisato da un ente terzo sono uguali, ma nelle transazioni web l'ente terzo si fa carico e garantisce la sicurezza del messaggio crittografato.
Creazione
Con IIS 6 si può generare la richiesta di certificato e utilizzare un'authority per la sua gestione. Questo può essere realizzato con il servizio Autorità di certificazione. Con IIS 7, invece, non si può usare lo stesso servizio senza aver installato le Active Directory. Utilizzeremo SelfSSL e SSLDiag da linea di comando (è necessario disporre della compatibilità metabse su IIS7 perchè il tool funzioni).
SelfSSL è incluso in Internet Information Services (IIS) 6.0 Resource Kit Tools, scaricabile qui. Da linea di comando scrivere:
SelfSSL.exe /N:CN=www.onen.it /V:365 /S:2
Il comando crea un certificato per il dominio chiamato www.onen.it (/N - nome), per un periodo di validità di 365 giorni (/V - validità) e sarà inserito in IIS con id = 557425147 (/S switch). Assicurarsi che il nome scelto corrisponda esattamente al sito (FQDN) utilizato. Il parametro /V identifica la validità che di default è 7 giorni; il parametro /S identifica l'identificativo del sito utilizzato, rintracciabile in IIS Manager. C'è un limite documentato di SelfSSL, ossia che permette solo ad un sito di avere un certificato nello stesso tempo. L'alternativa è SSLDiag.
SSLDiag è incluso nel pacchetto di diagnostica di Microsoft scaricaile qui. SSLDiag non ha il baco sopra descritto. La sintassi è:
SSLDiag.exe /s:557425147 /selfssl /n:CN=www.onen.it /v:365
Simile a SelfSSL con l'eccezzione del parametro /selfssl che istruisce SSLDiag a firmare il certificato prodotto.
L'unico svantaggio di SSLDiag rispetto a SelfSSL è con IIS 7 non crea il binding https come SelfSSL.
In caso di perdita di password di amministrazione di un sito, può capitare, con i privilegi da amministratore o del sito, è posisbile sostituirla direttmente nel DB. La password normalmente è codificata in hash MD5 e non può essere recuperata in quando tale codifica MD5 non prevede il recupero all'indietro, ossia può solo codificare non decodificare. L'algoritmo associa infatti ad una strigna qualsiasi un'altra stringa codificata sempre uguale a parità di dati.
Se parlaimo di joomla, gli utenti sono imamgazzinati dentro la tabella xxx_user, nel campo password.Editiamo il campo con phpMyAdmin o Query Browser e modifichiamo dirattamente la password, salviamo e il gioco è fatto. E' necessari tuttavia creare una password codificata MD5. Si può direttamente da MySQL:
SELECT MD5 ("inserire qui la password");
oppure andate qui.
I sistemi a 64 bit stanno pian piano soppiantando la precendeti tecnologia a 32. Utilizzando sistemi a 64 bit, di default, vengono disabilitate le funzionalità a 32 bit. Tentando di utilizzare il linguaggio PHP su Windows Server 64bit, per esempio, è possibile imattersi nell'errore: %1 is not a valid Win32 application
Questo errore è acausato dal fatto che il metabae Enable32bitAppOnWin64 di IIS previene l'utilizzo di tecnolgie a 32 bit. La soluzione è fortunatamente semplice. Da linea di comando, entrare nela cartella C:\Inetpub\adminscripts ed eseguire il comando:
cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
Da uesto punto in poi, PHP sarà abilitato a funzionare con IIS a 64 bit.