Magento cron.php ไม่ทำอะไรเลยหลังจากทำงาน


10

cron Magento ของฉันทำงานได้ตามปกติประมาณไม่กี่เดือนที่ผ่านมา แต่เมื่อเร็ว ๆ นี้มันหยุดสร้างตารางทันที คำสั่ง cron ทำงานได้ดีในโฮสติ้งเซิร์ฟเวอร์ของฉัน มันคือ Magento ver 1.8.0.0

นี่คือสิ่งที่ฉันได้ลอง:

  1. ฉันลองรัน cron.php ในเบราว์เซอร์และมันไม่ได้สร้างตารางในตาราง cron_schedule

  2. ติดตั้งส่วนขยาย AOE Scheduler โดยหวังว่าจะสามารถแก้ปัญหาได้ ฉันสามารถสร้างตารางโดยใช้ส่วนขยายนี้ได้ แต่ Magento cron ไม่สามารถเรียกใช้กำหนดการ cron ได้

  3. ติดตั้ง Magento ver 1.8.0.0 ใหม่ในการโฮสต์เซิร์ฟเวอร์จากนั้นเรียกใช้ cron.php ในเบราว์เซอร์ตาราง cron_schedule ยังคงว่างเปล่า

  4. ติดตั้ง Magento ver 1.8.0.0 ใหม่ใน localhost ของฉันแล้วดำเนินการ cron.php ในเบราว์เซอร์มันสร้างตาราง ดังนั้นฉันพยายามอัปโหลดไปยังเซิร์ฟเวอร์ที่โฮสต์ ฉันล้างแคชของวีโอไอพีจากนั้นเรียกใช้ cron.php ในเบราว์เซอร์ไม่มีอะไรน่าประหลาดใจเกิดขึ้นในตาราง cron_schedule แต่มันทำงานได้ดีใน localhost ของฉัน

ฉันมีเว็บไซต์ Magento เวอร์ชั่น 1.7.0.2 อื่นในเซิร์ฟเวอร์โฮสต์เดียวกัน cron ทำงานได้ดี

ฉันยังไม่รู้ว่าสาเหตุของปัญหานี้คืออะไรฉันจึงโพสต์ไว้ที่นี่ หวังว่าใครบางคนมีปัญหาเดียวกันและแบ่งปันวิธีแก้ปัญหา


2
ฉันพบปัญหาที่คล้ายกันหลายเดือนที่ผ่านมา ตัวแปล php บรรทัดคำสั่งมีการกำหนดค่า php.ini แยกต่างหากและ memory_limit ถูกตั้งค่าต่ำเกินไปดังนั้นงาน cron จะล้มเหลว ไม่แน่ใจว่านี่เป็นปัญหาของคุณหรือไม่
Fiasco Labs

memory_limit เป็น 256M /usr/bin/wget http://www.mysite.com/cron.php >/dev/null 2>&1และนี่คือการใช้คำสั่งฉัน
Wakanina

คำตอบ:


24

ฉันพบวิธีแก้ปัญหาในฟอรัม ( ลิงก์ไม่ออนไลน์อีกต่อไป )

ก่อนหน้านี้ฉันพยายามติดตั้ง Magento 1.7.0.2 ในโฮสติ้งเซิร์ฟเวอร์ของฉันและ cron ทำงานได้ดี ดังนั้นฉันจึงสันนิษฐานว่าโฮสติ้งของฉันไม่สามารถเรียกใช้ Magento 1.8.0.0 cron ได้ดังนั้นฉันจึงวางแผนที่จะลดระดับเว็บไซต์ Magento เป็น 1.7.0.2 แต่ก่อนที่ฉันจะลดระดับเว็บไซต์ของฉันฉันพบวิธีแก้ไขปัญหาบนลิงก์ด้านบน

  • แก้ไขไฟล์ cron.php
  • หลังจาก$isShellDisabled = (stripos(PHP_OS, ‘win’) === false) ? $isShellDisabled : true; ประมาณ # 47 เพิ่มบรรทัดของรหัสนี้

    $isShellDisabled = true;

และตอนนี้ My Magento 1.8.0.0 cron ทำงานได้อย่างสมบูรณ์แบบ


ในกรณีของฉันฉันกำลังทำงานบนเซิร์ฟเวอร์ที่ไม่ได้ให้อะไรนอกจากความปวดหัวเนื่องจากการกำหนดค่าที่ไม่ชัดเจน นี่เป็นวิธีเดียวที่ฉันจะให้ cron วิ่งได้
pspahn

มันใช้งานได้ดี แต่เปลี่ยนชื่อได้ดีขึ้นเป็น eq cron89128923489.php;)
user956584

มันก็ใช้ได้กับฉันเช่นกัน อาจเป็นเรื่องของข้อ จำกัด การเข้าถึงเชลล์
แดเนียลเวสต์

ลิงก์มี MageBayVaporated ...
Fiasco Labs

ฉันอธิบายว่าเหตุใดวิธีแก้ปัญหานี้จึงใช้งานได้และสิ่งที่เป็นโซลูชันที่แท้จริงที่นี่: magento.stackexchange.com/questions/137130/ …
Fabian Schmengler

11

ทางออกที่ Wakanina มอบให้ฉัน อย่างไรก็ตามการเปลี่ยนไฟล์ cron.php นั้นไม่สามารถยอมรับได้ในนโยบายของเรา สิ่งที่แปลกคือฉันได้ติดตั้งเว็บไซต์ของฉันบนเซิร์ฟเวอร์สองเครื่อง (ด้วยระบบปฏิบัติการรุ่นเดียวกัน, PHP) และบนเซิร์ฟเวอร์หนึ่งมันทำงาน cron เมื่อ cron.php ถูกดำเนินการและไม่มีเซิร์ฟเวอร์อื่นเกิดขึ้น

ดังนั้นต้องลองใช้โซลูชันที่ดีกว่าซึ่งจะทำให้หลักฐานการอัพเกรดเว็บไซต์ของฉัน

แทนที่จะเรียกใช้ cron.php ตอนนี้ฉันกำลังเรียกใช้cron.shผ่านcrontab -eเนื่องจาก Linux ใช้เป็นเซิร์ฟเวอร์ OS


2
นี่คือวิธีที่ควรทำ
Robbie Averill

2

ปัญหานี้ไม่ได้ถูกกำหนดไว้ในเซิร์ฟเวอร์magento_root/cron.php crontabเราจำเป็นต้องเพิ่มไฟล์นี้ใน crontab เพื่อให้มันทำงานสำหรับเราดังต่อไปนี้

# crontab -l (this command will list all the Cron jobs in Crontab)

ควรมีรายการสำหรับไฟล์ magento_root / cron.php ถ้าไม่เราต้องเพิ่มไฟล์นี้เพราะไฟล์นี้มีหน้าที่รับผิดชอบในการเริ่มงาน Magento Cron ของคุณ ดังนั้นเราต้องแก้ไข Crontab ดังนี้

# crontab -e

เพิ่มคำสั่งต่อไปนี้ในไฟล์และปิดหลังจากบันทึก

* / 5 * * * * wget -O / dev / null -q path_to_magento_root / cron.php> / dev / null

สำหรับข้อมูลเพิ่มเติมโปรดเยี่ยมชมลิงค์นี้

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