การวิเคราะห์สถานการณ์
จากบันทึกของคุณ:
ที่อยู่ที่ใช้งานแล้ว: AH00072: make_sock: ไม่สามารถผูกกับที่อยู่ [::]:80
ที่อยู่ที่ใช้งานแล้ว: AH00072: make_sock: ไม่สามารถผูกกับที่อยู่ 0.0.0.0:80
ไม่มีซ็อกเก็ตการฟัง กำลังปิดตัวลง
เกิดการชนกันเกี่ยวกับพอร์ต TCP 80 ของคุณ มีสองสาเหตุที่เป็นไปได้ของปัญหาในเซิร์ฟเวอร์ของคุณ:
- แอปพลิเคชันหรือบริการบางอย่างบนพื้นหลังใช้พอร์ต TCP 80 เดียวกันกับที่ Apache ต้องการใช้
- การตั้งค่าพอร์ต+ที่อยู่ / ซ็อกเก็ตไม่ถูกต้องอยู่ในการกำหนดค่า Apache ของคุณ เป็นเหตุผลที่น่าจะน้อยกว่า #1
สารละลาย
ติดตั้ง net-tools และใช้ netstat เพื่อรับข้อมูลว่ากระบวนการ/แอปพลิเคชันใดใช้ TCP 80 ในระบบของคุณ
sudo apt-get install net-tools
sudo netstat -lntp | grep -e ":80" -e "PID"
ตอนนี้คุณเห็นหมายเลขกระบวนการและชื่อแอปพลิเคชันที่ใช้พอร์ต 80 ปิดใช้งานแอปพลิเคชันนี้หรือเปลี่ยนการตั้งค่าแอปพลิเคชันเพื่อใช้พอร์ตอื่นที่ไม่ใช่ TCP 80
รายการกระบวนการโดยละเอียดที่ใช้สำหรับการค้นหารายละเอียดเกี่ยวกับแอปพลิเคชันที่กำลังรับฟังพอร์ต TCP ของคุณ:
ป.ล. -เอฟ
ps -aux
ค้นหาหมายเลขกระบวนการที่ได้รับจาก เน็ตสแตท
เอาต์พุต
คำตอบเพิ่มเติมหลังจากข้อมูลใหม่ในความคิดเห็น
จากการตอบสนองของคุณ ดูเหมือนว่าคุณมี Apache 2 อินสแตนซ์ที่ชนกัน
รีบูทเซิร์ฟเวอร์ของคุณ ในระบบ "สด" ใช้คำสั่งเหล่านี้และวางผลลัพธ์ที่นี่กับคำถามของคุณ
sudo sudo service --status-all | grep -i อาปาเช่
sudo systemctl --type บริการ --all | grep -i อาปาเช่
sudo ps -ef | grep -i อาปาเช่
sudo ps -aux | grep -i อาปาเช่
ls -l /etc/apache2/sites-enabled
grep -R "80" /etc/apache2
แก้ไข
(หลังจากวางข้อมูลใหม่โดย InsertRandomString ตามคำขอของฉัน)
คุณมีอินสแตนซ์ Apache ที่รันและฟังอยู่บนระบบของคุณแล้ว บริการ Apache ที่ทำงานอยู่จะแสดงในเอาต์พุตใหม่ที่คุณแนบ ไม่จำเป็นต้องติดตั้งเว็บเซิร์ฟเวอร์ใหม่ (Apache, Nginx...) อย่าติดตั้ง แต่ใช้สิ่งที่มีอยู่แล้ว
ตรวจสอบการทำงานของ Apache ด้วยเว็บเบราว์เซอร์ ใส่ที่อยู่ IP ของเซิร์ฟเวอร์ของคุณลงในช่องที่อยู่ของเว็บเบราว์เซอร์แล้วกด Enter คุณจะเห็นหน้า Apache เริ่มต้นที่ยืนยันว่าเซิร์ฟเวอร์ตกลง ตัวอย่างเช่น http://192.168.1.25
เว็บเซิร์ฟเวอร์ของคุณสามารถเผยแพร่ไซต์เสมือนได้มากขึ้นในโดเมนแยกต่างหากพร้อมกัน แต่ละคนต้องมีไฟล์ของตัวเองใน /etc/apache2/sites-available
ไดเร็กทอรีและใน /etc/apache2/sites-enabled
ด้วย. ใน /etc/sapache2/sites-enabled
เป็นเพียงลิงก์สัญลักษณ์ของไซต์ที่เปิดใช้งานเท่านั้น
คุณวางแผนที่จะใช้โดเมนและไซต์เสมือนจริงมากขึ้นบนเซิร์ฟเวอร์ของคุณหรือไม่?
- ถ้าใช่ ให้สร้างไฟล์ใหม่สำหรับไซต์ Nextcloud ใน
/etc/apache2/sites-available
และเชื่อมโยงไปยัง /etc/apache2/sites-enabled
. คุณต้องมีโดเมนพิเศษสำหรับไซต์ Nextcloud และต้องตั้งค่าระเบียน DNS ด้วย
- หากไม่มี ให้แก้ไขพารามิเตอร์เริ่มต้นของไซต์ใน
/etc/apache2/sites-available/000-default.conf
ไฟล์และตั้งค่าที่ถูกต้อง เช่น ชื่อไดเร็กทอรีที่มีไฟล์ Nextcloud PHP ทั้งหมดของคุณ ฯลฯ ไม่จำเป็น (แต่เป็นไปได้) ที่จะมีโดเมนพิเศษ ที่อยู่ IP ก็เพียงพอที่จะแสดงไซต์ Nextcloud ของคุณ
ฉันคิดว่าคุณรู้วิธีตั้งค่าไฟล์กำหนดค่า Apache เพื่อเผยแพร่ไซต์ Nextcloud เช่น /var/www/เน็กซ์คลาวด์
แทนหน้าเริ่มต้น /var/www/html
.
ในกรณีที่คุณต้องการใช้ Nextcloud กับที่อยู่ IP สาธารณะ จำเป็นอย่างยิ่งที่จะต้องกำหนดค่า SSL ใบรับรอง และเปิดใช้งานการเข้าถึง HTTPS ที่ปลอดภัยด้วย มิฉะนั้นชื่อผู้ใช้และรหัสผ่าน Nextcloud ของคุณอาจถูกดักจับและบุกรุกได้
บันทึกส่วนตัวของฉัน
Nextcloud นั้นไม่ง่ายอย่างที่คิด ต้องติดตั้งโมดูล PHP จำนวนมาก ต้องเตรียมฐานข้อมูล MySQL ฯลฯ แต่ฉันชอบบริการนี้มาก มันเป็นเครื่องมือที่ฉันชอบสำหรับการแชร์ข้อมูลและซิงโครไนซ์บนอุปกรณ์หลายเครื่อง