installazione PHP: zip o installer?

Come da domanda: è meglio configurare PHP partendo dallo zip o utilizzare l'installer? La destinazione è windows server 2008 R2 64 bit. I due pacchetti li ho trovati alla pagina dei download di php.net per windows.

Apache e MySQL sono stati installati come applicazioni distinte.

Per ulteriori informazioni, si rimanda alla precedente domanda: è meglio installare un emulatore o i software wamp?

Grazie

inviato 5 anni fa
larchitetto
X 0 X

L'installer dovrebbe fare tutto da solo: copiare i file, configurare Apache e modificare il php.ini per caricare solo le estensioni desiderate. Ti permette inoltre di modificare a posteriori l'elenco delle estensioni da caricare ed è anche in grado di aggiornare vecchie versioni di PHP, sempre se installate con l'installer.

Insomma, è uno strumento comodo se non hai voglia di "trafficare" con i file di configurazione anche se non è possibile escludere qualche intervento manuale...

Piuttosto fa attenzione alla versione di Apache che hai installato. Infatti i binari per Windows di PHP 5.3 che trovi sul sito ufficiale (http://windows.php.net/download/) sono compilati con il compilatore VC9 mentre i binari di Apache del sito ufficiale (http://httpd.apache.org/download.cgi) sono compilati con VC6. Pertanto non sono compatibili! Apache compilato con VC9 lo trovi qui:

http://www.apachelounge.com/download/

risposto 5 anni fa
Gianni Tomasicchio
Trafficare coi file di configurazione non mi crea alcun problema; piuttosto mi preoccupa la compatibilità del compilatore. Se utilizzassi lo zip di PHP piusttosto che l'installer, il problema di compatibilità è risolto? Ho anche provato ad installare PHP con l'installer: avevo segnato di usare le estensioni mysql e mysqli, ma dal phpinfo() ho trovato mysqlnd; non solo: facendo girare degli script utili a testare le due estensioni, ho notato che le classi e le funzioni delle estensioni non esistevano.larchitetto 5 anni fa
Sia lo zip che l'installer di PHP 5.3 contengono PHP e le sue estensioni compilate con VC9 quindi il problema rimane.Gianni Tomasicchio 5 anni fa
L'incompatibilità in che cosa consiste? Io ho appena provato configurato lo zip VC9 con Apache ufficiale (quindi VC6), e non ho alcun errore di funzionamento per ora.larchitetto 5 anni fa
@larchitetto Non so in che modo si può manifestare l'incompatibilità ma all'indirizzo http://windows.php.net/download/ c'è scritto "Do NOT use VC9 version with apache.org binaries"Gianni Tomasicchio 5 anni fa
il fatto di compilare con una versione o l'altra del VC (Visual C ;-) ) non comporta differenze o almeno, non dovrebbe comportarne, sul pc dell'ufficio in cui lavoro, il PHP è stato ricompilato con il VC8 e Apache è quello fornito da Apache.org quindi presumo col VC6 e funziona tutto benissimo.Marco Grazia 5 anni fa
La diversa compilazione ad un uso base di Php porta poche differenze. Nella lettura delle varie caratteristiche delle due diverse compilazioni, invece, si possono notare importanti differenze che a volte è bene tenere presente.Mario Santagiuliana 5 anni fa
X 0 X

Io ho sempre usata la versione ZIP e francamente non ho mai avuto problemi di sorta.

Mysqlnd non è un'estensione di PHP ma di MySQL come descritto in http://dev.mysql.com/downloads/connector/php-mysqlnd/

Dal mio php.ini (tieni presente che io uso gnu/linux e quindi i nomi di alcuni file sono leggermente diversi ma le impostazioni sono sostanzialmente identici.

[Pdo_mysql]
; If mysqlnd is used: Number of cache slots for the internal result set cache
; http://php.net/pdo_mysql.cache_size
pdo_mysql.cache_size = 2000

; Default socket name for local MySQL connects.  If empty, uses the built-in
; MySQL defaults.
; http://php.net/pdo_mysql.default-socket
pdo_mysql.default_socket=

[mysqlnd]
; Enable / Disable collection of general statstics by mysqlnd which can be
; used to tune and monitor MySQL operations.
; http://php.net/mysqlnd.collect_statistics
mysqlnd.collect_statistics = On

; Enable / Disable collection of memory usage statstics by mysqlnd which can be
; used to tune and monitor MySQL operations.
; http://php.net/mysqlnd.collect_memory_statistics
mysqlnd.collect_memory_statistics = Off

; Size of a pre-allocated buffer used when sending commands to MySQL in bytes.
; http://php.net/mysqlnd.net_cmd_buffer_size
;mysqlnd.net_cmd_buffer_size = 2048

; Size of a pre-allocated buffer used for reading data sent by the server in
; bytes.
; http://php.net/mysqlnd.net_read_buffer_size
;mysqlnd.net_read_buffer_size = 32768

In Apache nel file di configurazione controlla sempre che ci sia la direttiva che indichi ad Apache dove si trova il php.ini

# 
LoadModule php5_module "c:/php/php5apache2.dll"
AddHandler application/x-httpd-php .php

# configure the path to php.ini

PHPIniDir "C:/php"

se usi l'installatore automatico esso ti chiede sempre di installare PHP come sottodirectory della radice del disco, in tempi non recenti questa era l'unica possibilità di farlo funzionare bene, se l'hai usato controlla che ci sia la direttiva PHPIniDir in httpd.conf e vedi dove punta, se non c'è aggiungila comunque puntando al php.ini che vuoi far lavorare.

EDIT

in pratica le mysqlnd sono l'estensione di mysql riscritte totalmente dal team di php, abilitando le estensioni mysql* nel file php.ini non fai altro che abilitare la funzione per il supporto di mysql inserite all'interno del php e non più come estensione esterna.

Quindi non le trovi più tra le estensioni nella directory del PHP.

risposto 5 anni fa
Marco Grazia
modificato 5 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda