Điểm:0

Setting Apache on BigSur (returns ERR_CONNECTION_REFUSED)

lá cờ cn

Firstly I've read many tutorials, I'm trying for many hours during last days (because I know there were billion similar questions and tutorials for the same thing before) but I'm in the ends... :-(

The last site I've followed (and checked many times) was https://tech-cookbook.com/2020/11/14/setting-up-your-local-web-server-on-macos-big-sur-11-0-1-2020-mamp-macos-apache-mysql-php/. Before I've tried https://medium.com/nerd-for-tech/how-to-run-apache-php-on-mac-os-big-sur-7ffbf7cbef7b, but they looks very similar.

What I have

  • Apache 2.4.46 (apachectl -v)

  • php 7.3.24 (php -v)

  • Apache should be setted correctly. Stopped and started.

  • sudo apachectl configtest returns Syntax OK

  • in /etc/apache2/httpd.conf I have set DocumentRoot and <Directory ... to /Users/username/Sites/

  • /Users/username/Sites has chmod 777

  • /Users/username/Sites shows me directory content (path is correct)

  • /etc/apache2/extra/httpd-vhosts.conf is set to (source https://wpbeaches.com/set-up-virtual-hosts-on-macos-big-sur-11-in-apache/)

      <VirtualHost *:80>
          ServerName localhost
          DocumentRoot /Users/username/Sites/ 
          # I've tried: 
          ## insert value into "",
          ## localhost, 
          ## localhost/~username, 
          ## set localhost and ServerAlias to localhost/~username, etc.
      </VirtualHost>
    

Result
As result, both http://localhost and http://localhost/~username returns me ERR_CONNECTION_REFUSED.

I've checked all .conf files settings with my older macbook and they look very similar in both machines... :-(

Any idea where could be problem? I'm able to put here more additional information (copy conf files content, whatever) if needed... I'm a little bit hopeless... :-(

Thanks!

EDIT

ps -ax | grep '[h]ttpd' returns

14994 ??         0:00.51 /usr/sbin/httpd -D FOREGROUND
14997 ??         0:00.01 /usr/sbin/httpd -D FOREGROUND
15002 ??         0:00.01 /usr/sbin/httpd -D FOREGROUND
15040 ??         0:00.00 /usr/sbin/httpd -D FOREGROUND
15042 ??         0:00.00 /usr/sbin/httpd -D FOREGROUND
15043 ??         0:00.00 /usr/sbin/httpd -D FOREGROUND

sudo lsof -a -iTCP -sTCP:LISTEN -c httpd returns

COMMAND   PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
httpd   14994 root    4u  IPv6 0xbbfd6axxxxxxxxxx      0t0  TCP *:http (LISTEN)
httpd   14997 _www    4u  IPv6 0xbbfd6axxxxxxxxxx      0t0  TCP *:http (LISTEN)
httpd   15002 _www    4u  IPv6 0xbbfd6axxxxxxxxxx      0t0  TCP *:http (LISTEN)
httpd   15040 _www    4u  IPv6 0xbbfd6axxxxxxxxxx      0t0  TCP *:http (LISTEN)
httpd   15042 _www    4u  IPv6 0xbbfd6axxxxxxxxxx      0t0  TCP *:http (LISTEN)
httpd   15043 _www    4u  IPv6 0xbbfd6axxxxxxxxxx      0t0  TCP *:http (LISTEN)
lá cờ ph
Apache có thực sự chạy không? Kiểm tra với `ps -ax | grep '[h]ttpd'` (lưu ý rằng nếu nó đang chạy, có thể bạn sẽ thấy một số quy trình.) Nếu nó đang chạy, hãy kiểm tra xem nó có đang lắng nghe các kết nối đến với `sudo lsof -a -iTCP -sTCP:LISTEN -c httpd`
pavel avatar
lá cờ cn
@GordonDavisson cảm ơn vì nhận xét của bạn. Cả hai đầu ra đều được thêm vào câu hỏi (xin lỗi, tôi không thể biết liệu nó có chạy từ nó không)
lá cờ ph
Đầu ra `lsof` cho biết nó đang lắng nghe các kết nối IPv6, nhưng không phải cho IPv4; Tôi không biết điều gì đã gây ra điều đó, nhưng đó là điều tôi sẽ tập trung cố gắng tìm ra. Trên thực tế, một thử nghiệm nữa: chạy `netstat -anv | grep '[.]80 .*LISTEN'` -- bạn sẽ thấy một dòng bắt đầu bằng `tcp6` cho biết rằng nó đang nghe trên TCP qua IPv4, nhưng nó cũng hiển thị một dòng bắt đầu bằng `tcp4`? Nếu vậy, điều đó cho thấy rằng có thứ gì đó khác đang chiếm lấy cổng trên IPv4 và ngăn không cho Apache lấy được cổng đó.
pavel avatar
lá cờ cn
@GordonDavisson Tôi nhận được cái này `tcp46 0 0 *.80 *.* LISTEN 131072 131072 18249 0 0x0080 0x0000000e`
pavel avatar
lá cờ cn
@GordonDavisson: _Nếu vậy, điều đó cho thấy rằng có thứ gì đó khác đang lấy cổng trên IPv4 và ngăn Apache lấy nó. _... nó có nghĩa là gì, hay tôi nên làm gì? Tôi hoàn toàn lạc lối ... :-(
lá cờ ph
Trên thực tế, điều đó có nghĩa là tôi đã hiểu sai đầu ra `lsof` -- nó thực sự đang lắng nghe cả IPv6 và IPv4 (đó là ý nghĩa của "tcp46" ở đầu đầu ra `netstat`), và `lsof` chỉ hiển thị v6 cho một số lý do. Vì vậy... đây không phải là vấn đề. Nhưng điều đó có nghĩa là Apache đang chạy và lắng nghe các kết nối, điều đó về cơ bản có nghĩa là nó (và các tệp cấu hình của nó và những thứ khác) *không phải* là vấn đề. Vì vậy, hãy nhìn vào cấu hình mạng của bạn; những thứ như bất kỳ tường lửa nào bạn đang chạy, proxy, cấu hình mạng/VPN lạ, v.v.
lá cờ ph
Ngoài ra, thay vì sử dụng "localhost", hãy thử một địa chỉ rõ ràng: `http://127.0.0.1/`. Tôi cũng sẽ thử từ dòng lệnh, với `curl http://127.0.0.1/`.
pavel avatar
lá cờ cn
@GordonDavisson Không VPN, không proxy... :-( `localhost` và `127.0.0.1` làm tương tự (tự động chuyển hướng tới https và `err_connection_refused`). `curl http://127.0.0.1` trả về `302` , `curl https://127.0.0.1` (hoặc `https://localhost`) trả về `curl: (7) Không kết nối được với cổng localhost 443: Kết nối bị từ chối`... Có vẻ như sự cố nằm ở tự động chuyển hướng sang https (Tôi đã thử google nó và tôi không tìm được cách tắt nó)?
pavel avatar
lá cờ cn
@GordonDavisson Tôi đã đặt HTTPS - trình duyệt đánh dấu URL là không an toàn, nhưng nó hoạt động... Khóa màu xanh lá cây trong URL tôi có thể giải quyết sau... cảm ơn bạn đã dành thời gian!

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.