Problema ao iniciar o apache via apachectl

1

Estou tentando mover nosso servidor de produção para uma caixa Linux. Quando eu emito o comando start usando o apachectl, nada acontece e ele volta para a linha de comando. Se eu executar apachectl status , ele me diz "ELinks: Conexão recusada".

No entanto, se eu tentar iniciar o apache diretamente usando httpd -k start , ele iniciará o processo do apache.

Alguma idéia de por que não posso usar o apachectl para iniciá-lo? Além disso, é um grande negócio apenas iniciá-lo emitindo o comando httpd -k start ? Eu sempre começaria assim, mas estou preocupado com a seguinte linha da documentação do apache

In general, httpd should not be invoked directly, but rather should be invoked via apachectl on Unix-based systems

link

    
por Matt 24.08.2010 / 21:07

3 respostas

3

Quais erros você está recebendo do comando apachectl? O apachectl nada mais é do que um script de shell, portanto, você pode depurá-lo invocando-o com sh -x /path/to/apachectl start . Você verá um monte de informações sendo derramadas na tela. Se você não estiver recebendo erros ou saída e não houver processos httpd em execução no sistema, talvez você queira examinar seus arquivos de log, como /var/log/messages .

Além disso, depois de executar o comando apachectl start , você também pode emitir echo $? para ver o código de status de saída. Estas são todas as coisas que você poderia fornecer para que possamos ajudar ainda mais.

    
por 24.08.2010 / 21:14
1

Por que vale a pena, eu baixei os pacotes Apache depois de instalar o sistema Linux base. Eles compilaram bem, mas não avisaram que o pacote links estava faltando.

  • Portanto, certifique-se de ter executado yum install links .

    Além disso, nada foi mencionado na documentação sobre a diferença entre dois arquivos com aparência semelhante em locais diferentes: apachectl in /usr/local/apache2/bin/apachectl e usr/sbin/apachectl . Acabei usando o /usr/sbin/apachectl . /usr/local/apache2/bin/apachectl para este dia ainda retorna um erro: /usr/local/apache2/apachectl: line 94: lynx: command not found . Não faço ideia do porquê. O trabalho do Apache com a versão /usr/sbin/apachectl no entanto.

  • [root@]# ls -l /usr/local/apache2/bin/apachectl
    -rwxr-xr-x. 1 root root 3428 Jan 27 12:11 /usr/local/apache2/bin/apachectl
  • [root@]# ls -l /usr/sbin/apachectl
    -rwxr-xr-x. 1 root root 3916 Dec  8 12:10 /usr/sbin/apachectl

Eu estava presa em todas as complexidades do arquivo /etc/httpd/conf/httpd.conf. Eu sou todo para segurança na web, mas para iniciantes sem noção como eu, é um bugger ter que entrar em uma infinidade de arquivos de ajuda da Internet, como este, para finalmente obter um serviço simples para começar.

Para qualquer outra pessoa que esteja ficando obcecada em obter apachectl status para retornar um valor decente - aposto que você também está ficando preso onde eu estava com os valores padrão não sendo tão bons no arquivo /etc/httpd/conf/httpd.conf . Descomente e modifique as seções apropriadas. Você pode querer pedir Allow from all nos pontos <Location /server-info> e <Location /server-status> apenas para ter certeza de que seu serviço está sendo iniciado corretamente. Certifique-se de sempre reiniciar o serviço com service httpd restart . Então, você pode reduzir o acesso e retornar às regras Deny from all quando souber que o servidor Apache está funcionando bem.

    
por 28.01.2012 / 06:47
0

Também enfrentei o mesmo problema: para corrigir esse problema, preciso ativar o status do servidor no arquivo httpd.conf, como o comando ./ apachectl status tentando conectar a página de status do servidor, que por padrão não configurado


[root@bin]# ./apachectl status
                                   Not Found

   The requested URL /server-status was not found on this server.


[root@bin]# sh -x ./apachectl status
+ ACMD=status
+ ARGV=status
+ HTTPD=/usr/local/rail_apache/bin/httpd
+ test -f /usr/local/rail_apache/bin/envvars
+ . /usr/local/rail_apache/bin/envvars
++ test x '!=' x
++ LD_LIBRARY_PATH=/usr/local/rail_apache/lib
++ export LD_LIBRARY_PATH
+ LYNX='links -dump'
+ STATUSURL=http://example.com:80/server-status
++ ulimit -H -n
+ ULIMIT_MAX_FILES='ulimit -S -n 4096'
+ '[' 'xulimit -S -n 4096' '!=' x ']'
+ ulimit -S -n 4096
+ ERROR=0
+ '[' xstatus = x ']'
+ case $ACMD in
+ links -dump http://example.com:80/server-status
+ awk ' /process$/ { print; exit } { print } '
                                   Not Found

   The requested URL /server-status was not found on this server.
+ exit 0

    
por 08.08.2014 / 11:12