Score:0

Apache2 บน Ubuntu EC2 หยุดทำงานและไม่รีสตาร์ท

ธง cn

ประวัติศาสตร์:

เราย้ายการติดตั้ง Codeigniter 3 จาก Bluehost เป็น T3.2xlarge อินสแตนซ์เดียวนั้นโฮสต์ apache2 และเซิร์ฟเวอร์ mysql เป็นฐานข้อมูลในเครื่อง

บน Bluehost อินสแตนซ์ทำงานได้ดี การย้ายข้อมูลเสร็จสิ้นเนื่องจาก Bluehost มีปัญหาขัดข้อง และเราต้องการโฮสติ้งที่เชื่อถือได้มากขึ้น


ข้อผิดพลาด

เนื่องจากการโยกย้ายเพจจึงสุ่มหยุดทำงานอย่างสมบูรณ์ พยายามรีสตาร์ท apache2 ด้วย:

sudo บริการ apache2 รีสตาร์ท

ใช้งานไม่ได้ ต้องรีบูตอินสแตนซ์ EC2 ใหม่ทั้งหมดเพื่อให้บริการทำงานอีกครั้ง หลังจากรีบูต EC2 แล้ว apache2 และ mysql กำลังทำงาน และหน้านี้เปิดขึ้นโดยไม่เริ่มบริการหลังจากรีบูตอินสแตนซ์


ความพยายามแก้ไขข้อบกพร่อง 1

เนื่องจากหน้านี้หยุดทำงานเมื่อมีการเรียกใช้ฐานข้อมูลอย่างเข้มงวด ฉันถือว่าเซิร์ฟเวอร์ mysql เป็นจุดคอขวด การโอนย้ายฐานข้อมูลทั้งหมดไปยัง RDS แบบไร้เซิร์ฟเวอร์ควรขจัดปัญหาคอขวดที่เกี่ยวข้องกับฐานข้อมูลทั้งหมด ตอนนี้ crons ที่เข้มข้นของฐานข้อมูลเดียวกันกำลังจะสิ้นสุดลงแล้ว เพื่อกำจัด cron ที่เป็นสาเหตุของระบบล่ม ฉันโคลน EC2 และใช้โคลนเพื่อรัน cron ในขณะที่โฮสต์ดั้งเดิมของเว็บเพจที่โดเมนชี้ไป

อย่างไรก็ตาม การหยุดทำงานแบบสุ่มยังคงมีอยู่


ความพยายามแก้ไขข้อบกพร่อง 2

สมมติว่าเป็นปัญหาหน่วยความจำ หลังจากตรวจสอบ phpinfi.php ฉันเห็นว่า PHP มี RAM 128Mb (บนเครื่อง 32Gb) ดังนั้นเพื่อดูว่า RAM มากขึ้นช่วยได้หรือไม่:

  1. memory_limit ตั้งเป็น 8192Mb
  2. รีบูต EC2
  3. รีสตาร์ท php7.4-fpm
  4. รีสตาร์ท apache2

phpinfo ยืนยันว่า memory_limit ถูกตั้งค่าเป็น 8192M

การหยุดทำงานแบบสุ่มยังคงมีอยู่


ความพยายามแก้ไขข้อบกพร่อง 3

ตรวจสอบคำสั่ง:

sudo apache2ctl -t

ผลตอบแทน:

ไวยากรณ์ตกลง

ตรวจสอบคำสั่ง:

นาโน /var/log/apache2/error.log

ประกอบด้วย:

[mpm_worker:notice] AH00295: จับ SIGTERM ได้ กำลังปิดเครื่อง

ดังนั้นฉันคิดว่า Apache กำลังปิดตัวลงด้วยเหตุผลบางอย่าง แต่ไม่สามารถเริ่มต้นใหม่ได้

ตรวจสอบคำสั่ง:

sudo บริการ apache2 รีสตาร์ท

ไม่โยนข้อผิดพลาด

ตรวจสอบคำสั่ง:

sudo apache2ctl รีสตาร์ท

ไม่โยนข้อผิดพลาด

ตรวจสอบคำสั่ง:

/usr/sbin/apache2 -V

แสดง:

[core:warn] [pid 24560] AH00111: กำหนดค่าตัวแปร ${APACHE_RUN_DIR} คือ ไม่ได้กำหนดไว้

apache2: ข้อผิดพลาดทางไวยากรณ์ในบรรทัดที่ 81 ของ /etc/apache2/apache2.conf: DefaultRuntimeDir ต้องเป็น

ไดเร็กทอรีที่ถูกต้อง สัมบูรณ์หรือสัมพันธ์กับ ServerRoot

เวอร์ชันเซิร์ฟเวอร์: Apache/2.4.41 (Ubuntu)

เซิร์ฟเวอร์ที่สร้างขึ้น: 2022-03-16T16:52:53

หมายเลข Magic Module ของเซิร์ฟเวอร์: 20120211:88

โหลดเซิร์ฟเวอร์: APR 1.6.5, APR-UTIL 1.6.1

รวบรวมโดยใช้: APR 1.6.5, APR-UTIL 1.6.1

สถาปัตยกรรม: 64 บิต

MPM ของเซิร์ฟเวอร์:

เซิร์ฟเวอร์คอมไพล์ด้วย....

-D APR_HAS_SENDFILE

-D APR_HAS_MMAP

-D APR_HAVE_IPV6 (เปิดใช้งานที่อยู่ IPv4 ที่แมป)

-D APR_USE_SYSVSEM_SERIALIZE

-D APR_USE_PTHREAD_SERIALIZE

-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT

-D APR_HAS_OTHER_CHILD

-D AP_HAVE_RELIABLE_PIPED_LOGS

-D DYNAMIC_MODULE_LIMIT=256

-D HTTPD_ROOT="/etc/apache2"

-D SUEXEC_BIN="/usr/lib/apache2/suexec"

-D DEFAULT_PIDLOG="/var/run/apache2.pid"

-D DEFAULT_SCOREBOARD="บันทึก/apache_runtime_status"

-D DEFAULT_ERRORLOG="บันทึก/ข้อผิดพลาด_บันทึก"

-D AP_TYPES_CONFIG_FILE="mime.types"

-D SERVER_CONFIG_FILE="apache2.conf"

ที่ฉันสามารถเห็นได้ 2 สิ่ง:

  • มีปัญหากับ ${APACHE_RUN_DIR}
  • MPM ของเซิร์ฟเวอร์ไม่ส่งคืน MPM

ตรวจสอบคำสั่ง:

 apache2 -l

ผลตอบแทน:

รวบรวมในโมดูล:
core.c
mod_so.c
mod_watchdog.ค
http_core.c
mod_log_config.c
mod_logio.c
mod_version.ค
mod_unixd.c

สิ่งที่ไม่แสดงโมดูล MPM

ตรวจสอบคำสั่ง:

apache2 -l
apache2ctl -l

ผลตอบแทน:

รวบรวมในโมดูล:
core.c
mod_so.c
mod_watchdog.ค
http_core.c
mod_log_config.c
mod_logio.c
mod_version.ค
mod_unixd.c

ตรวจสอบคำสั่ง:

a2query -M

ผลตอบแทน:

คนงาน


คำถาม:

และนี่คือจุดที่ฉันติดอยู่ตอนนี้ มีอะไรอีกบ้างที่ฉันสามารถตรวจสอบหรืออ่านได้จากความพยายามในการดีบัก 3 เพื่อดูว่าเหตุใด apache จึงหยุด/ไม่รีสตาร์ทและต้องรีบูตเซิร์ฟเวอร์ทั้งหมด

Wilson Hauck avatar
jp flag
URL นี้อาจช่วยคุณแก้ไขตัวแปรที่ขาดหายไปของ APACHE_RUN_DIR https://www.osradar.com/ah00111-config-variable-apache_run_dir-is-not-defined/ ขอให้โชคดี. ครอบคลุมหนึ่งปัญหาต่อวัน = ความคืบหน้า

โพสต์คำตอบ

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