Добрый день. У меня такая проблема. Создал форму, которая по нажатию кнопки должна запускать команду через drupal console. При нажатии приходит сообщение, что кнопку нажали, но ничего не происходит. Через htop не вижу нужный процесс который должен был запустится. Подскажите пожалуйста, в чём может быть проблема?
Вот код формы:
namespace Drupal\custom\Form;
use Drupal\Core\Form\FormBase;
use Drupal\Core\Form\FormStateInterface;
class ValidateProductsForm extends FormBase {
public function getFormId() {
return 'validate_products_form';
}
public function buildForm(array $form, FormStateInterface $form_state) {
$form['submit'] = [
'#type' => 'submit',
'#value' => 'Запустить проверку каталога',
'#button_type' => 'primary',
];
return $form;
}
public function submitForm(array &$form, FormStateInterface $form_state) {
shell_exec('drupal custom:validate_products');
$messenger = \Drupal::messenger();
$messenger->addMessage('Процесс запущен.');
}
}
Комментарии
Проверял что получается через dpm()
К примеру, если написать: $output = shell_exec('ls');
dpm($output) отработает нормально.
Если написать: $output = shell_exec('drupal');
dpm($output) на выходе получается NULL.
скорее всего у www_data нет прав на запуск этой команды