O Apache não inicia automaticamente após a reinicialização de uma Caixa Vagrant do Scientific Linux

1

Toda vez que eu reinicio minha caixa Scientific Linux, tenho o problema que é não iniciar o Apache Web Server ( httpd ).

Eu tenho que fazer isso manualmente com este código:

[vagrant@magento ~]$ sudo service httpd restart
Stopping httpd:                                            [FAILED]
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
                                                           [  OK  ]

Eu tenho uma configuração semelhante em uma caixa do Vagrant com o Ubuntu 12.04 Server que iniciou os serviços httpd corretamente, então qual é a dica de fazer com que um servidor Apache do Linux Scientific inicialize o httpd automaticamente?

Sempre que uso o comando: vagrant reload em meu prompt de comando, o servidor web não obtém o serviço httpd e eu tenho que usar o comando restart ( sudo service httpd restart ) para obtê-lo. Mas eu quero essa função automaticamente como no meu Ubuntu 12.04 antes (precise64). Portanto, o fator decisivo não é a linha entre a mensagem Failed e OK, o problema é que ele está no status FAILED após uma reinicialização.

Atualização: tentou sua boa ideia instantânea! Mas eu determino que todos os 3 níveis de execução (3,4,5) já estão no status ON. Este é o meu status atual:

   34  [vagrant@example ~]$ chkconfig --list
   35  crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off
   36  htcacheclean    0:off   1:off   2:off   3:off   4:off   5:off   6:off
   37  httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off
   38  ip6tables       0:off   1:off   2:on    3:on    4:on    5:on    6:off
   39  iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off
   40  lvm2-monitor    0:off   1:on    2:on    3:on    4:on    5:on    6:off
   41  mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off
   42  netconsole      0:off   1:off   2:off   3:off   4:off   5:off   6:off
   43  netfs           0:off   1:off   2:off   3:on    4:on    5:on    6:off
   44  network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
   45  postfix         0:off   1:off   2:on    3:on    4:on    5:on    6:off
   46  rdisc           0:off   1:off   2:off   3:off   4:off   5:off   6:off
   47  rsyslog         0:off   1:off   2:on    3:on    4:on    5:on    6:off
   48  saslauthd       0:off   1:off   2:off   3:off   4:off   5:off   6:off
   49  sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
   50  udev-post       0:off   1:on    2:on    3:on    4:on    5:on    6:off
   51  vboxadd         0:off   1:off   2:on    3:on    4:on    5:on    6:off
   52  vboxadd-service 0:off   1:off   2:on    3:on    4:on    5:on    6:off
   53  vboxadd-x11     0:off   1:off   2:off   3:on    4:off   5:on    6:off
   54  [vagrant@magento ~]$ chkconfig --list | egrep '(apache|httpd)'
   55  httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off
    
por Knorke 17.07.2013 / 15:30

3 respostas

2

Nós temos o mesmo problema. Para nós, isso é causado pelo fato do Apache contar com arquivos compartilhados que são montados pelo Vagrant. Isso faz com que o Apache falhe durante o carregamento.

Nas versões anteriores do Vagrant, os scripts de provisionamento eram sempre executados na inicialização / reinicialização, portanto, o Apache seria reiniciado depois que os compartilhamentos de rede fossem anexados.

    
por 06.11.2013 / 01:53
2

Eu tenho enfrentado o mesmo problema ao configurar meu ambiente de desenvolvimento também com o vagrant.

Acho que uma das suas entradas do documentRoot está em uma unidade compartilhada. Porque vagrant está montando estes após a inicialização (e o apache é iniciado antes) o serviço apache não pode iniciar (raiz do documento ausente)

Consegui resolvê-lo usando este tutorial na net. Pessoalmente, acabei usando o método SysVInit porque não consegui fazer isso com o upstart. Você pode facilmente transferi-lo para o SystemD Você só precisa alterar /etc/init.d/httpd [command] para systemctl [command] http.service Você também pode usar service httpd start

link

JeroenED

    
por 05.03.2015 / 15:07
1

Dado o som disso, o problema é que o Apache não está "ligado" por padrão depois que você faz "recarregamento do vagrant". Acredito que "vagrant reload" simula o que aconteceria se você "ligasse e desligasse" a máquina virtual. Parece que você gostaria de ter o daemon do Apache em execução após a inicialização da máquina virtual.

Eu fui ao site da Scientific Linux. Ele afirma que a distribuição subjacente é baseada no "Enterprise Linux". Eu normalmente interpretaria isso como "RedHat Enterprise Linux". Se isso estiver incorreto, me avise.

A maneira de ligar / desligar os serviços com base no nível de execução do sistema operacional é geralmente tratada via "chkconfig". Primeiro, confirmo quais serviços estão ativados e desativados.

chkconfig --list 

Você deve obter uma tonelada de saída com linhas que aparecem assim:

gpm    0:off 1:off 2:off 3:off 4:off 5:off 6:off

A primeira coluna é o nome do serviço e, em seguida, a coluna subsequente contém pares de valores que são <runlevel>:<on|off> . Portanto, na linha acima, o serviço gpm está desativado em todos os runlevels.

Se eu fosse você, filtraria a saída e procuraria "httpd" ou "apache" entre a lista de serviços:

chkconfig --list | egrep '(apache|httpd)'

Na minha caixa RHEL, recebo o seguinte:

httpd   0:off 1:off 2:off 3:off 4:off 5:off 6:off

O nível de execução padrão é geralmente o número "3". Em seguida, eu cortaria esse serviço "on" para executar os níveis 3, 4 e 5 da seguinte forma:

chkconfig --level 345 httpd on

Mesmo que isso seja feito, você ainda precisaria reiniciar o serviço manualmente se ele estivesse desativado quando você trouxesse a VM:

service httpd start

O aviso de diretiva ServerName pode ser ignorado, mas você terá que especificar manualmente o endereço IP especificado para a VM quando foi provisionado, se quiser realmente ver o conteúdo da Web que a VM está fornecendo. Eu consultaria a seção "Private Networking" da documentação do Vagrant.

Espero que isso ajude!

    
por 17.07.2013 / 16:53