Score:0

การตั้งค่า Apache บน BigSur (ส่งคืน ERR_CONNECTION_REFUSED)

ธง cn

ประการแรก ฉันได้อ่านบทช่วยสอนมากมาย ฉันพยายามอยู่หลายชั่วโมงในช่วงวันสุดท้าย (เพราะฉันรู้ว่ามีคำถามและบทช่วยสอนที่คล้ายกันหลายพันล้านครั้งสำหรับสิ่งเดียวกันมาก่อน) แต่ฉันอยู่ในจุดจบ... :-(

ไซต์ล่าสุดที่ฉันติดตาม (และตรวจสอบหลายครั้ง) คือ 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/. ก่อนที่ฉันจะลอง https://medium.com/nerd-for-tech/how-to-run-apache-php-on-mac-os-big-sur-7ffbf7cbef7bแต่พวกเขาดูคล้ายกันมาก

สิ่งที่ฉันมี

  • อาปาเช่ 2.4.46 (apachectl -v)

  • php 7.3.24 (php -v)

  • ควรตั้งค่า Apache ให้ถูกต้อง หยุดและเริ่มต้น

  • sudo apachectl กำหนดค่าการทดสอบ ผลตอบแทน ไวยากรณ์ตกลง

  • ใน /etc/apache2/httpd.conf ฉันได้ตั้งค่า DocumentRoot และ <ไดเรกทอรี ... ถึง /ผู้ใช้/ชื่อผู้ใช้/ไซต์/

  • /ผู้ใช้/ชื่อผู้ใช้/ไซต์ มี chmod 777

  • /ผู้ใช้/ชื่อผู้ใช้/ไซต์ แสดงเนื้อหาไดเร็กทอรีให้ฉัน (เส้นทางถูกต้อง)

  • /etc/apache2/extra/httpd-vhosts.conf ถูกตั้งค่าเป็น (ที่มา 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>
    

ผลลัพธ์
ส่งผลให้ทั้งคู่ http://localhost และ http://localhost/~ชื่อผู้ใช้ คืนฉัน ERR_CONNECTION_REFUSED.

ฉันตรวจสอบทั้งหมดแล้ว .conf การตั้งค่าไฟล์ด้วย macbook รุ่นเก่าของฉันและมันดูคล้ายกันมากในทั้งสองเครื่อง ... :-(

ความคิดใดที่อาจเป็นปัญหา ฉันสามารถใส่ข้อมูลเพิ่มเติมได้ที่นี่ (คัดลอกเนื้อหาไฟล์ conf อะไรก็ได้) ถ้าจำเป็น... ฉันสิ้นหวังนิดหน่อย... :-(

ขอบคุณ!

แก้ไข

ps -ขวาน | grep '[h]ttpd' ผลตอบแทน

14994 ?? 0:00.51 /usr/sbin/httpd -D เบื้องหน้า
14997 ?? 0:00.01 /usr/sbin/httpd -D เบื้องหน้า
15002 ?? 0:00.01 /usr/sbin/httpd -D เบื้องหน้า
15040 ?? 0:00.00 /usr/sbin/httpd -D เบื้องหน้า
15042 ?? 0:00.00 /usr/sbin/httpd -D เบื้องหน้า
15043 ?? 0:00.00 /usr/sbin/httpd -D เบื้องหน้า

sudo lsof -a -iTCP -sTCP:LISTEN -c httpd ผลตอบแทน

คำสั่ง PID ผู้ใช้ ประเภท FD ขนาดอุปกรณ์/ปิด ชื่อโหนด
httpd 14994 รูท 4u IPv6 0xbbfd6axxxxxxxxxx 0t0 TCP *:http (ฟัง)
httpd 14997 _www 4u IPv6 0xbbfd6axxxxxxxxxx 0t0 TCP *:http (ฟัง)
httpd 15002 _www 4u IPv6 0xbbfd6axxxxxxxxxx 0t0 TCP *:http (ฟัง)
httpd 15040 _www 4u IPv6 0xbbfd6axxxxxxxxxx 0t0 TCP *:http (ฟัง)
httpd 15042 _www 4u IPv6 0xbbfd6axxxxxxxxxx 0t0 TCP *:http (ฟัง)
httpd 15043 _www 4u IPv6 0xbbfd6axxxxxxxxxx 0t0 TCP *:http (ฟัง)
ph flag
Apache ใช้งานได้จริงหรือไม่ ตรวจสอบด้วย `ps -ax | grep '[h]ttpd'` (โปรดทราบว่าหากกำลังทำงานอยู่ คุณอาจเห็นหลายกระบวนการ) หากกำลังทำงานอยู่ ให้ตรวจสอบว่ากำลังฟังการเชื่อมต่อขาเข้าด้วย `sudo lsof -a -iTCP -sTCP:LISTEN -c httpd`
pavel avatar
cn flag
@GordonDavisson ขอบคุณสำหรับความคิดเห็นของคุณ ผลลัพธ์ทั้งสองถูกเพิ่มเข้าไปในคำถาม (ขออภัยฉันไม่สามารถบอกได้ว่ากำลังทำงานอยู่หรือไม่)
ph flag
เอาต์พุต `lsof` ระบุว่ากำลังฟังการเชื่อมต่อ IPv6 แต่ไม่ใช่สำหรับ IPv4; ฉันไม่รู้ว่าอะไรเป็นสาเหตุ แต่นั่นคือสิ่งที่ฉันจะตั้งใจพยายามค้นหา อันที่จริง การทดสอบอีกหนึ่งอย่าง: รัน `netstat -anv | grep '[.]80 .*LISTEN'` -- คุณจะเห็นบรรทัดที่ขึ้นต้นด้วย `tcp6` แสดงว่ากำลังฟังบน TCP ผ่าน IPv4 แต่จะแสดงบรรทัดที่ขึ้นต้นด้วย `tcp4` ด้วยหรือไม่ ถ้าเป็นเช่นนั้น แสดงว่ามีบางอย่างกำลังจับพอร์ตบน IPv4 และทำให้ Apache ไม่สามารถรับพอร์ตได้
pavel avatar
cn flag
@GordonDavisson ฉันได้รับสิ่งนี้ `tcp46 0 0 *.80 *.* LISTEN 131072 131072 18249 0 0x0080 0x0000000e`
pavel avatar
cn flag
@GordonDavisson: _ ถ้าเป็นเช่นนั้น แสดงว่ามีอย่างอื่นกำลังจับพอร์ตบน IPv4 และป้องกันไม่ให้ Apache ได้รับ _...หมายความว่ายังไงหรือต้องทำยังไง? หายเกลี้ยงเลย... :-(
ph flag
อันที่จริง หมายความว่าฉันตีความเอาต์พุต `lsof` ผิด -- จริง ๆ แล้วมันกำลังฟังทั้ง IPv6 และ IPv4 (นั่นคือสิ่งที่ "tcp46" ที่จุดเริ่มต้นของเอาต์พุต `netstat` หมายถึง) และ `lsof` แสดงเฉพาะ v6 สำหรับบางคน เหตุผล. ดังนั้น... นี่ไม่ใช่ปัญหา แต่หมายความว่า Apache กำลังทำงานและกำลังฟังการเชื่อมต่อ ซึ่งโดยพื้นฐานแล้วหมายความว่า (และไฟล์ปรับแต่งและอะไรก็ตาม) ไม่ใช่ *ปัญหา ดูที่การกำหนดค่าเครือข่ายของคุณ สิ่งต่างๆ เช่น ไฟร์วอลล์ใดๆ ที่คุณกำลังใช้งาน พร็อกซี การกำหนดค่าเครือข่าย/VPN แปลกๆ เป็นต้น
ph flag
นอกจากนี้ แทนที่จะใช้ "localhost" ให้ลองใช้ที่อยู่ที่ชัดเจน: `http://127.0.0.1/` ฉันจะลองจากบรรทัดคำสั่งด้วย `curl http://127.0.0.1/`
pavel avatar
cn flag
@GordonDavisson ไม่มี VPN ไม่มีพร็อกซี... :-( `localhost` และ `127.0.0.1` ทำเช่นเดียวกัน (เปลี่ยนเส้นทางโดยอัตโนมัติไปที่ https และ `err_connection_refused`) `curl http://127.0.0.1` ส่งคืน `302` , `curl https://127.0.0.1` (หรือ `https://localhost`) ส่งคืน `curl: (7) ไม่สามารถเชื่อมต่อกับพอร์ต localhost 443: การเชื่อมต่อถูกปฏิเสธ`... ดูเหมือนว่าปัญหาจะเปลี่ยนเส้นทางโดยอัตโนมัติ เป็น https (ฉันพยายาม google แล้ว แต่ฉันไม่พบวิธีปิดใช้งาน)
pavel avatar
cn flag
@GordonDavisson ฉันได้ตั้งค่า HTTPS - เบราว์เซอร์ทำเครื่องหมาย URL ว่าไม่ปลอดภัย แต่ใช้งานได้ ... กรีนล็อคใน URL ฉันสามารถแก้ไขได้ในภายหลัง ... ขอบคุณที่สละเวลา!

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา