Aiuto Windows IIS Webserver
Installazione di IIS
- Installa le funzionalità di Windows
Pannello di controllo -> Tutti gli elementi del pannello di controllo -> Programmi e funzionalità -> Abilita o disabilita le funzionalità di Windows
Seleziona Internet Information Services
Aggiungi funzionalità CGI - Test di IIS
Richiama localhost nel browser. -
IIS Log Files
C:\inetpub\logs\LogFiles\W3SVC[ID DELLA PAGINA]\u_extend1.log
Web Platform Installer - Altri strumenti utili
Le app più diffuse possono essere facilmente installate con Web Platform Installer. Se ci sono errori, tuttavia, questi sono generalmente molto difficili da risolvere perché i messaggi non dicono molto. Personalmente, non utilizzo lo strumento per installare applicazioni, tranne che per dare una rapida occhiata alle novità. Il Web Platform Installer può essere trovato sotto Azioni in Gestione IIS 'Ottieni nuovi componenti della piattaforma web', questo collegamento ti porta al download corretto oppure puoi cercare direttamente utilizzando un motore di ricerca. Dopo l'installazione, il programma di installazione della piattaforma Web viene visualizzato in Gestione IIS.
Impostazioni IIS
- Editor di configurazione
Sezione -> system.web/sessionState -> aumenta il timeout
Risolvi i problemi di IIS
- Riavvia IIS
Apri il prompt dei comandi di Windows (cmd.exe = CMD) come amministratore.iisreset
(È uguale a 'Riavvia' in Gestione IIS in Azioni.) - Avvia IIS
Apri CMD come amministratore.iisreset /start
(È uguale a 'Start' in Gestione IIS in Azioni.) - Ferma IIS
Apri CMD come amministratore.iisreset /stop
(È uguale a 'Stop' in Gestione IIS in Azioni.) - Nessun diritto di accesso
Concedi all'utente 'IIS_IUSRS
' o all'utente corrente l'accesso completo alla cartella 'inetpub
'. - Reimposta l'assegnazione del gestore in modo che vengano visualizzate le versioni PHP di livello superiore
Apri siti nodo -> seleziona pagina -> apri assegnazione gestore -> in Azioni, fai clic su 'Reimposta su genitore' a destra. - Rimuovi le versioni PHP
Rimuovi le versioni PHP nel gestore IIS (assegnazione del gestore e impostazioni FastCGI).
Elimina le versioni PHP rimosse nel file 'C:\Windows\System32\inetsrv\config\applicationHost.config
', se disponibile.
Elimina le versioni PHP rimosse nello stesso file nella cartella 'inetpub
', se disponibile.
Consenti a IIS di interpretare i file .htaccess di Apache
- Installa le funzionalità di Windows
Pannello di controllo -> Tutti gli elementi del pannello di controllo -> Programmi e funzionalità -> Abilita o disabilita le funzionalità di Windows
Aggiungi la funzionalità delle estensioni ISAPI (per Helicon ISAPI_Rewrite 3 Fullversion, Version 3.1.0078; soddisfa le attività di 'Apache Web Server Rewrites')
Aggiungi la funzione di filtro ISAPI (questo è un lettore .htaccess; poiché .htaccess è un file Linux) - Installa Helicon ISAPI_Rewrite
Seleziona la versione richiesta su https://www.helicontech.com/isapi_rewrite/. Quindi scarica e installa.
Alla fine, aggiungi le informazioni di registrazione al file 'httpd.conf
', se disponibile.
PHP per IIS
Quando si utilizza PHP come FastCGI con IIS, prendere le versioni Non-Thread Safe (NTS) di PHP. Poiché il modulo FastCGI si occupa della gestione delle richieste in arrivo in parallelo.
- Installa PHP Manager per IIS
Cerca 'PHP Manager for IIS [IIS VERSION]' in un motore di ricerca. - Imposta le versioni PHP
Scarica la versione PHP richiesta da https://windows.php.net/download/.
Estrai in una cartella che hai creato tu stesso, ad es. 'C:\PHP
'.
Apri Gestione IIS -> seleziona il primo nodo -> PHP Manager -> Registra nuova versione PHP -> seleziona file -> OK - Installa 'Microsoft Visual C ++ Redistributable' richiesto per PHP
Microsoft Visual C++ 2012 Redistributable (x86 o x64) per VC11.
Microsoft Visual C++ 2015-2019 Redistributable (x86 o x64) per VC14, VC15 o VS16. - Test
Nella cartella 'C:\inetpub\wwwroot
' creare il file 'info.php
' e inserire la seguente riga.‹?php phpinfo(); ?›
Richiama localhost/info.php nel browser. - Configurazione PHP
Apri il file 'php.ini
'.
Attiva le estensioni necessarieextension=php_mysql.dll
(Estensione per database MySQL; questa estensione è obsoleta ed è stata rimossa a partire da PHP 7)extension=php_mysqli.dll
(Estensione per database MySQL)extension=php_mbstring.dll
(Estensione per funzioni stringa multibyte; per esempio mb_strlen)extension=php_mcrypt.dll
(Estensione per decrittografia e crittografia; per esempio mcrypt_encrypt)extension=php_curl.dll
(Estensione per sessioni cURL; per esempio curl_close)
Impostazioni necessariedate.timezone = "Europe/Berlin"
Se la porta MySQL è diversa, utilizzare la parola chiave Multiple MySQL Server[MySQL]
(obsoleto, rimosso da PHP 7)mysql.default_port = 3307
o[MySQLi]
mysqli.default_port = 3307
Riavvia IIS dopo le modifiche e controlla 'info.php
'. - Versioni PHP supportate
https://www.php.net/supported-versions.php - Requisiti di installazione PHP ufficiali
https://www.php.net/manual/de/install.windows.requirements.php - File di errore
C:\Windows\Temp\php-[PHP VERSION]_errors.log
ImageMagick per PHP su IIS
- Controlla le informazioni importanti
Crea il file 'info.php
' e inserisci la riga '‹?php phpinfo(); ?›
'. Richiama il file nel browser e verifica quanto segue.
PHP Version = 7.4.12
Compiler = MSVC15 (Visual C++ 2017)
Architecture = x86
Thread Safety = disabled - Scarica il file '
php_imagick.dll
' per PHP https://pecl.php.net/package/imagick
Estrai il file 'php_imagick.dll
' nella cartella 'C:\PHP\php-[PHP VERSION]-nts-Win32-[COMPILER]-[ARCHITECTURE]\ext
'. - Aggiungi l'estensione PHP
Apri il file 'php.ini
' e inserisci le seguenti righe alla fine.[PHP_IMAGICK]
extension=php_imagick.dll
- Scarica il pacchetto '
ImageMagick-[IMAGEMAGICK VERSION]-[COMPILER]-[ARCHITECTURE]
' da https://windows.php.net/downloads/pecl/deps/
Aggiungi variabile d'ambiente
Estrai la cartella dal pacchetto scaricato in una cartella che hai creato tu stesso, ad es. 'C:\PHPext
'.
Variabili d'ambiente -> Variabili di sistema -> Modifica Path -> Aggiungi percorso 'C:\PHPext\ImageMagick-[IMAGEMAGICK VERSION]-[COMPILER]-[ARCHITECTURE]\bin;
'
ATTENZIONE: Solo una variabile d'ambiente è possibile per ImageMagick, se ci sono più voci per versioni differenti ci saranno problemi nel caricamento dei singoli moduli (es. png non è supportato).
Alternativa alla variabile d'ambiente
Non preferisco questo metodo e non l'ho ancora testato perché mi piaceva separare i pacchetti. Cambio la variabile d'ambiente a seconda della versione di ImageMagick di cui ho bisogno.
Estrarre i file DLL dalla cartella 'bin
' che inizia con CORE_RL o IM_MOD_RL nella cartella 'C:\PHP\php-[PHP VERSION]-nts-Win32-[COMPILER]-[ARCHITECTURE]
'. - Controlla i formati supportati
Richiama 'info.php
' e seleziona 'ImageMagick number of supported formats
'. - Test
Crea il file 'imagick-test.php
' e aggiungi le seguenti righe. Quindi richiamare il file nel browser.‹?php
$image = new Imagick();
$image->newImage(1, 1, new ImagickPixel('#ffffff'));
$image->setImageFormat('png');
$pngData = $image->getImagesBlob();
echo strpos($pngData, '\x89PNG\r\n\x1a\n') === 0 ? 'Ok' : 'Failed';
MySQL
MySQL Installer
Con MySQL Installer 'mysql-installer-web-community-[MYSQL VERSION].msi
' puoi installare, aggiornare e modificare MySQL.
Più versioni di MySQL
Avvia diverse istanze MySQL come servizi Windows.
- Installa MySQL
Seleziona la versione richiesta da https://dev.mysql.com/downloads/mysql/ e scaricala.
Decomprimere il file 'mysql-[MYSQL FULL VERSION]-win[ARCHITECTURE].zip
' e creare una cartella aggiuntiva 'mysql-[MYSQL FULL VERSION]-data
'. - Installa il 'Microsoft Visual C ++ Redistributable Package' richiesto per MySQL
Installa i pacchetti Microsoft richiesti, se non disponibili.
Installa Microsoft Visual C++ 2008 Redistributable (x86 o x64) per MySQL 5.5.
Installa Microsoft Visual C++ 2010 Redistributable (x86 o x64) per MySQL 5.6.
Installa Microsoft Visual C++ 2013 Redistributable (x86 o x64) per MySQL 5.7.
Installa Microsoft Visual C++ 2015-2019 Redistributable (x86 o x64) per MySQL 8.0. - Crea file per le impostazioni MySQL
Crea il file 'my-mysqld[MYSQL SHORT VERSION].ini
', ad es.my-mysqld57.ini
e inserisci le seguenti righe.[client]
port = 3307
(La porta predefinita per MySQL è 3306, quindi iniziamo con la porta 3307)[mysql]
default-character-set=UTF8
[mysqld]
basedir = "C:\MySQL\mysql-[MYSQL FULL VERSION]-win[ARCHITECTURE]\"
datadir = "C:\MySQL\mysql-[MYSQL FULL VERSION]-data\"
port = 3307
enable-named-pipe
socket = MySQLpipe[MYSQL SHORT VERSION]
character-set-server=UTF8
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
- Rimuovi le variabili d'ambiente
Nel caso di più istanze MySQL, non aggiungere alcuna variabile di ambiente, se sono presenti variabili di ambiente, rimuoverle come segue.
Variabili d'ambiente -> Variabili di sistema -> Modifica Path -> Rimuovi variabili d'ambiente
ATTENZIONE: I comandi non sono possibili senza una variabile d'ambiente, ad es.mysql -u root -p
. - Inizializza la cartella '
mysql-[MYSQL FULL VERSION]-data
'
MySQL versione 5.6 e precedenti
Inserisci il contenuto della cartella 'data
' del file *.zip.
MySQL versione 5.7 e successive
ATTENZIONE: il file *.zip non ha più una cartella 'data
'.
Reinizializza la cartella 'mysql-[MYSQL FULL VERSION]-data
'."C:\MySQL\mysql-[MYSQL FULL VERSION]-win[ARCHITECTURE]\bin\mysqld" --defaults-file="C:\MySQL\my-mysqld[MYSQL SHORT VERSION].ini" --initialize --console
(--initialize-insecure
= Nessuna password è impostata; Accesso =mysql -u root --skip-password
)
Viene generata una password, non dimenticare di annotarla.
per esempio"C:\MySQL\mysql-8.0.22-winx64\bin\mysqld" --defaults-file="C:\MySQL\my-mysqld80.ini" --initialize --console
- Installa servizio
Esegui CMD come amministratore.
ATTENZIONE: Il codice '--defaults-file
' deve seguire il nome del servizio."C:\MySQL\mysql-[MYSQL FULL VERSION]-win[ARCHITECTURE]\bin\mysqld" --install MySQL[MYSQL SHORT VERSION] --defaults-file="C:\MySQL\my-mysqld[MYSQL SHORT VERSION].ini"
per esempio"C:\MySQL\mysql-8.0.22-winx64\bin\mysqld" --install MySQL80 --defaults-file="C:\MySQL\my-mysqld80.ini"
Possibilità alternativa
Per utilizzare una determinata versione di MySQL, passare alla cartella della versione di MySQL desiderata e quindi eseguire il comando desiderato 'mysql [COMANDO]
'.cd "C:\MySQL\mysql-[MYSQL VERSION]-win[ARCHITECTURE]\bin\"
per esempiocd "C:\MySQL\mysql-8.0.22-winx64\bin\"
- Avvia il servizio
Esegui CMD come amministratore.net start MySQL[MYSQL SHORT VERSION]
Se il servizioMySQL[MYSQL SHORT VERSION]
non si avvia, controllare il file '* .err
' nella cartella 'C:\MySQL\mysql-[MYSQL FULL VERSION]-data
'.
Possibilità alternativa
Avvia il servizio mysqld temporaneo.
ATTENZIONE: Un servizio MySQL installato non deve essere in esecuzione, altrimenti il nuovo servizio mysqld temporaneo non può essere avviato."C:\MySQL\mysql-[MYSQL FULL VERSION]-win[ARCHITECTURE]\bin\mysqld" --port=[PORT] --user=[UTENTE] --datadir="C:\MySQL\mysql-[MYSQL FULL VERSION]-data\" --console
(--console elenca gli errori)
per esempio"C:\MySQL\mysql-5.5.59-win32\bin\mysqld" --port=3307 --user=root --datadir="C:\MySQL\mysql-5.5.59-data\" --console
Chiudi il servizio mysqld temporaneo."C:\MySQL\mysql-[MYSQL FULL VERSION]-win[ARCHITECTURE]\bin\mysqld" --host=127.0.0.1 --port=[PORT] --user=[UTENTE] --password shutdown
- Accesso
Esegui CMD come amministratore."C:\MySQL\mysql-[MYSQL FULL VERSION]-win[ARCHITECTURE]\bin\mysql" --host=localhost --port=[PORT] --user=[UTENTE] --password=[PASSWORD]
(Versione completa)mysql -h localhost -P [PORT] -u [UTENTE] -p
(Versione breve, la password viene richiesta dopo aver eseguito il comando)
per esempio"C:\MySQL\mysql-5.7.21-win32\bin\mysql" -h localhost -P 3309 -u root -p
- Test
Esegui il seguente comando dopo aver effettuato l'accesso.show variables where Variable_name in('hostname','port');
Impostazioni MySQL
- Autorizzazioni
L'utente del server MySQL deve essere in grado di leggere il file 'my-mysqld[MYSQL SHORT VERSION].ini
'. - Tutte le funzioni di mysqld
"C:\MySQL\mysql-[MYSQL FULL VERSION]-win[ARCHITECTURE]\bin\mysqld" --help
- Mostra porte aperte
netstat -an
- Controlla la porta specifica
netstat -an | find '[PORT]'
Cambia la password di root
- Accesso
mysql -h localhost -P [PORT] -u [UTENTE] -p
- MySQL 5.7.5 e versioni precedenti
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('[PASSWORD]');
- MySQL 5.7.6 e versioni successive
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '[PASSWORD]';
Rimuovere MySQL Windows Service
- Interrompi servizio
Esegui CMD come amministratore.net stop MySQL[MYSQL SHORT VERSION]
- Elimina servizio
sc delete MySQL[MYSQL SHORT VERSION]
Upgrade di MySQL su Windows
- Crea backup MySQL
Salva la cartella 'mysql-[MYSQL FULL VERSION]-data
'. - Interrompi il servizio corrente
net stop MySQL[MYSQL SHORT VERSION]
- Elimina il servizio corrente
sc delete MySQL[MYSQL SHORT VERSION]
- Elimina il MySQL corrente ed estrai il nuovo MySQL
ATTENZIONE: Non eliminare la cartella corrente 'mysql-[MYSQL FULL VERSION]-data
'. - Installa un nuovo servizio
ATTENZIONE: Il codice '--defaults-file
' deve seguire il nome del servizio."C:\MySQL\mysql-[MYSQL FULL VERSION]-win[ARCHITECTURE]\bin\mysqld" --install MySQL[MYSQL SHORT VERSION] --defaults-file="C:\MySQL\my-mysqld[MYSQL SHORT VERSION].ini"
per esempio"C:\MySQL\mysql-5.7.21-win32\bin\mysqld" --install MySQL57 --defaults-file="C:\MySQL\my-mysqld57.ini"
- Avvia servizio
net start MySQL[MYSQL SHORT VERSION]
- Eseguire l'upgrade
NON eliminare il file 'ibdata1
'. Tutte le tabelle, le password e così via sono contenute nel file 'ibdata1
'.
Se NECESSARIO eliminare 'ib_logfile()
' e 'ib_logfile1
'.
Elimina i file '*.err
' e '*.pid
' se disponibili."C:\MySQL\mysql-[MYSQL FULL VERSION]-win[ARCHITECTURE]\bin\mysql_upgrade" -h localhost -P [PORT] -u root -p
per esempio"C:\MySQL\mysql-5.7.21-win32\bin\mysql_upgrade" -h localhost -P 3309 -u root -p
- Arresta e riavvia il server
net stop MySQL[MYSQL SHORT VERSION]
net start MySQL[MYSQL SHORT VERSION]
phpMyAdmin
- Installa phpMyAdmin
Scarica il pacchetto da https://www.phpmyadmin.net/downloads/.
Decomprimere tutti i file in 'C:\inetpub\wwwroot\phpmyadmin
'.
Concedi all'utente 'IUSR
' l'accesso completo alla cartella 'C:\inetpub
' per evitare possibili problemi. - Converti phpMyAdmin in IIS in un'applicazione
Fare clic con il tasto destro su 'phpmyadmin' -> Converti in applicazione -> OK - Test
Chiama localhost/phpmyadmin nel browser. - Configura il file '
config.inc.php
'
Crea la cartella 'config
' in 'C:\inetpub\wwwroot\phpmyadmin
'.
Chiama localhost/phpmyadmin/setup nel browser.
Effettuare le impostazioni richieste.
Memorizza il 'config.inc.php
' generato nella cartella 'C:\inetpub\wwwroot\phpmyadmin
'.
Elimina la cartella 'config
'.
Chiama localhost/phpmyadmin nel browser. Finito.
phpMyAdmin impostazioni di esportazione
Seleziono le seguenti opzioni per l'esportazione oltre alle opzioni standard.
- Combina l'esportazione in una transazione
- Disabilita il controllo delle chiavi esterne
- Aggiungi il comando DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT / TRIGGER
- IF NOT EXISTS (meno efficiente, perché gli indici vengono creati durante la creazione della tabella)
- Lunghezza massima della query creata 999999
Invio di e-mail tramite PHP
Fake sendmail for Windows
- Scarica 'Fake sendmail for Windows' ed estrailo
https://www.glob.com.au/sendmail/sendmail.zip
Estrai l'archivio 'sendmail.zip
' nella cartella 'C:\PHPext\sendmail\
'. - Aggiungi quanto segue in '
php.ini
'sendmail_path = 'C:\PHPext\sendmail\sendmail.exe -t'
- Effettua le impostazioni in '
sendmail.ini
'smtp_server=[SMTP-SERVER]
smtp_port=[SMTP-PORT]
smtp_ssl=auto
error_logfile=C:\PHPext\sendmail\error.log
debug_logfile=C:\PHPext\sendmail\debug.log
auth_username=[E-MAIL]
auth_password=[PASSWORD]
;pop3_server=
;pop3_username=
;pop3_password=
;force_sender=[E-MAIL]
(Forza mittente; NON ha funzionato per me);force_recipient=[E-MAIL]
(Forza destinatario; ha funzionato per me)hostname=localhost
- Test
Crea il file 'sendmail.php
' e inserisci la seguente riga.‹?php
mail('[E-MAIL]','Subject: Test','E-mail message','From: [E-MAIL]');
Richiama il file nel browser e verifica se la posta è arrivata.
ATTENZIONE: Il mittente deve essere un indirizzo e-mail dell'account associato. È possibile aggiungere solo indirizzi e-mail del mittente agli account, ad es. in Google, Yahoo.