Я пытаюсь получить переменные сеанса PHP в сценарий Perl CGI. Ниже приведен следующий Perl-код, который, кажется, работает для получения мне PHPSESSID, который я затем передаю в PHP :: Session вместе с каталогом, в котором хранятся файлы сеанса.
my $cookie_name='PHPSESSID';
my $sess_query = new CGI;
my $session_name = $sess_query->cookie($cookie_name);
my $session = PHP::Session->new($session_name,{save_path =>'/var/lib/php/session/'});
Моя проблема возникает, когда я получаю ошибку "Отказано в разрешении"
[Пт, 2 дек. 16:52:44 2011] upload.cgi: / var / lib / php / session / sess_417ar7qsh4sh853gqs3bj454i5: Отказано в доступе на /var/www/html/xxx/upload.cgi строке 22, реферер :. ..
Строка 22 - это строка PHP::Session->new
в приведенном выше коде.
Мой сервер httpd работает как пользователь apache, а скрипты cgi принадлежат apache, как и все файлы sesssion в /var/lib/php/session/
, поэтому мне интересно, почему скрипт CGI не сможет читать файлы сеанса.
Я читаю онлайн, где один человек использует LWP в качестве обходного пути, но это не мое предпочтение, так как я чувствую, что это что-то глупое в разрешениях, которые я пропускаю.
ОБНОВЛЕНИЕ: Добавлена информация - вот файлы сессий - как вы видите, файл сессий существует и принадлежит apache, но Perl-скрипт CGI не может их прочитать:
-rw-------. 1 apache apache 0 Dec 2 16:58 /var/lib/php/session/sess_417ar7qsh4sh853gqs3bj454i5
-rw-------. 1 apache apache 126 Dec 2 16:58 /var/lib/php/session/sess_f39ot5ul3bu55uu7d1rg3aqq02