Проблема с разрешением на работу в Cron?
Crontab.xml :
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Cron:etc/crontab.xsd">
<group id="default">
<job name="test_product_import" instance="Test\ImportExport\Cron\ProductImport" method="execute">
<schedule>* * * * *</schedule>
</job>
</group>
</config>
Php-файл, вызываемый cron:
<?php
namespace Test\ImportExport\Cron;
class ProductImport
{
protected $trace;
public function __construct(
\Test\Core\Model\Trace $trace
)
{
$this->trace = $trace;
}
public function execute()
{
$this->trace->writeTrace("Test");
}
}
Сообщение об ошибке в таблице cron_schedule:
Предупреждение: открыть(app/code/Test/Trace.txt): не удалось открыть поток: Нет такого файла или каталога в /var/www/www.example.com/app/code/Test/Core/Model/Trace.php в строке 12
В строке 12 в этом файле:
$tracelog = fopen("app/code/Test/Trace.txt", "a") or die("Unable to open file!");
В SSH я выполнил
Php magento cron: выполнить
И я получил ошибка. Поскольку я предполагаю проблему с разрешением, я попытался
Sudo-u www-данные php magento cron: выполнить
Та же проблема. Что случилось?
1
1 answers
Я смог решить эту проблему.
$tracelog = fopen("app/code/Test/Trace.txt", "a") or die("Unable to open file!");
Мне пришлось указать абсолютный путь к файлу вместо относительного, как показано выше.
0
Author: Jens, 2018-01-28 18:43:54