Problema connessione PHP 5.3 e MySQL con IIS su Windows

Per diversi giorni ho provato a far funzionare tutti assieme IIS 7, PHP 5.3.3 e MySQL 5.1,  ma riscontravo un problema di connessione tra PHP e MySQL.

Funzionava quasi tutto anche i vari test PHP andavano a buon fine ma quando installavo i vari phpmyadmin, drupal o wordpress riscontravo questo blocco al momento della connessione al database ricevendo diversi errori anche error 500.

Mi stavo quasi rassegnando ad usare windows come webserver, quando all’improvviso girovagando sul web ho scoperto che ci sono due soluzione per risolvere questo problema:

  • Sostituire il nome del server database ‘localhost’ con l’indirizzo IP della macchina o ’127.0.0.1′
  • Disabilitare IPv6. Questo può essere fatto anche commentando la voce ‘:: 1 localhost’ su ‘%systemroot%\System32\drivers\etc\hosts’

La scelta delle due dipende sicuramente se avete o meno la necessità del protocollo IPv6.

Hosting di più siti web con Apache2 su Debian

Una delle operazioni più comuni su Apache2 e quella di ospitare più siti web in un singolo server. Devo dire che tra le tante distribuzioni utilizzate mi risulta molto più semplice con gli strumenti aggiuntivi che il pacchetto Debian fornisce.

Ci sono diversi modi di configurare Apache per ospitare più siti, che vanno dal più semplice al più complesso. Qui stiamo solo andando a usare le basi con l’uso delle direttive NameVirtualHost. In questo post vediamo come condividere lo stesso IP per più siti/domini.

Ad esempio, se disponiamo di un server Apache sull’indirizzo IP 192.168.1.1 e vogliamo ospitare tre siti cloudzone.com, cloudzone.net e cloudzone.org dobbiamo fare in modo che questi nomi risolvano l’indirizzo IP del server.

Dal momento che ospitiamo più siti web sullo stesso host dobbiamo creare le opportune directory document root, cgi-bin, logs per ogni sito/dominio.
Creiamo le directory con i comandi:

Per cloudzone.com


mkdir /home/www
mkdir /home/www/www.cloudzone.com
mkdir /home/www/www.cloudzone.com/htdocs
mkdir /home/www/www.cloudzone.com/cgi-bin
mkdir /home/www/www.cloudzone.com/logs

Per cloudzone.net


mkdir /home/www/www.cloudzone.net
mkdir /home/www/www.cloudzone.net/htdocs
mkdir /home/www/www.cloudzone.net/logs
mkdir /home/www/www.cloudzone.net/cgi-bin

Per cloudzone.org


mkdir /home/www/www.cloudzone.org
mkdir /home/www/www.cloudzone.org/htdocs
mkdir /home/www/www.cloudzone.org/logs
mkdir /home/www/www.cloudzone.org/cgi-bin

Adesso creiamo il file di configurazione host per ogni sito/dominio

nano /etc/apache2/sites-available/www.cloudzone.com

e inseriamo il contenuto:


#  cloudzone.com (/etc/apache2/sites-available/www.cloudzone.com)

<VirtualHost *>
ServerAdmin webmaster@cloudzone.com
ServerName  www.cloudzone.com
ServerAlias cloudzone.com

# Indexes + Directory Root.
DirectoryIndex index.html
DocumentRoot /home/www/www.cloudzone.com/htdocs/

# CGI Directory
ScriptAlias /cgi-bin/ /home/www/www.cloudzone.com/cgi-bin/
<Location /cgi-bin>
Options +ExecCGI
</Location>

# Logfiles
ErrorLog  /home/www/www.cloudzone.com/logs/error.log
CustomLog /home/www/www.cloudzone.com/logs/access.log combined
</VirtualHost>

Questa operazione va fatta altre due volte sostituende la voce cloudzone.com la prima con cloudzone.net e la seconda con cloudzone.org.
Fatto questo dobbiamo abilitare i siti eseguendo i comani:


a2ensite www.cloudzone.com
a2ensite www.cloudzone.net
a2ensite www.cloudzone.org

Abbiamo finito basta solo riavviare il servizio Apache e il tutto è pronto:

/etc/init.d/apache2 reload

Installazione e configurazione IIS su Server Core per 2008 R2

Con l’aggiunta di. NET Framework su Windows Server 2008 R2 in modalità Core l’opzione di installazione senza interfaccia grafica è diventata ancora più attraente per chi vuole utilizzare un server per le proprie applicazioni, la disponibilità del. NET Framework fornisce:

  • Supporto ASP.NET
  • IIS Remote Management
  • PowerShell

Installazione di .NET Framwaork e IIS completa
Digitiamo il seguente comando:
CMD /C START /w PKGMGR.EXE /l:log.etw /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HttpRedirect;IIS-ApplicationDevelopment;IIS-ASP;IIS-CGI;IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-ServerSideIncludes;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-HttpTracing;IIS-CustomLogging;IIS-ODBCLogging;IIS-Security;IIS-BasicAuthentication;IIS-WindowsAuthentication;IIS-DigestAuthentication;IIS-ClientCertificateMappingAuthentication;IIS-IISCertificateMappingAuthentication;IIS-URLAuthorization;IIS-RequestFiltering;IIS-IPSecurity;IIS-Performance;IIS-HttpCompressionStatic;IIS-HttpCompressionDynamic;IIS-WebServerManagementTools;IIS-ManagementScriptingTools;IIS-IIS6ManagementCompatibility;IIS-Metabase;IIS-WMICompatibility;IIS-LegacyScripts;WAS-WindowsActivationService;WAS-ProcessModel;IIS-FTPServer;IIS-FTPSvc;IIS-FTPExtensibility;IIS-WebDAV;IIS-ASPNET;IIS-NetFxExtensibility;WAS-NetFxEnvironment;WAS-ConfigurationAPI;IIS-ManagementService;MicrosoftWindowsPowerShell;NetFx2-ServerCore;NetFx2-ServerCore-WOW64

Installazione PowerShell e IIS snap-in
Per prima cosa installiamo PowerShell con il comando:
start /w ocsetup MicrosoftWindowsPowerShell
Dopodiché, lanciamo PowerShell eseguendo il comando:
\windows\system32\WindowsPowerShell\v1.0\powershell.exe

Dal prompt di PowerShell digitiamo il comando per importare lo snap-in di IIS:
import-module WebAdministration

Abilitazione della gestione remota di IIS (IIS Remote Management)
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WebManagement\Server ^
/v EnableRemoteManagement /t REG_DWORD /d 1

Infine avviamo il servizio di gestione:
net start wmsvc