หมายเหตุ: ปรากฎว่าไม่มีปัญหาใดๆ เลย ดูความคิดเห็นสำหรับรายละเอียด
ฉันเพิ่งได้รับอินสแตนซ์ใหม่จาก Oracle Cloud, Ubuntu 20.04 ย่อเล็กสุด
เนื่องจากฉันพยายามเรียกใช้ DokuWiki บนอินสแตนซ์นี้ ฉันจึงได้ติดตั้งแพ็คเกจเหล่านี้:
sudo apt ติดตั้งเครื่องมือสุทธิ lsof wget nano
sudo apt ติดตั้ง php7.4-fpm php7.4-xml php7.4-mbstring imagemagick nginx certbot python3-certbot-nginx
ฉันไม่เคยสัมผัส nginx.conf
ใน /etc/nginx
แต่ลบไปแล้ว ค่าเริ่มต้น
เชื่อมโยงเข้า /etc/sites-enabled
และใส่ไฟล์ conf ของตัวเองเข้าไป /etc/nginx/conf.d
พร้อมชื่อ ตัวอย่าง.com.conf
(ชื่อจริงถูกปกปิดแม้ว่า)
เซิร์ฟเวอร์ {
ฟัง 80 default_server;
server_name example.com;
ราก /var/www/dokuwiki;
ดัชนี index.php index.html;
ที่ตั้ง / {
try_files $uri $uri/ @dokuwiki;
}
ที่ตั้ง @dokuwiki {
เขียนใหม่ ^/_media/(.*) /lib/exe/fetch.php?media=$1 ล่าสุด;
เขียนใหม่ ^/_detail/(.*) /lib/exe/detail.php?media=$1 ล่าสุด;
เขียนใหม่ ^/_export/([^/]+)/(.*) /doku.php?do=export_$1&id=$2 สุดท้าย;
เขียนใหม่ ^/(.*) /doku.php?id=$1&$args สุดท้าย;
}
ตำแหน่ง ~ \.php$ {
รวมตัวอย่าง/fastcgi-php.conf;
fastcgi_pass ยูนิกซ์:/var/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
รวม fastcgi_params;
}
สถานที่ ~ /(conf|bin|inc|vendor)/ {
ปฏิเสธทั้งหมด
}
ตำแหน่ง ~ /data/ {
ภายใน;
}
}
และแน่นอนว่า, /var/www/dokuwiki
เป็นของ www-ข้อมูล
(ทั้งผู้ใช้และกลุ่ม) ด้วยคำสั่งนี้:
sudo chown -R www-data:www-data /var/www/dokuwiki
ปัญหาคือ ฉันไม่สามารถเข้าถึงเว็บไซต์ของฉันได้ เมื่อฉันพิมพ์ จิงซ์
ในเทอร์มินัล มันร้องแบบนี้:
nginx: [emerg] bind() ถึง 0.0.0.0:80 ล้มเหลว (98: ที่อยู่ที่ใช้งานแล้ว)
nginx: [emerg] bind() ถึง 0.0.0.0:80 ล้มเหลว (98: ที่อยู่ที่ใช้งานแล้ว)
nginx: [emerg] bind() ถึง 0.0.0.0:80 ล้มเหลว (98: ที่อยู่ที่ใช้งานแล้ว)
nginx: [emerg] bind() ถึง 0.0.0.0:80 ล้มเหลว (98: ที่อยู่ที่ใช้งานแล้ว)
nginx: [emerg] bind() ถึง 0.0.0.0:80 ล้มเหลว (98: ที่อยู่ที่ใช้งานแล้ว)
nginx: [emerg] ยังไม่สามารถผูกได้ ()
แต่ฉันตรวจสอบแล้วว่าไม่มี อาปาเช่2
สิ่งที่เหมือนและไม่มีกระบวนการอื่นใดที่รับฟังพอร์ต 80
root@redacted:~# lsof -i :80
คำสั่ง PID ผู้ใช้ ประเภท FD ขนาดอุปกรณ์/ปิด ชื่อโหนด
nginx 1296 รูท 6u IPv4 32966 0t0 TCP *:http (ฟัง)
nginx 1297 www-data 6u IPv4 32966 0t0 TCP *:http (ฟัง)
nginx 1298 www-data 6u IPv4 32966 0t0 TCP *:http (ฟัง)
root@redacted:~# systemctl สถานะ nginx
â nginx.service - เว็บเซิร์ฟเวอร์ประสิทธิภาพสูงและเซิร์ฟเวอร์พร็อกซีย้อนกลับ
โหลดแล้ว: โหลดแล้ว (/lib/systemd/system/nginx.service; เปิดใช้งาน; การตั้งค่าล่วงหน้าของผู้ขาย: เปิดใช้งาน)
ใช้งานอยู่: ใช้งาน (ทำงาน) ตั้งแต่วันเสาร์ 2021-11-06 13:24:23 UTC; 16 นาทีที่แล้ว
เอกสาร: man:nginx(8)
กระบวนการ: 1294 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process บน; (รหัส=ออก, สถานะ=0/สำเร็จ)
กระบวนการ: 1295 ExecStart=/usr/sbin/nginx -g daemon on; master_process บน; (รหัส=ออก, สถานะ=0/สำเร็จ)
PID หลัก: 1296 (nginx)
งาน: 3 (จำกัด: 1110)
หน่วยความจำ: 3.1M
CGroup: /system.slice/nginx.service
ââ1296 nginx: กระบวนการหลัก /usr/sbin/nginx -g daemon เปิด; master_process บน;
ââ1297 nginx: กระบวนการของผู้ปฏิบัติงาน
ââ1298 nginx: กระบวนการของผู้ปฏิบัติงาน
06 พ.ย. 13:24:23 แก้ไข systemd[1]: การเริ่มต้นเว็บเซิร์ฟเวอร์ประสิทธิภาพสูงและพร็อกซีเซิร์ฟเวอร์ย้อนกลับ...
06 พ.ย. 13:24:23 แก้ไข systemd[1]: เริ่มต้นเว็บเซิร์ฟเวอร์ประสิทธิภาพสูงและพร็อกซีเซิร์ฟเวอร์ย้อนกลับ
root@redacted:~# ฟิวเซอร์ -v 80/tcp
คำสั่งการเข้าถึง PID ของผู้ใช้
80/tcp: รูท 1296 F.... nginx
www-ข้อมูล 1297 F.... nginx
www-ข้อมูล 1298 F.... nginx
เพราะไม่ได้แตะ nginx.conf
, nginx -t
กำลังบอกว่าไม่มีข้อผิดพลาด แต่การตรวจสอบ .conf
ไฟล์ล้มเหลว:
root@redacted:~# nginx -tc /etc/nginx/conf.d/example.com.conf
nginx: [emerg] ไม่อนุญาตให้ใช้คำสั่ง "เซิร์ฟเวอร์" ที่นี่ใน /etc/nginx/conf.d/example.com.conf:1
nginx: การทดสอบไฟล์การกำหนดค่า /etc/nginx/conf.d/example.com.conf ล้มเหลว
แต่ฉันคิดว่านี่ไม่เกี่ยวข้องกับปัญหานี้ (ไม่แน่ใจ)
แม้แต่การฆ่ากระบวนการทั้งหมดโดยใช้พอร์ต 80 ก็ไม่ได้ผลเช่นกัน
ฉันค้นหา google เพื่อแก้ปัญหานี้แล้ว แต่ไม่พบวิธีใดที่ใช้การได้
ปล. ฉันเปิดพอร์ตจาก iptables
และแผงเว็บ OC ดังนั้นสิ่งที่พอร์ตจะไม่ใช่สาเหตุของปัญหานี้ฉันคิดว่า