PHP
Compilare le estensioni PHP
Ricerca…
Compilare su Linux
Per compilare un'estensione PHP in un tipico ambiente Linux, ci sono alcuni prerequisiti:
- Abilità di base di Unix (essere in grado di operare "make" e un compilatore C)
- Un compilatore C ANSI
- Il codice sorgente per l'estensione PHP che desideri compilare
Generalmente ci sono due modi per compilare un'estensione PHP. Puoi compilare staticamente l'estensione nel binario PHP o compilarlo come un modulo condiviso caricato dal tuo binario PHP all'avvio. I moduli condivisi sono più probabili dal momento che ti permettono di aggiungere o rimuovere estensioni senza ricostruire l'intero binario PHP. Questo esempio si concentra sull'opzione condivisa.
Se hai installato PHP tramite il tuo gestore di pacchetti ( apt-get install
, yum install
, ecc.) -dev
installare il pacchetto -dev
per PHP, che includerà i file header PHP necessari e lo script phpize per far funzionare l'ambiente di compilazione . Il pacchetto potrebbe essere chiamato qualcosa come php5-dev
o php7-dev
, ma assicuratevi di usare il vostro gestore di pacchetti per cercare il nome appropriato usando i repository della vostra distro. Possono differire.
Se hai creato PHP dal sorgente, i file header probabilmente esistono già sul tuo sistema (di solito in /usr/include
o /usr/local/include
).
Passi da compilare
Dopo aver controllato di avere tutti i prerequisiti necessari per la compilazione, puoi andare su pecl.php.net , selezionare un'estensione che desideri compilare e scaricare la tar ball.
- Disimballare la sfera tar (ad es.
tar xfvz yaml-2.0.0RC8.tgz
) - Immettere la directory in cui è stato decompresso l'archivio ed eseguire
phpize
- Ora dovresti vedere uno script
.configure
appena creato, se tutto è andato bene,.configure
./configure
- Ora dovrai eseguire
make
, che compilerà l'estensione - Infine,
make install
copierà l'estensione binary compilata nella tua directory di estensione
In genere, il passaggio di make install
fornisce in genere il percorso di installazione in cui è stata copiata l'estensione. Questo di solito è in /usr/lib/
, ad esempio potrebbe essere qualcosa di simile a /usr/lib/php5/20131226/yaml.so
. Ma questo dipende dalla configurazione di PHP (ie --with-prefix
) e dalla specifica versione dell'API. Il numero dell'API è incluso nel percorso per mantenere le estensioni create per diverse versioni dell'API in posizioni separate.
Caricamento dell'estensione in PHP
Per caricare l'estensione in PHP, trovare il file php.ini caricato per il SAPI appropriato e aggiungere l' extension=yaml.so
riga extension=yaml.so
quindi riavviare PHP. Cambia yaml.so
al nome dell'effettiva estensione che hai installato, ovviamente.
Per un'estensione Zend è necessario fornire il percorso completo del file oggetto condiviso. Tuttavia, per le normali estensioni PHP questo percorso deriva dalla direttiva extension_dir
nella configurazione caricata o dall'ambiente $PATH
durante l'installazione iniziale.