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;