porta local 8080 não responde, mas usando 127.0.0.1:8080 funciona

1

Quando tento acessar o locahost: 8080, obtenho

The localhost page isn’t working

localhost didn’t send any data.
ERR_EMPTY_RESPONSE

mas se eu tentar:

127.0.0.1:8080, recebo a resposta que estou procurando

Eu acredito que isso tem algo a ver com o httpd (apache) que acabei de atualizar com httpd24 homebrew (httpd.2.4)?

Eu segui as instruções para atualização deste site: link

    
por pixel 67 10.12.2016 / 18:32

1 resposta

2

Depois de instalar o link com brew, você tem dois ambientes de servidor web Apache completamente diferentes:

  1. brew's httpd24
  2. o http: // macOS / OS X original

Ambos possuem diferentes arquivos de configuração e binários apachectl (e outros). O primeiro é instalado em / usr / local / Cellar / httpd24 e seus binários são vinculados a / usr / local / bin. Os binários relacionados ao http do macOS estão localizados em / usr / sbin.

Dependendo da sua variável PATH (insira echo $PATH para obtê-lo) sudo apachectl [cmd] controla o primeiro ou o segundo ambiente do Apache.

Depois de instalar o brew, o PATH padrão deve ser /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin , o que favorece o httpd24 do brew. Você pode controlar o Apache do macOS usando o caminho completo (/ usr / sbin / apachectl).

Se você tem um caminho diferente que não favorece / usr / local / bin sobre / usr / sbin é o contrário. Para obter o caminho do apachectl favorito , você também pode simplesmente inserir which apachectl .

Verifique isso com /usr/local/bin/apachectl -S , o que deve render:

VirtualHost configuration:
ServerRoot: "/usr/local/opt/httpd24"
Main DocumentRoot: "/usr/local/var/www/htdocs"
Main ErrorLog: "/usr/local/var/log/apache2/error_log"
Mutex default: dir="/usr/local/var/run/apache2/" mechanism=default 
Mutex mpm-accept: using_defaults
PidFile: "/usr/local/var/run/apache2/httpd.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="daemon" id=1 not_used
Group: name="daemon" id=1 not_used

e /usr/sbin/apachectl -S

VirtualHost configuration:
ServerRoot: "/usr"
Main DocumentRoot: "/Library/WebServer/Documents"
Main ErrorLog: "/private/var/log/apache2/error_log"
Mutex default: dir="/private/var/run/" mechanism=default 
Mutex mpm-accept: using_defaults
Mutex proxy-balancer-shm: using_defaults
Mutex proxy: using_defaults
PidFile: "/private/var/run/httpd.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="_www" id=70 not_used
Group: name="_www" id=70 not_used

Existem não arquivos / pastas usados mutuamente.

Eles também usam arquivos de configuração padrão diferentes:

/usr/local/bin/apachectl -t -D DUMP_INCLUDES
Included configuration files:
  (*) /usr/local/etc/apache2/2.4/httpd.conf

O comando não funciona corretamente para o apachectl original (macOS) e apenas produz: Sintaxe OK.

Se você executar ambos os httpds (configurando diferentes portas aqui: 80: macOS; 8080 httpd24 - verifique isso nos respectivos arquivos de configuração) ps -aef | grep httpd | grep -v grep mostrará o seguinte:

  0    76     1   0  4:54pm ??         0:00.13 /usr/local/opt/httpd24/bin/httpd -D FOREGROUND
  1   219    76   0  4:54pm ??         0:00.00 /usr/local/opt/httpd24/bin/httpd -D FOREGROUND
  1   220    76   0  4:54pm ??         0:00.00 /usr/local/opt/httpd24/bin/httpd -D FOREGROUND
  1   221    76   0  4:54pm ??         0:00.00 /usr/local/opt/httpd24/bin/httpd -D FOREGROUND
  1   222    76   0  4:54pm ??         0:00.00 /usr/local/opt/httpd24/bin/httpd -D FOREGROUND
  1   223    76   0  4:54pm ??         0:00.00 /usr/local/opt/httpd24/bin/httpd -D FOREGROUND
  1  4239    76   0  5:06pm ??         0:00.00 /usr/local/opt/httpd24/bin/httpd -D FOREGROUND
  0  8251     1   0  5:45pm ??         0:00.08 /usr/sbin/httpd -D FOREGROUND
 70  8261  8251   0  5:46pm ??         0:00.00 /usr/sbin/httpd -D FOREGROUND

Os primeiros sete pids pertencem ao httpd24, os dois últimos ao http do macOS - verifique os caminhos binários listados! e nmap localhost :

Starting Nmap 7.31 ( https://nmap.org ) at 2016-12-22 18:00 CET
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00039s latency).
Other addresses for localhost (not scanned): ::1 fe80::1
Not shown: 499 closed ports, 498 filtered ports
PORT     STATE SERVICE
80/tcp   open  http
8080/tcp open  http-proxy

Na sua mensagem de bate-papo particular , você pode ver claramente que o httpd24 não é strong> em execução, mas o httpd do macOS é .

Para desativar o http do macOS, basta executar sudo /usr/sbin/apachectl stop e adicionalmente sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist (apenas para ter certeza).

Em seguida, copie o método brew service start ... parando o serviço e instalando um daemon plist real, como recomendado no how-to vinculado.

sudo cp -v /usr/local/Cellar/httpd24/2.4.23_2/homebrew.mxcl.httpd24.plist /Library/LaunchDaemons
sudo chown -v root:wheel /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist
sudo chmod -v 644 /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist
sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.httpd24.plist

Reinicie. Se você ainda receber um erro ao se conectar com o localhost: 8080 ao seu site de desenvolvedor local, comente fe80::1%lo0 localhost em / etc / hosts. No meu ambiente funciona com esta linha embora.

Após investigações posteriores, verifica-se que um proxy da Web configurado incorretamente (parte do Internet Security / Antivirus da ESET) é o culpado. Ao adicionar uma% adequada de localhost , deve ser possível resolver o problema.

    
por 22.12.2016 / 18:22