Como habilitar o módulo Swoole para PHP no ServBay
O ServBay é um ambiente local de desenvolvimento web poderoso, que vem com diversas ferramentas e extensões essenciais para desenvolvedores, incluindo a extensão PHP Swoole de alto desempenho. O Swoole é um motor de comunicação de rede assíncrono, concorrente e de alta performance projetado para PHP, capaz de aumentar consideravelmente a performance e a escalabilidade das aplicações PHP. Neste guia, explicamos em detalhes como habilitar facilmente a extensão Swoole no ServBay, ajudando você a explorar todos os recursos dessa poderosa ferramenta e desenvolver aplicações PHP muito mais eficientes.
Sobre o framework Swoole
O Swoole é um projeto open-source que traz para o PHP recursos avançados de I/O assíncrono, corrotinas e multiprocessos – com funcionalidades similares ao Node.js. Com o Swoole, desenvolvedores PHP podem superar as limitações dos modelos tradicionais de servidor web (como Apache/Nginx + PHP-FPM) baseados em processamento síncrono e bloqueante, e construir serviços em memória de alta performance, como:
- API Gateways de alto desempenho
- Aplicações de comunicação em tempo real (WebSocket)
- Servidores de jogos
- Aplicações IoT (Internet das Coisas)
- Serviços backend e processamento de tarefas
Principais características do Swoole
- Alto desempenho: Utiliza chamadas de sistema epoll/kqueue para I/O assíncrono não bloqueante, combinado com múltiplos threads, processos e corrotinas, resultando em alta taxa de transferência e baixa latência.
- Assíncrono e corrotinas: Suporte a corrotinas que permitem escrever código assíncrono de forma síncrona, aumentando bastante a produtividade do desenvolvimento.
- Componentes ricos: Inclui servidores e clientes HTTP, WebSocket, TCP, UDP, além de recursos como pools de conexão, timers, gerenciamento de processos e mais.
- Fácil integração: Pode ser usado junto a frameworks PHP existentes (como Laravel, Symfony, ThinkPHP) ou para criar aplicações nativas no Swoole.
Suporte ao módulo Swoole no ServBay
O ServBay já vem com a extensão Swoole pré-instalada para todas as versões do PHP suportadas – você não precisa baixar nem compilar nada manualmente. O ServBay gerencia para você a compatibilidade entre as versões do PHP e do Swoole.
Atualmente, é possível habilitar a extensão Swoole nas seguintes versões do PHP no ServBay:
- PHP 5.6
- PHP 7.x
- PHP 8.x (incluindo PHP 8.5)
O ServBay seleciona automaticamente o arquivo da extensão Swoole compatível de acordo com a versão do PHP que você está utilizando.
Pré-requisitos
Antes de habilitar o módulo Swoole, verifique se:
- O ServBay está corretamente instalado e rodando no seu sistema.
- A versão do PHP em que você deseja usar o Swoole já está instalada e selecionada no ServBay.
Passos para habilitar o módulo Swoole
O ServBay permite habilitar o Swoole de duas maneiras: pela interface gráfica (GUI) ou manualmente editando arquivos de configuração. Recomendamos a interface gráfica por ser mais simples e prática.
Habilitando via interface gráfica do ServBay (recomendado)
Esta é a forma mais rápida e fácil de ativar o Swoole:
- Abra a interface gráfica do ServBay.
- No menu lateral, selecione Languages (Linguagens).
- Clique em PHP.
- Na lista de versões do PHP à direita, localize a versão do PHP em que deseja ativar o Swoole (por exemplo,
PHP 8.3
) e garanta que essa versão esteja selecionada (o círculo deverá estar verde). - Clique no botão Extensions (Extensões) ao lado da versão do PHP.
- Na lista de extensões que aparecer, encontre swoole.
- Ative o switch à esquerda de swoole para ligar a extensão (o botão deve ficar verde).
- Clique em Salvar (Save) ou Aplicar (Apply) no final da janela.
- O ServBay pedirá para reiniciar o serviço PHP correspondente para carregar a nova extensão. Clique em Reiniciar (Restart).
Depois que o serviço reiniciar, o módulo Swoole estará habilitado e funcionando.
Habilitando via edição manual de arquivo de configuração (avançado)
Se você prefere controlar manualmente a configuração, ou precisa de opções mais avançadas, é possível habilitar o Swoole editando direto o arquivo ini do PHP.
Acesse o diretório
conf.d
da versão do PHP escolhida. A pastaconf.d
armazena configurações adicionais de extensões PHP e o ServBay carrega automaticamente os arquivos.ini
encontrados ali. Por exemplo, para o PHP 8.3:/Applications/ServBay/etc/php/8.3/conf.d/
1Caso você tenha instalado o ServBay em um caminho diferente, ajuste conforme necessário.
Dentro desse diretório, localize e abra o arquivo
swoole.ini
.Por padrão, a linha que habilita o Swoole pode estar comentada (com
;
no início). Procure:ini[Swoole] ; Uncomment the following line to enable Swoole ;extension = swoole.so
1
2
3Remova o
;
para ativar a linhaextension = swoole.so
:ini[Swoole] ; Uncomment the following line to enable Swoole extension = swoole.so
1
2
3Salve o arquivo
swoole.ini
.Na interface principal do ServBay ou pelo painel de gerenciamento de serviços, localize o serviço PHP correspondente e clique no botão de reiniciar.
Feito isso, ao reiniciar o serviço, o módulo Swoole será carregado com sucesso conforme sua configuração.
Como verificar se o módulo Swoole foi habilitado
A forma mais comum de checar é usando a função phpinfo()
para visualizar os módulos PHP carregados no ambiente.
- No diretório raiz do seu site hospedado pelo ServBay (por exemplo:
/Applications/ServBay/www/servbay.demo/public/
), crie um arquivo chamadophpinfo.php
. - Edite o arquivo
phpinfo.php
e adicione:php<?php phpinfo(); ?>
1
2
3 - Confirme que o site
servbay.demo
está corretamente configurado no ServBay e aponta para o diretório que contém ophpinfo.php
. - Acesse a URL correspondente em seu navegador, como
https://servbay.demo/phpinfo.php
. - Na página que abrir, role para baixo ou use o buscador do navegador (Ctrl+F ou Cmd+F) para procurar por "swoole".
Se encontrar informações sobre o Swoole, como versão e opções de configuração, o módulo está corretamente habilitado.
Ilustração: Buscando informações do Swoole na página phpinfo
Exemplo de uso do Swoole
Com o módulo Swoole ativo, você já pode começar a criar aplicações com ele. Veja um exemplo de como criar um servidor HTTP básico usando o Swoole.
Código exemplo: Criando um HTTP Server simples com Swoole
Crie um diretório de projeto
No seu diretório de desenvolvimento (por exemplo, dentro de/Applications/ServBay/www/
), crie um novo diretório para o projeto, comomy-swoole-app
. Dentro dele, crie uma pastapublic
para armazenar o arquivo de entrada.bashcd /Applications/ServBay/www/ mkdir my-swoole-app cd my-swoole-app mkdir public
1
2
3
4Crie o arquivo de entrada do servidor em
public/index.php
php<?php require __DIR__ . '/../vendor/autoload.php'; // Se você instalou dependências via Composer use Swoole\Http\Server; use Swoole\Http\Request; use Swoole\Http\Response; // Cria uma instância do servidor HTTP, escutando em todas as interfaces (0.0.0.0) na porta 9501 $server = new Server("0.0.0.0", 9501); // Configurações do servidor (opcional) // $server->set([ // 'worker_num' => 4, // Número de processos de trabalho // 'daemonize' => false, // Executar como daemon // ]); // Evento de requisição $server->on("request", function (Request $request, Response $response) { // Define o cabeçalho da resposta $response->header("Content-Type", "text/plain"); // Retorna o corpo da resposta $response->end("Hello ServBay with Swoole!"); }); // Evento de inicialização do servidor (opcional) $server->on("start", function (Server $server) { echo "Swoole http server is started at http://0.0.0.0:9501\n"; }); // Inicia o servidor $server->start(); echo "Swoole server stopped.\n"; // Esta linha só é executada quando o servidor para
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
35Atenção: A linha
require __DIR__ . '/../vendor/autoload.php';
só é necessária caso você tenha instalado outras bibliotecas Swoole via Composer (comoswoole/ide-helper
ou frameworks baseados em Swoole). Para projetos Swoole puros, normalmente o autoload.php não é necessário e pode ser removido.Execute o servidor pelo terminal Abra o terminal nativo do sistema ou utilize a função Terminal do ServBay, navegue até o diretório do seu projeto (
/Applications/ServBay/www/my-swoole-app/
). Garanta que o terminal está usando a versão do PHP gerenciada pelo ServBay (verifique usandowhich php
ou preferencialmente utilize o terminal do ServBay).Para iniciar o servidor Swoole, rode:
shphp public/index.php
1Se tudo estiver correto, verá no terminal a mensagem parecida com "Swoole http server is started at http://0.0.0.0:9501".
Ilustração: Executando o servidor Swoole no terminal
Testando o acesso Com o servidor em execução, abra o navegador e acesse
http://localhost:9501
. O texto "Hello ServBay with Swoole!" deve ser exibido na tela.Para parar o servidor Swoole no terminal, pressione
Ctrl + C
.
Observações importantes
- Modo de execução: O exemplo acima mostra como rodar um servidor Swoole diretamente pelo terminal – ideal para aplicações de serviço permanente em memória. Aplicações web tradicionais (como as baseadas em Laravel, Symfony, WordPress, etc.) normalmente rodam no modo PHP-FPM, com Caddy ou Nginx fazendo proxy das requisições. Para rodar estes frameworks em ambiente Swoole (como com Hyperf, Swoole-Laravel, etc.), use os scripts de inicialização do framework, geralmente seguindo a lógica de execução via Swoole, como processo separado.
- Portas: O servidor Swoole irá escutar na porta definida (9501 no exemplo). Certifique-se de que essa porta está livre e não está sendo utilizada por outro serviço.
- Logs de erro: Os logs e mensagens do Swoole normalmente aparecem direto no terminal em que ele foi iniciado, ou conforme sua configuração, podem ser enviados para arquivos de log.
Perguntas Frequentes (FAQ)
P: Ativei o Swoole pela GUI do ServBay, mas não vejo informações do Swoole na página phpinfo()
. O que fazer?
R: Confirme os seguintes pontos:
- Verifique se você está visualizando a
phpinfo()
da versão correta do PHP. O ServBay pode rodar múltiplas versões do PHP ao mesmo tempo – confirme se o site acessado ou o terminal estão usando a versão do PHP em que o Swoole foi ativado. - Certifique-se de ter salvo e reiniciado o serviço PHP correspondente após ativar o Swoole via GUI.
- Se editou o
swoole.ini
manualmente, confira o caminho e o nome do arquivo, e que a linhaextension = swoole.so
está ativa (sem ponto e vírgula).
P: Por que ao rodar o exemplo do Swoole aparece o erro Class 'Swoole\Http\Server' not found
?
R: Isso geralmente indica que a extensão Swoole não foi carregada no ambiente PHP atual. Siga novamente os passos acima para garantir que o Swoole está ativado para a versão certa e que o terminal está usando o PHP gerenciado pelo ServBay com a extensão ativa. No terminal, use php -m | grep swoole
para verificar rapidamente se o Swoole está carregado.
Resumo
Com o ServBay, habilitar a extensão Swoole para PHP é simples e rápido. Seja pela interface gráfica ou editando arquivos de configuração, os desenvolvedores conseguem rapidamente carregar o Swoole na versão do PHP desejada e partir para o desenvolvimento de aplicações web assíncronas e de alta performance. Usando o Swoole, você constrói serviços PHP mais rápidos, escaláveis e prontos para demandas modernas, aproveitando ao máximo o potencial da linguagem. O ServBay cuida da gestão do ambiente para que você se concentre no código e não na infraestrutura.