Dlaczego session_start zawiesza się podczas wywołania curlem?

0

Mam plik *.php, który pełni rolę.. ekhm.. controllera. Jest to jedna wielka procedura, w której są nasrane ify. Mam dwa wyjścia albo użyć patentu z curlem, albo przepisać 5tyś linii legacy kodu bez znajomości logiki biznesowej w nim zawartej. Wybrałem wyjście z curlem. Już spieszę z tłumaczeniem.

Otóż pewną czynność X da się wykonać z poziomu aplikacji (z przeglądarki), ale naszła potrzebna, żeby było to wrzucane do rabita i wykonywane z cli. Najszybszym możliwym rozwiązaniem jest wywołanie curlem spreparowanego requesta do aplikacji. Potrzebuję jednak być zalogowany, żeby cokolwiek zrobić.

Gdy wywołuję url'a to wszystko jest ok, aż kod nie dojdzie do session_start i tam następuje zamrożenie. Skrypt wykonuję jako www-data (sudo -u www-data php crm-worker.php), wszystkie sesje, które się tworzą w /var/lib/php5/sessions ownerem jest www-data. W ciachu przed session_start mam przekazane session_id z workera. Ma ktoś jakiś pomysł? session_start nic nie zwraca, bo się zawiesza.

            $get = "...." ;

            $curl = curl_init();
            curl_setopt($curl, CURLOPT_URL, $get);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
//            curl_setopt($curl, CURLOPT_COOKIEJAR, "/tmp/myCurlCookie.txt");
//            curl_setopt($curl, CURLOPT_COOKIEFILE, "/tmp/myCurlCookie.txt");
            curl_setopt($curl, CURLOPT_COOKIE, session_name() . '=' . session_id());
            $result = curl_exec($curl);
            curl_close($curl);
            var_dump($result);die;
0

Przed wywołaniem curl_exec trzeba dać session_write_close().

1 użytkowników online, w tym zalogowanych: 0, gości: 1