Пытается выполнить сценарий bash на том же сервере (другом проекте) из codeigniter, но сценарий возвращает 504

Я создал метод в контроллере, который проверяет среду и запускает оттуда shell_exec ('. /Var/scripts/somescript.sh') и выводит сообщение

это пример кода

/**
 * Run this script
 */
function my_script()
{
    if ($this->params['purge'])
    {
        if ($this->is_ajax())
            {
                if (ENVIRONMENT == 'production') 
                {
                     $data['output'] = shell_exec(". /var/prod/www/script.sh 2>&1");
                     $data['message'] = "Task completed";
                }
                elseif (ENVIRONMENT == 'staging')
                {
                    $data['output'] = shell_exec(". /var/stag/www/script.sh 2>&1");
                    $data['message'] = "Task completed";
                }
                elseif (ENVIRONMENT == 'testing') 
                {
                    $data['output'] = shell_exec(". /var/dev/www/script.sh 2>&1");
                    $data['message'] = "Task Completed";
                }
                $this->output_json(true, $data, array('key_order'=>true));
            }
    }

    $this->add_js('tools/my_file');
    $this->view->breadcrumbs()->add('Run the script');
    $this->display('tools/myfile.php');
}

Теперь я сделал представление и с помощью кнопки, которая запускает этот метод codeigniter через javascript

$(function() {
$('.btn-purge').click(function() {

    if (confirm("This will run the aforementioned script, Click OK to confirm"))
    {
         $.get('/dashboard/tools/my_file?purge=1', function(rtn) {

             if (rtn.status !== true)
             {
                 alert("Failed to run script");
             }
             else
             {
                 //alert(rtn.data)
                 $("pre.result").css("display", "block");
                 $("pre.result").text(rtn.data.output);
             }
          });
    }

});

});

Теперь этот script.sh присутствует в другом проекте, размещенном на том же сервере, и имеет время выполнения ~ 10 минут.

Любая помощь будет оценена

Непонятно, что вы уже пытались сделать для решения этой проблемы. Каков ожидаемый результат и каков фактический результат? Возвращаются ли вообще какие-либо данные клиенту? Он пытается запустить скрипт, но безуспешно? Вы добавляли отладку в сценарий оболочки, чтобы увидеть, запускается ли он? Если вы используете exec() вместо shell_exec(), получите ли вы полезный код выхода?

Jerry 19.12.2018 00:46

@jerry сценарий является частью симфонического проекта и отвечает за очистку кешей и заполнение индексов этого приложения. Теперь этот сценарий отлично работает как задание cron и после выполнения отображает сообщение «Кэш очищен». Теперь я не могу понять, почему я не могу запустить его из кода, я попытался создать небольшой сценарий bash в своей локальной среде и попытался запустить его из этого представления, и он работает.

NEEDNONAME 19.12.2018 15:55
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
29
0

Другие вопросы по теме