Вітаю дорогі читачі мого блогу !

Сьогодні мова піде про передачу сесій php між під доменами наприклад є домен example.org потрібно щоб сесія була доступна на srv1.example.org і srv2.example.org і srv3.example.org для цього ми будемо використовувати COOKIE

що би передати PHPSESSID у них на піддомени

в налаштуваннях php нам потрібно зробити наступне :

session.use_cookies = 1

session.name = PHPSESSID

а в самих скріптах звідки відбудеться авторизація :

ini_set( ‘session.cookie_domain’, ‘.example.org’ );
session_set_cookie_params (0, ‘/’, ‘.example.org’);

і також бажано для 100% працездатності добавити :

setcookie(‘PHPSESSID’, session_id(), 0, ‘/’, ‘.example.org’);

Цього достатньо для того щоб передати сесію з скажемо піддомена srv1.example.org на інші,

а в них повинне бути наступне :

ini_set( ‘session.cookie_domain’, ‘.example.org’ );
session_set_cookie_params (0, ‘/’, ‘.example.org’);

у  результаті отримуємо дані з сесій на під доменах

але врахуйте якщо файли сесій зберігаються на одному сервері, а отримати їх ми хочемо з іншого то іншому серверу потрібно буде якось ці дані отримати тобто у віддаленого сервера повинен бути доступ до файлів сесій.

Якщо є така конфігурація то краще усього сесії помістити в бд mysql чи redis тоді дані будуть доступні усюди без залежності від віддаленості хоста.

На цьому усе з вами був Taras Kramarets aka ~NiX~.

До нових зустрічей в ефірі 😉