Come abilitare il modulo Swoole per PHP in ServBay
ServBay, come potente ambiente di sviluppo web locale, integra numerosi strumenti ed estensioni utili agli sviluppatori, inclusa la performante estensione Swoole per PHP. Swoole è un motore di comunicazione di rete asincrono, parallelo e ad alte prestazioni, progettato specificamente per PHP, capace di migliorare sensibilmente le prestazioni e la scalabilità delle applicazioni PHP. Questa guida illustra passo dopo passo come abilitare facilmente Swoole in ServBay, aiutandoti a sfruttare le sue potenti funzionalità per costruire applicazioni e servizi PHP più efficienti.
Cos’è il framework Swoole
Swoole è un progetto open source che porta su PHP funzionalità avanzate come I/O asincrona simil-Node.js, coroutine, multi-processo e altro ancora. Grazie a Swoole, gli sviluppatori PHP possono superare i limiti del modello sincrono e bloccante dei server web tradizionali (come Apache/Nginx + PHP-FPM) e realizzare servizi residenti in memoria ad alte prestazioni come:
- Gateway API ad alte prestazioni
- Applicazioni di comunicazione in tempo reale (WebSocket)
- Server di gioco
- Soluzioni IoT (Internet of Things)
- Servizi backend ed elaborazioni asincrone
Caratteristiche principali di Swoole
- Alte prestazioni: Implementa I/O asincrono e non bloccante tramite system call come epoll/kqueue, unendo multithreading, multiprocesso e coroutine per una bassa latenza ed elevato throughput.
- Asincronia e coroutine: Offre supporto alle coroutine, permettendo di scrivere codice asincrono in modo sincronizzato e migliorando enormemente la produttività dello sviluppatore.
- Componenti ricchi: Include server e client per HTTP, WebSocket, TCP, UDP, oltre a pool di connessioni, timer, gestione dei processi e molto altro.
- Facile integrazione: Può essere utilizzato con framework PHP esistenti (come Laravel, Symfony, ThinkPHP, ecc.) oppure per creare applicazioni native Swoole da zero.
Supporto del modulo Swoole in ServBay
ServBay preinstalla l’estensione Swoole per tutte le versioni principali di PHP, evitando la necessità di download o compilazioni manuali. Gestisce automaticamente la versione di Swoole più compatibile in base alla versione PHP selezionata.
Attualmente, ServBay consente l’abilitazione di Swoole per queste versioni PHP:
- PHP 5.6
- Serie PHP 7.x
- Serie PHP 8.x (incluso PHP 8.5)
ServBay selezionerà e applicherà automaticamente il file di estensione Swoole adatto alla versione PHP in uso.
Prerequisiti
Prima di abilitare il modulo Swoole, assicurati di aver:
- Installato e avviato con successo ServBay.
- Installato e selezionato la versione PHP desiderata in ServBay, sulla quale vuoi abilitare Swoole.
Procedura per abilitare il modulo Swoole
ServBay consente di abilitare Swoole tramite interfaccia grafica (GUI) o modificando manualmente i file di configurazione. Si consiglia di usare la GUI per la sua semplicità e rapidità.
Abilitazione tramite GUI di ServBay (consigliata)
Ecco il metodo più rapido e semplice per abilitare Swoole:
- Apri l’interfaccia grafica utente di ServBay.
- Nel menu di navigazione a sinistra, seleziona Linguaggi (Languages).
- Clicca su PHP.
- Nella lista delle versioni PHP a destra, individua la versione per la quale vuoi abilitare Swoole (es:
PHP 8.3
), assicurandoti che sia selezionata (il pallino sarà verde). - Premi il pulsante Estensioni (Extensions) accanto alla versione PHP scelta.
- Nell’elenco che appare, trova l’estensione swoole.
- Attiva lo switch accanto a swoole: dovrà diventare verde.
- Clicca su Salva (Save) o Applica (Apply) in basso.
- ServBay ti chiederà di riavviare il servizio PHP per caricare la nuova estensione. Conferma con Riavvia (Restart).
Dopo il riavvio del servizio, il modulo Swoole sarà abilitato con successo.
Modifica manuale dei file di configurazione (avanzato)
Per una configurazione avanzata, o se preferisci la gestione manuale, puoi abilitare Swoole modificando il file ini
relativo a PHP.
Accedi alla cartella
conf.d
della versione PHP scelta. Questa cartella contiene file di configurazione delle estensioni PHP, e ServBay carica automaticamente tutti i file.ini
presenti. Ad esempio, per PHP 8.3 il percorso tipico è:/Applications/ServBay/etc/php/8.3/conf.d/
1Nota: se hai installato ServBay in una directory diversa, adatta il percorso di conseguenza.
All’interno della cartella, individua e apri il file
swoole.ini
.Di norma, la riga di abilitazione di Swoole potrebbe essere commentata (cioè preceduta da
;
). Cerca questa parte:ini[Swoole] ; Uncomment the following line to enable Swoole ;extension = swoole.so
1
2
3Rimuovi il simbolo
;
dalla riga di attivazione, in modo da decommentarla:ini[Swoole] ; Uncomment the following line to enable Swoole extension = swoole.so
1
2
3Salva il file
swoole.ini
.Dall’interfaccia principale della GUI di ServBay, o dal pannello di gestione dei servizi, premi il pulsante di riavvio sul servizio PHP corrispondente.
Al termine del riavvio, Swoole sarà caricato secondo la configurazione definita.
Verifica dell’avvenuta attivazione del modulo Swoole
Il metodo più comune per verificare la presenza del modulo Swoole è tramite la funzione phpinfo()
di PHP.
- Nella cartella principale di uno dei tuoi siti web gestiti da ServBay (es:
/Applications/ServBay/www/servbay.demo/public/
), crea un file chiamatophpinfo.php
. - Inserisci il seguente contenuto nel file:php
<?php phpinfo(); ?>
1
2
3 - Verifica che il sito
servbay.demo
sia configurato in ServBay e punti alla directory contenentephpinfo.php
. - Visita nel browser l’URL corrispondente, ad esempio
https://servbay.demo/phpinfo.php
. - Nella pagina phpinfo, scorri verso il basso o usa la funzione di ricerca del browser (Ctrl+F o Cmd+F) e cerca la parola "swoole".
Se vengono visualizzate informazioni relative a Swoole, come versione e opzioni di configurazione, significa che il modulo è stato correttamente caricato e abilitato.
Immagine: come trovare le informazioni su Swoole nella pagina phpinfo
Esempio d’uso di Swoole
Dopo aver abilitato il modulo Swoole, puoi subito iniziare a sviluppare applicazioni con esso. Di seguito un esempio base di come creare un server HTTP con Swoole.
Codice d’esempio: creazione di un semplice server HTTP Swoole
Crea la directory del progetto
All’interno del percorso di sviluppo (es: in/Applications/ServBay/www/
), crea una nuova cartella progetto, ad esempiomy-swoole-app
. Al suo interno, crea anche una cartellapublic
per il file di accesso.bashcd /Applications/ServBay/www/ mkdir my-swoole-app cd my-swoole-app mkdir public
1
2
3
4Crea il file di accesso del server
public/index.php
php<?php require __DIR__ . '/../vendor/autoload.php'; // Se hai installato altre dipendenze con Composer use Swoole\Http\Server; use Swoole\Http\Request; use Swoole\Http\Response; // Crea un'istanza di server HTTP che ascolta tutte le IP locali (0.0.0.0) sulla porta 9501 $server = new Server("0.0.0.0", 9501); // Configura i parametri del server (opzionale) // $server->set([ // 'worker_num' => 4, // Numero di processi worker // 'daemonize' => false, // Se eseguire come demone // ]); // Ascolta l'evento di richiesta $server->on("request", function (Request $request, Response $response) { // Imposta l'header della risposta $response->header("Content-Type", "text/plain"); // Imposta il corpo della risposta $response->end("Hello ServBay with Swoole!"); }); // Ascolta l'evento di avvio del server (opzionale) $server->on("start", function (Server $server) { echo "Swoole http server is started at http://0.0.0.0:9501\n"; }); // Avvia il server $server->start(); echo "Swoole server stopped.\n"; // Questa riga viene eseguita solo dopo l’arresto del server
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35Nota: la linea
require __DIR__ . '/../vendor/autoload.php';
è necessaria solo se hai installato altre librerie legate a Swoole usando Composer (comeswoole/ide-helper
o framework basati su Swoole). Se usi solo codice Swoole puro, puoi eliminarla.Avvia il server dalla linea di comando
Apri il Terminale integrato di ServBay, oppure il terminale del sistema, naviga nella cartella del tuo progetto (/Applications/ServBay/www/my-swoole-app/
). Assicurati che il PHP utilizzato dal terminale sia gestito da ServBay e abbia Swoole attivo (puoi controllare conwhich php
o usando il terminale di ServBay).Esegui il seguente comando per avviare il server Swoole:
shphp public/index.php
1Se tutto è configurato correttamente, il terminale visualizzerà un messaggio simile a "Swoole http server is started at http://0.0.0.0:9501".
Immagine: esecuzione del server Swoole nel terminale
Test di accesso Dopo aver avviato il server, apri il browser e visita
http://localhost:9501
. Dovresti vedere il messaggio "Hello ServBay with Swoole!".Per interrompere il server Swoole nel terminale, premi
Ctrl + C
.
Note importanti
- Modalità di esecuzione: L’esempio sopra mostra l'esecuzione diretta del server Swoole via linea di comando, utile per servizi residenti in memoria. Le applicazioni web tradizionali (come Laravel, Symfony, WordPress, ecc.) normalmente funzionano in modalità PHP-FPM, con Caddy o Nginx come proxy. Se desideri eseguire questi framework in ambiente Swoole (es. tramite Hyperf, Swoole-Laravel, ecc.), segui i loro script di avvio: in genere si tratta di processi indipendenti e l’esecuzione assomiglia a quella dell’esempio con Swoole nativo.
- Occupazione porte: Il server Swoole ascolta una porta specifica (nell’esempio, la 9501). Assicurati che la porta non sia già utilizzata da altri servizi.
- Log errori: Errori e output di Swoole sono stampati sul terminale d’avvio o, se configurato, su uno specifico file di log.
FAQ - Domande frequenti
D: Ho abilitato Swoole nella GUI di ServBay, ma non vedo informazioni su Swoole nella pagina phpinfo()
. Cosa posso fare?
R: Controlla quanto segue:
- Verifica di consultare la pagina
phpinfo()
generata dalla versione PHP corretta. ServBay può gestire più versioni contemporaneamente: assicurati di accedere al sito o eseguire il comandophpinfo()
tramite la versione sulla quale hai attivato Swoole. - Controlla di aver salvato e riavviato realmente il servizio PHP relativo, dopo aver abilitato l’estensione nella GUI.
- Se hai modificato manualmente
swoole.ini
, verifica che percorso e nome file siano corretti, e che la rigaextension = swoole.so
non sia commentata.
D: Perché quando eseguo il codice d’esempio vedo l’errore Class 'Swoole\Http\Server' not found
?
R: Questo errore indica che l’estensione Swoole non è caricata nell’ambiente PHP in uso. Ripeti i passaggi per l’abilitazione e assicurati che quando lanci php public/index.php
, il PHP sia quello gestito da ServBay e con Swoole attivato. Da terminale, puoi verificare se Swoole è presente con php -m | grep swoole
.
Conclusioni
Grazie a ServBay, abilitare l’estensione Swoole per PHP è estremamente semplice. Che tu scelga l’immediata GUI o la modalità avanzata della modifica dei file di configurazione, potrai abilitare Swoole sulla versione PHP selezionata con pochi passaggi, sbloccando la possibilità di sviluppare applicazioni web asincrone e ad altissime prestazioni. Sfrutta la potenza di Swoole per realizzare servizi PHP veloci e scalabili, e lascia che ServBay ti semplifichi la gestione degli ambienti di sviluppo, così da poter concentrare tutte le energie sul tuo codice.