Instruções de Instalação

Workerman é na verdade um pacote de código PHP. Se seu ambiente PHP já estiver configurado, você só precisa baixar o código fonte do Workerman ou o demo para executá-lo.

Instalação com Composer:

composer require workerman/workerman

Atenção
Alguns espelhos de proxy do composer podem não ter todos os pacotes, use o comando composer config -g --unset repos.packagist para remover o proxy.

Usuários do Windows (leia atentamente)

A partir da versão 3.5.3 do Workerman, ele suporta tanto sistemas Windows quanto Linux.
Usuários do Windows precisam configurar a variável de ambiente PHP.

=== A partir deste ponto, as instruções se aplicam apenas ao Workerman em ambientes Linux. Usuários do Windows devem ignorar ===

Verificação do Ambiente Linux

O sistema Linux pode usar o seguinte script para testar se o ambiente PHP local atende aos requisitos para executar o Workerman.
curl -Ss https://www.workerman.net/check | php

Se o script exibir "ok" para todas as verificações, isso significa que atende aos requisitos do Workerman. Você pode ir diretamente ao site oficial para baixar os exemplos e executá-los.

Se não estiver tudo "ok", consulte a documentação abaixo para instalar as extensões ausentes.

(Observação: o script de verificação não verifica a extensão event. Se o número de conexões concorrentes do seu negócio for superior a 1024, a extensão event deve ser instalada, além de otimizar o núcleo do Linux. Consulte as instruções abaixo para instalação da extensão.)

Instalação de extensões ausentes em um ambiente PHP existente

Instalação das extensões pcntl e posix:

Sistema CentOS
Se o PHP foi instalado via yum, você pode instalar as extensões pcntl e posix executando o seguinte comando na linha de comando:

yum install php-process

Se a instalação falhar ou se o PHP não tiver sido instalado com yum, consulte o método três da manual Apêndice - Instalação de Extensões para compilar a instalação a partir do código-fonte.

Sistemas Debian/Ubuntu/macOS
Consulte o método três da manual Apêndice - Instalação de Extensões para compilar a instalação a partir do código-fonte.

Instalação da extensão event:

Para suportar um número maior de conexões concorrentes, a extensão event deve ser instalada, além de otimizar o núcleo do Linux. O método de instalação é o seguinte:

Sistema CentOS

  1. Instale o pacote libevent-devel, que é uma dependência da extensão event. Execute o seguinte comando na linha de comando:

    yum install libevent-devel -y
    # Se não conseguir instalar, tente o comando abaixo
    # yum install libevent2-devel -y
  2. Instale a extensão event. Execute o seguinte comando na linha de comando:
    (a extensão event requer PHP>=5.4)

    pecl install event

    Nota: Quando aparecer a mensagem: Include libevent OpenSSL support [yes] : digite no e pressione Enter. Os outros prompts podem ser confirmados pressionando Enter.

  3. Execute php --ini para encontrar e abrir o arquivo php.ini. No final do arquivo, adicione a seguinte configuração:

    extension=event.so

Instalação em sistemas Debian/Ubuntu

  1. Instale o pacote libevent-dev, que é uma dependência da extensão event. Execute o seguinte comando na linha de comando:

    apt-get install libevent-dev -y
    # Se não conseguir instalar, tente o comando abaixo
    # apt-get install libevent2-dev -y
  2. Instale a extensão event. Execute o seguinte comando na linha de comando:

    pecl install event

    Nota: Quando aparecer a mensagem: Include libevent OpenSSL support [yes] : digite no e pressione Enter. Os outros prompts podem ser confirmados pressionando Enter.

  3. Execute php --ini para encontrar e abrir o arquivo php.ini. No final do arquivo, adicione a seguinte configuração:

    extension=event.so

Tutorial de instalação para macOS

O macOS geralmente é usado como uma máquina de desenvolvimento e não precisa da extensão event.

Instalação em um sistema totalmente novo (PHP+extensões)

Tutorial de instalação para sistema CentOS

  1. Execute o seguinte comando na linha de comando (este passo inclui a instalação do programa principal php-cli, bem como das bibliotecas pcntl, posix, libevent e do git):

    yum install php-cli php-process git gcc php-devel php-pear libevent-devel -y
  2. Instale a extensão event, executando o comando na linha de comando:
    (Nota: a extensão event requer PHP>=5.4)

    pecl install event

    Nota: Quando aparecer a mensagem: Include libevent OpenSSL support [yes] : digite no e pressione Enter. Os outros prompts podem ser confirmados pressionando Enter.

  3. Execute php --ini para encontrar e abrir o arquivo php.ini. No final do arquivo, adicione a seguinte configuração:

    extension=event.so
  4. Execute o seguinte comando na linha de comando (este passo é para baixar o programa principal do Workerman do GitHub):

    git clone https://github.com/walkor/Workerman
  5. Consulte a seção Guia de Início Rápido - Parte de Exemplo Simples para criar o arquivo de entrada e executá-lo.
    Ou baixe um demo empacotado do site oficial para executar.

Tutorial de instalação para sistemas Debian/Ubuntu

  1. Execute o seguinte comando na linha de comando (este passo inclui a instalação do programa principal php-cli, da biblioteca libevent e do git):

    apt-get install php-cli git gcc php-pear php-dev libevent-dev -y
  2. Instale a extensão event, executando o comando na linha de comando:
    (Nota: a extensão event requer PHP>=5.4)

    pecl install event

    Nota: Quando aparecer a mensagem: Include libevent OpenSSL support [yes] : digite no e pressione Enter. Os outros prompts podem ser confirmados pressionando Enter.

  3. Execute php --ini para encontrar e abrir o arquivo php.ini. No final do arquivo, adicione a seguinte configuração:

    extension=event.so
  4. Execute o seguinte comando na linha de comando (este passo é para baixar o programa principal do Workerman do GitHub):

    git clone https://github.com/walkor/Workerman
  5. Consulte a seção Guia de Início Rápido - Parte de Exemplo Simples para criar o arquivo de entrada e executá-lo.
    Ou baixe um demo empacotado do site oficial para executar.

Tutorial de instalação para macOS

Método 1: O macOS vem com o PHP Cli, mas pode faltar a extensão pcntl.

  1. Consulte o método três da manual Apêndice - Instalação de Extensões para compilar e instalar a extensão pcntl.

  2. Consulte o método quatro da manual Apêndice - Instalação de Extensões para instalar a extensão event usando o phpize (isso pode ser ignorado para uma máquina de desenvolvimento).

  3. Baixe o programa principal do Workerman em https://www.workerman.net/download/workermanzip ou baixe exemplos do site oficial para execução.

Método 2: Instale o PHP e as extensões correspondentes usando o comando brew.

  1. Execute o seguinte comando na linha de comando para instalar a ferramenta brew (se você já tiver instalado o brew, pode pular este passo):

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  2. Execute o seguinte comando na linha de comando para instalar o php:

    brew install php
  3. Execute o seguinte comando na linha de comando para instalar a extensão event:

    brew install php-event    
  4. Vá ao site oficial e baixe exemplos para execução.

Descrição da extensão Event

A extensão Event não é obrigatória. Quando o seu negócio precisa suportar mais de 1000 conexões concorrentes, é recomendada a instalação da extensão Event, que pode suportar um grande número de conexões concorrentes. Se o número de conexões concorrentes do seu negócio for relativamente baixo, como menos de 1000, você pode não instalar.

Perguntas Frequentes

  1. Se ocorrer o erro checking for include/event2/event.h... not found, tente primeiro remover a biblioteca libevent-dev(el) e instalar a libevent2-dev(el).
    Para sistemas CentOS: yum remove libevent-devel && yum install libevent2-devel
    Para sistemas Debian/Ubuntu: apt-get remove libevent-dev && apt-get install libevent2-dev

  2. Se ocorrer o erro NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library '.../event.so' - ..../event.so: undefined symbol: php_sockets_le_socket in Unknown on line 0.
    Você deve alterar a ordem de carregamento de event.so e socket.so, ou seja, no php.ini, coloque extension=socket.so antes de extension=event.so para que a extensão socket seja carregada primeiro.