Попросили разобраться с проблемой движок ShopScript – при логине в админку происходил редирект на site/published/login.php?from=/published/index.php и залогиниться никак не получалось.
Первым делом был изучен .htaccess, там подобного редиректа не было. Помог лог: /kernel/errors.log в нем было следующее:
2014-11-04 13:15. session_start() [function.session-start]: open(/var/lib/php/session/sess_cp4dmm7l72iadf7s7tjpi6edq3, O_RDWR) failed: Permission denied (13) File: /published/common/html/includes/httpcommon.php Line: 1089 Error #: 2
Казалось бы, что все ясно, не хватает прав на запись сессии – меняй права на директорию и радуйся, но я предпочла покопать дальше – почему это ему не хватает прав?!
Сессия хранится здесь /var/lib/php/session/, когда php запущен как CGI, а я была уверена, что он запущен как модуль apache.
Проверить как запущен php можно следующим образом:
1 2 3 4 5 |
$sapi = php_sapi_name(); if ($sapi=='cli') echo 'Запуск из командной строки'; elseif (substr($sapi,0,3)=='cgi') echo 'Запуск в режиме CGI'; elseif (substr($sapi,0,6)=='apache') echo 'Запуск в режиме модуля Apache'; else echo 'Запуск в режиме модуля сервера '.$sapi; |
Действительно, он был запущен как CGI – незадача.
Но у клиента был ISP manager, то все оказалось еще проще, достаточно было:
1. попасть в раздел WWW домены
2. выбрать домен, кликнуть на изменить и увидеть как запущен php, после чего поменять на нужный вариант и все)
Тадам!