Pesquisa de site

Configure o Supervisor para executar o servidor web Apache2 no Ubuntu/Debian Linux


A ideia de iniciar seus serviços sob a supervisão do Supervisor é poder executar vários serviços sob um único daemon. Dependendo da configuração do Supervisor ele poderá iniciar, parar ou reiniciar qualquer serviço como um processo filho. Nesta configuração mostramos como executar o apache2 como serviço supervisionado (útil para imagens docker etc.) no Ubuntu/Debian Linux. Primeiro, instale o supervisor:


# apt-get install supervisor

Inclua a configuração do supervisor do apache2 em /etc/supervisor/conf.d/. O Supervisor escolherá quaisquer arquivos de configuração deste diretório onde o único requisito seja a extensão de arquivo *.conf. Por exemplo, insira as seguintes linhas em um novo arquivo /etc/supervisor/conf.d/apache2.conf:


[program:apache2]
command=/usr/sbin/apache2ctl -DFOREGROUND

Depois de incluir o arquivo de configuração acima, pare o servidor web Apache2 se estiver em execução:


# /etc/init.d/apache2 stop  
[ ok ] Stopping web server: apache2.
root@4e004b451a98:/# /etc/init.d/apache2 status
[FAIL] apache2 is not running ... failed!

e reinicie o supervisor:


# /etc/init.d/supervisor restart
Restarting supervisor: supervisord.

Depois de reiniciar o supervisor, o servidor web Apache2 também deve ser iniciado. Confirme se o servidor web Apache2 está em execução:


# /etc/init.d/apache2 status
[ ok ] apache2 is running.

Solução de problemas

se por algum motivo você não conseguir executar seu apache sob o supervisor, execute o supervisor no modo nodaemon:


# /etc/init.d/supervisor stop
Stopping supervisor: supervisord.
# supervisord -n

Mensagem de erro:


/usr/lib/python2.7/dist-packages/supervisor/options.py:296: UserWarning: Supervisord is running as root and it is searching for its configuration file in default locations (including its current working directory); you probably want to specify a "-c" argument specifying an absolute path to a configuration file for improved security.
  'Supervisord is running as root and it is searching '
2015-05-07 01:21:00,849 CRIT Supervisor running as root (no user in config file)
2015-05-07 01:21:00,849 WARN Included extra file "/etc/supervisor/conf.d/apache2.conf" during parsing
2015-05-07 01:21:00,858 INFO RPC interface 'supervisor' initialized
2015-05-07 01:21:00,858 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2015-05-07 01:21:00,858 INFO supervisord started with pid 542
2015-05-07 01:21:01,862 INFO spawned: 'apache2' with pid 545
2015-05-07 01:21:01,914 INFO exited: apache2 (exit status 0; not expected)
2015-05-07 01:21:02,918 INFO spawned: 'apache2' with pid 548
2015-05-07 01:21:02,970 INFO exited: apache2 (exit status 0; not expected)
2015-05-07 01:21:04,975 INFO spawned: 'apache2' with pid 551
2015-05-07 01:21:05,025 INFO exited: apache2 (exit status 0; not expected)
2015-05-07 01:21:08,031 INFO spawned: 'apache2' with pid 554
2015-05-07 01:21:08,078 INFO exited: apache2 (exit status 0; not expected)
2015-05-07 01:21:09,079 INFO gave up: apache2 entered FATAL state, too many start retries too quickly

Se você vir a mensagem de erro acima, certifique-se de que seu servidor Apache ainda não esteja em execução.

Outra mensagem de erro que você pode ver é:


AH00526: Syntax error on line 74 of /etc/apache2/apache2.conf:
Invalid Mutex directory in argument file:${APACHE_LOCK_DIR}

Isso ocorre porque você está tentando executar o comando apache2 diretamente. Você pode tentar executar apache2ctl.

Artigos relacionados: