macos: Depois de iniciar o apache, a porta e o DocumentRoot estão errados

0

O Apache costumava trabalhar na minha máquina, ontem à noite eu parei e agora não consigo que funcione novamente.

Eu tenho um index.html em /Library/WebServer/Documents , que também é definido como DocumentRoot in /etc/apache2/httpd.conf . Neste arquivo, há apenas a palavra TEST . Não há mais nada no diretório. Eu iniciei o apache com sudo apachectl start , o que não produziu uma mensagem de erro.

Ainda assim, em localhost:80 , recebo um erro de conexão. Curiosamente, quando eu vou para localhost:8080 , recebo a mensagem padrão 'It works' do apache. Isso deixa de funcionar quando eu paro o apache com sudo apachectl stop . Tentei isso em vários navegadores com a limpeza do cache, então esse não é o problema.

Eu usei o diretório /etc/apache2 inteiro para mencionar 8080, sem resultados. Eu estou começando a pensar que não estou executando o programa que eu espero, ou outra versão que está configurada em outro lugar. Alguma idéia?

    
por 1nterference 16.05.2017 / 12:58

1 resposta

0

Para ver qual arquivo de configuração está sendo usado, é necessário ver de onde o apache está sendo executado e, em seguida, executá-lo com a opção -V para ver suas opções de configuração. Este one-liner encontrará um processo apache em execução e imprimirá a configuração:

$(ps ax -o comm | grep -m 1 '[a]pache\|[h]ttpd') -V

A localização do arquivo de configuração está na linha D SERVER_CONFIG_FILE . O meu está em /private/etc/apache2/httpd.conf .

A localização do arquivo de configuração é definida quando o Apache é compilado. No entanto, você pode alterar isso passando a opção -f para o Apache quando ele for iniciado .

O Apache no seu sistema provavelmente foi iniciado pelo launchd. Você pode encontrar o arquivo plist correto usando este:

grep -lRi 'httpd\|apache' /Library/Launch*/ ~/Library/LaunchAgents/

Eu tenho um plist que carrega o apache em /Library/LaunchDaemons/homebrew.mxcl.httpd22.plist .

Para especificar um arquivo de configuração diferente, é necessário editar os argumentos do programa para passar a opção -f com o caminho do arquivo de configuração, por exemplo,

<array>
    <string>/usr/local/opt/httpd22/bin/httpd</string>
    <string>-D</string>
    <string>FOREGROUND</string>
    <string>-f</string>
    <string>/path/to/httpd.conf</string>
  </array>

A reinicialização aplicaria as alterações.

    
por 16.05.2017 / 23:59