пытается выполнить bash-скрипт на том же сервере (другой проект) из codeigniter, но скрипт возвращает 504 - PullRequest
0 голосов
/ 19 декабря 2018

Я создал метод в контроллере, который проверяет среду и запускает 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 мини-минут выполнения.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...