Apache ไม่สามารถรีสตาร์ทได้


71

พยายามรีสตาร์ท apache จากเทอร์มินัลโดยใช้คำสั่งต่อไปนี้:

 sudo service apache2 restart

เมื่อรันคำสั่งนั้นรับข้อผิดพลาดด้านล่าง:

Job for apache2.service failed. See "systemctl status apache2.service" and "journalctl -xe" for details.

ใน excuting "systemctl สถานะ apache2.service" ได้รับผลลัพธ์ด้านล่าง

apache2.service - (null)
   Loaded: loaded (/etc/init.d/apache2)
   Active: failed (Result: exit-code) since Sat 2015-05-30 02:22:41 IST; 12s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 4866 ExecStart=/etc/init.d/apache2 start (code=exited, status=1/FAILURE)

apache error.log

AH00489: Apache/2.4.12 (Unix) configured -- resuming normal operations
AH00094: Command line: '/usr/local/apache2/bin/httpd'

6
หลังจากที่คุณเรียกใช้ apache2 รีสตาร์ทและรับข้อผิดพลาดนั้นให้เรียกใช้sudo journalctl -xeซึ่งจะทำให้คุณมีความคิดที่ดีขึ้นเกี่ยวกับสิ่งที่เกิดขึ้น หากคุณยังคงมีปัญหาในการทำความเข้าใจ โพสต์ผลลัพธ์ที่นี่
grag42

ตกลง. นั่นไม่ได้ช่วยฉันเหมือนกัน สิ่งที่อยู่ในไฟล์บันทึก apache /var/log/apache2/error.log
grag42

@ grag42 ขอบคุณสำหรับคำแนะนำของคุณฉันใช้ sudo journalctl -xe และพบปัญหากฎการเขียนซ้ำอยู่ที่นั่นและได้แก้ไขและใช้งานได้ในขณะนี้
Gautam Savaliya

4
สำเนาที่เป็นไปได้ของApache ไม่เริ่มต้น
rancho

3
@rancho: อะไรทำให้คุณเชื่อว่าคำถามนั้นซ้ำกัน คำถามที่เชื่อมโยงประกอบด้วยข้อความแสดงข้อผิดพลาดที่ค่อนข้างเฉพาะซึ่งเราไม่ได้อยู่ที่นี่ สาเหตุที่เป็นไปได้สำหรับปัญหาของ OP ยังไม่ชัดเจนในขณะนี้
David Foerster

คำตอบ:


61

อาจจะช่วยในการค้นหาสาเหตุ:

journalctl | tail

ในกรณีของฉันมันเป็นความผิดพลาดในไฟล์กำหนดค่า:

AH00526: Syntax error on line 5 of /etc/apache2/sites-enabled/mydomain-wsf.lan.conf

6
No journal files were found.
Stevie G

5
@StevieG ลองsudo journalctl | tail
Dherik

1
คุณทำอะไรเพื่อแก้ไขปัญหา
LéoLéopold Hertz 준영

ในกรณีของฉันฉันทำผิดในไฟล์
apache2.config ด้วย

ขอบคุณ ฉันพิมพ์ไดเรกทอรีของฉันผิดสำหรับเว็บไซต์ conf ที่เพิ่งเพิ่มเข้าไปใหม่
Lynnell Emmanuel Neri

48

apache2.confมีบางอย่างผิดพลาดทางไวยากรณ์ในไฟล์คือ

ในเทอร์มินัลพิมพ์:

cd /etc/apache2

แล้ว:

apache2ctl configtest

มันจะแสดงให้คุณเห็นว่ามีข้อผิดพลาดในapache2.confไฟล์ที่จะแก้ไข


1
วิธีการที่ดีเยี่ยม, ประหยัดเวลาของฉัน
George Garchagudashvili

1
มันยอดเยี่ยมมาก
หยุดงาน

1
ขอบคุณ เกิดปัญหากับตัวเลือก redmine และ PassengerResolveSymlinksInDocumentRoot
Vadim

ฮ่า ๆ หลังจากรัน: apache2ctl configtestมีไวยากรณ์ ok แต่เมื่อฉันทำงานapache2 --helpได้apache2: Syntax error on line 82 of /etc/apache2/apache2.conf: DefaultRuntimeDir must be a valid directory, absolute or relative to ServerRoot และไม่มีข้อผิดพลาดใน apache error.log!
Vladimir Ch

หลังจากดูอย่างใกล้ชิดกับ/etc/apache2/sites-enabled/dir ฉันสังเกตเห็นว่าฉันได้รับไฟล์ไม่ใช่ linc สัญลักษณ์ไปที่ site.conf + mod ที่เปิดใช้งานได้ php5.6 (sudo a2dismod php5.6; sudo a2enmod php5.6) บริการ apache2 ของฉันเริ่มต้นโดยไม่มี "ohh- อ่า "
วลาดิมีร์ Ch

18

ปัญหาเกิดขึ้นเนื่องจากไฟล์การกำหนดค่าบางไฟล์ถูกลบคุณต้องติดตั้งใหม่

ติดตั้ง APACHE2 อีกครั้ง:

ในการแทนที่ไฟล์การกำหนดค่าที่ถูกลบโดยไม่ต้องกำจัดแพ็คเกจคุณสามารถทำได้:

sudo apt-get -o DPkg::Options::="--force-confmiss" --reinstall install apache2

หากต้องการลบไฟล์กำหนดค่า apache2 อย่างสมบูรณ์คุณควร:

sudo apt-get purge apache2

ซึ่งจะช่วยให้คุณติดตั้งใหม่ได้ตามปกติด้วย:

sudo apt-get install apache2

จำเป็นต้องล้างเพื่อลบไฟล์กำหนดค่าทั้งหมด - หากคุณลบไฟล์กำหนดค่า แต่ลบแพ็คเกจเท่านั้นดังนั้นไฟล์จำนี้และการตั้งค่าที่จำได้และหายไปจะไม่ถูกติดตั้งใหม่ตามค่าเริ่มต้น

จากนั้นติดตั้ง PHP5 อีกครั้ง:

apt-get purge libapache2-mod-php5 php5 && \
apt-get install libapache2-mod-php5 php5

1
ทำไมคุณถึงคิดว่าไฟล์การกำหนดค่าบางอย่างถูกลบไปแล้ว?
LéoLéopold Hertz 준영

2

ปัญหา:

Job for apache2.service failed because the control process exited with error code. See "systemctl status apache2.service" and "journalctl -xe" for details.

วิธีการแก้:

  • หากต้องการลบไฟล์กำหนดค่า apache2 อย่างสมบูรณ์คุณควร:

    1) sudo apt-get purge apache2

  • ซึ่งจะช่วยให้คุณติดตั้งใหม่ได้ตามปกติด้วย:

    2) sudo apt-get install apache2

==> ทำงานได้ดี ...

ขอบคุณ ....


2

ฉันได้รับข้อผิดพลาดเดียวกันหลังจากลบโฮสต์เสมือน แต่ปัญหาก็คือเอ้อระเหยไฟล์ SSL conf /etc/apache2/sites-enabledที่เกี่ยวข้องกับพื้นที่ที่ตั้งอยู่ใน SSL ผ่านการเข้ารหัสของ Let's ดังนั้นรหัสสำหรับฉันที่จะลบคือ:

sudo rm yourdomain.com-le-ssl.conf

1

ฉันได้รับข้อผิดพลาดเดียวกันขณะทำงานกับ. htaccess

ฉันแค่ใส่คำสั่งนี้

<Directory /var/www/html>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
</Directory>

ใน/etc/apache2/sites-enabled/000-default.confโฟลเดอร์นี้

หลังจากเพิ่มนี้ฉันได้รับข้อผิดพลาด

จากนั้นฉันก็ลบคำสั่งสันติภาพเหล่านี้จากไฟล์และข้อผิดพลาดของฉันได้รับการแก้ไข


1

คุณน่าจะมีข้อผิดพลาดทางไวยากรณ์ สำหรับฉันมันอยู่ในโฟลเดอร์ 'ที่เปิดใช้งานไซต์' ของฉัน

ฉันสะกดผิด 'ServerAlias' เป็น 'ServerAlisa'


ฉันเป็นคนสะกดผิดโฟลเดอร์ของฉัน
Lynnell Emmanuel Neri

0

นี่เป็นข้อผิดพลาดการกำหนดค่าส่วนใหญ่ ตอนนี้ฉันเพิ่งเปิดใช้งานไซต์เก่าบน apache สิ่งที่ทำให้เกิดข้อผิดพลาดนี้ ดังนั้นฉันต้องปิดการใช้งานก่อนที่จะโหลด apache

sudo a2dissite <my-site>
sudo service apache2 reload

แก้ไขปัญหา :)


0

ขอขอบคุณสำหรับความช่วยเหลือของคุณ! ฉันสามารถติดตั้งได้อย่างถูกต้องด้วย Solution:

หากต้องการลบไฟล์กำหนดค่า apache2 อย่างสมบูรณ์คุณควร:

  1. sudo apt-get purge apache2 ซึ่งจะช่วยให้คุณติดตั้งใหม่ได้ตามปกติด้วย:

  2. sudo apt-get install apache 2

ตอนนี้มันใช้งานได้ดี


0

ฉันคิดว่าปัญหาคือคุณเปิดใช้งานบางไซต์ แต่คุณลบไฟล์การกำหนดค่า ลองปิดการใช้งานเว็บไซต์ด้วย sudo a2dissite "name" แล้วรีสตาร์ทเซิร์ฟเวอร์ apache อย่างน้อยนี่เป็นปัญหาสำหรับฉันและการกระทำนี้แก้ไขได้


0

apt upgradeในกรณีของข้อผิดพลาดเริ่มปรากฏให้เห็นหลังจากที่ทำ หลังจากเล่นเป็นจำนวนมากฉันไปที่ไดเรกทอรีต่อไปนี้เพื่อดูสิ่งที่ฉันสามารถปิดการใช้งาน

  • / etc / apache2 / mods-enabled - a2dismod (เพื่อเปิดอีกครั้งa2enconf)
  • / etc / apache2 / conf-enabled - a2disconf (เพื่อเปิดอีกครั้งa2enconf)

ในกรณีของฉันฉันต้องเปิดใช้งาน MODS เหล่านั้น

ป้อนคำอธิบายรูปภาพที่นี่

ดูเหมือนว่าapt-upgradeจะต้องมีการลบ / ทำลาย php7.2 เพราะทันทีที่ฉันปิดการใช้งานและรีสตาร์ททุกอย่างทำงาน แน่นอนในกรณีของคนอื่นมันอาจจะเป็นสิ่งที่แตกต่าง เมื่อ Apache ขัดข้องอาจเป็น config ที่ไม่ดีหรือ mod ที่ไม่ดี คุณต้องเลือกการต่อสู้ของคุณ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.