[�ۡ���] -> [Aache + PHP + PostgreSQL �¸���]

�ݡ����륵���ȡʥ��å����λ��Ȥߡ�

�ݡ����륵���Ȥ�����

��ۤɤθĿ;��󸡺������ƥ�ϡ�ï�Ǥ�Ȥ��Ƥ��ޤ��ޤ�������������Ȥ�äѤ����꤬¿���Ȼפ��ޤ��������ǡ����ְ��̤Υݡ����륵���Ȥʤ륷���ƥ��ޤͤơ��������󤷤��桼����˰ۤʤ�����ɽ������褦�ʥ���ץ���äƤߤ����Ȼפ��ޤ���

�äƤ��ޤ���Ԥ��ʤ��Dz������͡�

�Ǥ⤽�����ˡ����å����ˤĤ��������򤷤Ƥ����ʤ��Ȥ����ޤ���

���å����Ȥ�

���å����ȤϤ��������ʰ�̣������ޤ�����Web �����ƥ�Υץ�����ߥ󥰤˸��ꤹ��С��֥桼���Υ����������Ф��ƥ桼������ѿ����ݻ�����פȤ��������ˤʤ�ޤ���Web �����ƥ�Ǥϡ�����ڡ����˥��������������Υڡ����˥������������硢���δ֤Ǥ��ѿ����ݻ�����ޤ��󡣤������GET��POST ��Ȥä��ͤ��Ϥ����ȤϽ���ޤ�������PHP ���ѿ����ݻ��פˤϤۤɱ󤤤�Τ�����ޤ���

�㤨�С�My Yahoo �ʤɤΤ褦�ʥݡ����륵���Ȥ䡢hotmail �ʤɤΤ褦�ʥե꡼�᡼��ϡ��Ȥ��Ȥ��˺ǽ�˥�������򤷤ޤ������Υڡ����˰ܤäƤ⡢�������󤷤��桼����ͭ�Υڡ�����ɽ�����ޤ����ե꡼�᡼��Ǥϡ��������󤹤�Ȥ��Υ桼���μ����᡼�뤬ɽ�����졢�᡼����������Ȥ��Υ桼����̾���Ǻ�������ޤ���

�Ȥ������Ȥϡ��������󤷤��Ȥ��ξ����ɤ����˻��äƤ���Ϥ��Ǥ�����������GET �� POST �ǥ���������������Ϥ��Ƥ����ͻҤϤ���ޤ��󡣤����ԤäƤ��������λ��Ȥߤ򡢥��å����ȸ����ޤ��ʤ����ޤ��ˤ͡ˡ�

¿���Υ����ƥ�Ǥϡ�����������ʤɤˡ�������¦�ǥ��å�����������ޤ������饤����ȡʥ֥饦���ˤˤϡ�������¦�Ǻ����������å�����ͭ�� ID ������ޤ������� ID �򥻥å���� ID �ȸƤӡ�����ξ��ϥ��å����Ȥ��ƥ��å���� ID �򥯥饤����Ȥ�����ޤ���

���饤����Ȥϡ����å���� ID �������Ƥ���ȡ����Υ����������饻�å���� ID ���������ޤ��ʥ��å���� ID �����å���������ˡ�������¦�ϡ������Ƥ������å���� ID �˳������륻�å���󤬤���ȡ����饤����Ȥȥ��å������ӤĤ��ޤ�������ˤ�ꡢ������¦�ϥ桼��������Ǥ��ʥ��å���� ID �Ͻ�ʣ���ʤ��ˡ����å�����ץ�����फ��Ȥ���褦�ˤ��ޤ���

���Υ��å���� ID �Τ������ǡ�ʣ���Υڡ����ˤޤ������ѿ����ݻ������ꡢ�桼����˸�ͭ���ѿ����ݻ�����������ΤǤ���

�����顢�ݡ����륵���Ȥ�ե꡼�᡼���¿���ϡ����å�����������������ˤ��Ʋ������ȥ��ʥ��󥹤��Ƥ��ޤ���

PHP �Ǥϡ����Υ��å����λ��Ȥߤ򥵥ݡ��Ȥ��Ƥ��ơ�session_ �ǻϤޤ�ؿ���������ˤ�����ޤ���������Ȥ����򸫤Ƥ����ޤ��礦��

���å����λȤ���

�ޤ��ϡ����̾夫���ͤ����Ϥ��������ͤ򥻥å����˳�Ǽ����¾�Υڡ�������Ǥ⤽���ͤ򻲾ȤǤ���Τ��ǧ���Ƥߤޤ��礦��

�ȡ��������˳�ǧ���Ƥ������Ȥ�����ޤ���PHP �Υǥե���ȤΥ��å����λ��Ȥߤ��ȡ����å����˳�Ǽ�����ͤ򤢤�ǥ��쥯�ȥ���ˡ��ե�����Ȥ�����¸���ޤ������äơ��ǥ��쥯�ȥ�˽񤭹��ߤǤ��ʤ��Ȥ����ޤ���

���Υǥ��쥯�ȥ�ϡ�php.ini �� session.save_path �Ȥ���������ܤ˻��ꤵ��Ƥ��ޤ������Υǥ��쥯�ȥ���Ф��ơ�Apache �μ¹ԥ桼����httpd.conf �� User, Group �ǥ��쥯�ƥ��֤ǻ��ꤷ����Ρˤǽ񤭹��ߤ�Ԥ��ޤ������äơ����Υ桼���ǽ񤭹��ߤǤ���褦�����ꤹ��ɬ�פ�����ޤ���Apache �� nobody �桼����ư���褦�����ꤷ�Ƥ��äơ�php.ini �� session.save_path = /var/run/php �Ȼ��ꤷ����硢

> su -
# cd /var/run
# mkdir php
# chown nobody
# chmod 700 php

�������������פ��Ȼפ��ޤ����ޤ������å�������¸���������Ǥ���

// ���å������ѿ�����Ͽ�ʰ���Ū�˥��å�������ϡ�
session_register("s_name");
// �ѿ����ͤ��Ǽ
$HTTP_SESSION_VARS["s_name"] = "abc";

session_register �ǥ��å�������¸����̾������Ͽ���ޤ���HTTP_SESSION_VARS �Ȥ���Ϣ������ˡ���ۤ���¸����̾���򥭡����ͤ򥻥åȤ��ޤ�����������ǥ��å�������¸����ޤ���

���ϡ�������¸���줿�ͤ�ɽ�����Ƥߤޤ��礦��

// ���å����򳫻ϡʥ��å���� ID �ȥ��å������ӤĤ����
session_start();
// �ͤ�ɽ��
echo($HTTP_SESSION_VARS['s_name']);

session_start �ؿ���¹Ԥ��뤳�Ȥˤ�ꡢ���饤����Ȥ��������Ƥ������å���� ID �򸵤˥��å������ӤĤ���HTTP_SESSION_VARS �ѿ���Ȥä��ͤ˥��������Ǥ���褦�ˤʤ�ޤ����ȤƤ��ñ�Ǥ��͡�

���ʤߤˡ�session_start �ϡ����å�������Ϥ��뤿��� HTML �ʤɤ�ʸ�������Ϥ�������˸ƤӽФ�ɬ�פ�����ޤ����ޤ���session_register �⡢session_start ���ƤФ�Ƥ��ʤ����ϡ����å�������Ϥ��ޤ����������äơ������Υե��������Ƭ�˽񤯤��ɤ��Ǥ��礦��

session_register ������˽񤭤������ϡ��ե��������Ƭ�� session_start ��ƤӽФ��Ƥ���������פǤ���

���λ����ǡ���ۤɺ��������ǥ��쥯�ȥ��/var/run/php�ˤβ��򸫤�ȡ��ե����뤬����Ƥ���Τ�ʬ����ޤ���

����Ū�˥��å������˴�����ˤϼ��Τ褦�ˤ��ޤ���

// ���å����򳫻ϡʥ��å���� ID �ȥ��å������ӤĤ����
session_start();
// ��ӤĤ��Ƥ��륻�å������˴�
session_destroy();

����ǡ����å���󤬴������˴�����ޤ������⤷���˴��ǤϤʤ������å����˴�Ϣ�Ť����Ƥ����ͤ������˴����������ϡ�session_unset ��Ȥ��ޤ������δؿ��ϡ����ˤ⤷���å������ѿ�����¸����Ƥ����顢������������ꥢ�����ƽ�������������ʤɤ����Ѥ��ޤ����㤨�Х�������ڡ����Ȥ����ʤΤǡ��������������˹Ԥ��ˤϡ����Τ褦�ˤ��ޤ���

session_start();
session_unset();
session_register("s_name");
$HTTP_SESSION_VARS["s_name"] = "abc";

���å����Υ���ץ�

����Ǥϡ��ºݤΥץ��������äƤߤޤ��礦��

�ݡ����륵����

��ۤɤϡ��Ŀ;��󸡺������ƥ����ޤ������������Ǥ�Ķ�ʰץݡ����륵���Ȥ��ꤿ���Ȼפ��ޤ����������뵡ǽ�ϼ��ε�ǽ�Ǥ���

��������Ǥ�������ץ�������ñ�����������Ǥ��͡����Ѥ���ơ��֥�Ǥ�������ĤΥơ��֥뤬ɬ�פǤ���

����ܤϥ桼���ǡ������Ǽ���Ƥ����ơ��֥�ǡ������ˤϡ��桼�� ID���ѥ���ɡ�̾�����Ǽ���Ƥ����ޤ�������ܤϡ��֥å��ޡ������Ǽ���Ƥ����ơ��֥�Ǥ���������ˤϡ��̤��ֹ桢URL���դ���̾����URL����Ͽ�����桼�� ID ���Ǽ���ޤ���

-- �桼���ޥ���
create table portal_user (
  userid   varchar(10) primary key,
  password varchar(30) not null,
  name     varchar(30) not null
);
-- �֥å��ޡ���
create table user_bookmarks (
  code     integer      primary key,
  name     varchar(100) not null,
  url      varchar(300),
  userid   varchar(10)
      references portal_user(userid),
);

�ǡ����Υơ��֥�򸵤ˡ��桼�������ε�ǽ�ȡ��֥å��ޡ�����������뵡ǽ���ä��Τǡ����ƤߤƲ�������

�������Ϥ����餫��ɤ���

���Υ���ץ�Ǥϡ��ơ��֥�˥�����������桼���Ȥ��ơ���www�פȤ����桼�����Ѱդ��Ƥ��ޤ����ơ��֥�κ������Τϡ���ʬ������ PostgreSQL �����Ѥ���Ȥ��˻��Ѥ��Ƥ���桼����������Ȥǹ����ޤ��󤬡�PHP ���饢����������Ȥ��ϡ�www �Ȥ����桼������³���뤳�Ȥˤ��ޤ�������ϡ����� PHP �˥Х������äƤ⡢�ﳲ���礭���ʤ�ʤ��褦�ˤ��뤿��Ǥ����ʤʤ�٤��Х���̵���褦�˺�äƤ���Ĥ��Ǥ�����

���å������������ʤ�

���Υ��å�����Ȥ��������ꡢ���å����Ͻ��פǤ������������ͤˤ�äƤϥ��å������������ʤ�����ˤ��Ƥ����ꡢ���å����λȤ��ʤ��֥饦���⤢��ޤ����ѥ������ư���֥饦���ΤۤȤ�ɤϥ��å��������ѤǤ���Ϥ��Ǥ�����¿���η������äϺ��ΤȤ������å��������ѤǤ��ޤ���

�������ä���硢�̤μ��ʤ��Ѥ���ɬ�פ��ФƤ��ޤ����̤���ˡ�Ȥϡ����å���� ID ��GET��POST ���٤˼����Ϥ���ˡ�Ǥ�������ˤϡ�session_name, session_id �ؿ���Ȥ��ޤ���

��󥯤ξ��
next.php?<?= session_name() ?>=<?=session_id() ?>
FORM ��
<input type="hidden" name="<?= session_name() ?>" value="<?= session_id() ?>">

����򤹤٤Ƥβս�˻Ȥ�ʤ��Ȥ����ޤ��󡣤���ä����ݤǤ��͡��Ǥ�����PHP �򥳥�ѥ��뤹��Ȥ��ˡ�--enable-trans-sid ���դ��ƥ���ѥ��뤷�Ƥ����ȡ����κ�Ȥ���ư�ǹԤ��ޤ���

��ư�ǹԤ����硢session_start �ؿ���Ƥ���Ȥ��ˡ����å����˥��å���� ID ��̵����С����å����˥��å���� ID �򥻥åȤ���ȶ��ˡ����Υڡ����Τ��٤ƤΥ�󥯡��ե�����˥��å���� ID ���Ϥ�褦�� HTML ��񤭴����ޤ����⤷��session_start ��Ƥ���Ȥ��˥��å����˥��å�����ϤäƤ��Ƥ����顢�ڡ����ν񤭴����ϹԤ��ޤ��󡣤������äơ��Ǿ��¤�ϫ�Ϥǥ��å��������ѤǤ��ʤ����饤����Ȥ��б����뤳�Ȥ�����ޤ���

��������������ˡ�Ǥ⡢��������̤� HTML ��ޤ�뤳�Ȥ�����ʤ��Τǡ����̤� HTML �ϥ��å���� ID ���Ϥ��ʤ��ˡ������դ���ɬ�פ�����ޤ���

�����������

���å��������椹�뤿��� php.ini �����ꤹ��������ܤ�����ޤ������٤Ƥι��ܤˤĤ����Τꤿ�����ϥޥ˥奢��򻲾Ȥ��Ƥ�餦�Ȥ��ơ������Ǥϼ��פʤ�Τ����������Ƥ����ޤ���

���å���������ʰ�����
���� ����
session.save_path ���å����ǡ�������¸���Ƥ����ѥ������ꤷ�ޤ�����Ǥ��������ޤ�������Apache �μ¹ԥ桼�����񤭹��ߤǤ���ǥ��쥯�ȥ�Ǥ���ɬ�פ�����ޤ���
session.use_cookies ���å���� ID ���ݻ�����Τˡ����å��������Ѥ��뤫�ɤ�������ꤷ�ޤ����ǥե���Ȥ� On �Ǥ���
session.cookie_lifetime ���饤����Ȥ��ݻ����륯�å�������¸���֤��ÿ��ǻ��ꤷ�ޤ����ǥե���Ȥ� 0 �ǡ��֥饦����λ����ޤǤǤ����㤨�� 3600 ����ꤹ��С��֥饦�����Ĥ��Ƥ��ޤäƤ⡢�����ͭ���ˤʤ�ޤ���
session.cookie_path ���å�����ͭ���ˤ���ѥ��Ǥ����֥饦�������̡������ǻ��ꤷ���ѥ��ʲ����Ф��륢�������ˤ��������å���������ޤ����㤨�С�/app/portal �Ȥ���С�/app/portal/list.php ���Ф��륢���������ˤϥ��å���������ޤ�����/dokoka/hoge.php ���Ф��륢���������ˤϥ��å���������ޤ��󡣥ǥե���Ȥ� / �ǡ����Υ���������Ф��뤹�٤Ƥ˥��å��������äƤ��ޤ��ޤ����ǥ��쥯�ȥꤴ�Ȥ��̤� Web ���ץꥱ���������äƤ��ơ����줾��ǥ��å�����Ȥ��������ʤɤϡ�Ŭ�ڤʥѥ�����ꤷ�ޤ��礦��
session.cookie_domain ������ϡ����å�����ͭ���ˤ���ɥᥤ��̾�Ǥ����ǥե���Ȥϥ��åȤ���Ƥ��ʤ����ᡢƱ���ޥ�����Ф��Ƥ������å��������äƤ��ޤ��󡣤⤷��domain.com �Ȼ��ꤹ��ȡ�www.domain.com, private.domain.com �ʤɤ˥��å���������褦�ˤʤ�ޤ���session.cookie_path �ǻ��ꤷ���ѥ��ˤ���פ���Сˡ��ޤ������å���� ID �ξ�硢¾�Υޥ�������äƤ��̣���ʤ��Ȼפ��ޤ�����������
session.cache_limiter nocache, private, public �Τ����줫������Ǥ��ޤ�������ϡ����å�����Ȥä��ڡ����򥭥�å������뤫�ɤ����λ���Ǥ���nocache ���ǥե���ȤǤ���������������ȥ֥饦���ˤ⥭��å��夵��ʤ����ᡢ���ܥ���򲡤����Ȥ��ˤ���ɹ���ɬ�פˤʤ�ޤ���private �ϥ֥饦���ˤΤߥ���å��夵��ޤ���public �ϡ�����å��奵���Сʥץ����������Сˤ⥭��å�������褦�ˤʤ�ޤ�������ϡ�HTTP �쥹�ݥ󥹥إå����ˤ�����椷�Ƥ���Τǡ�Ŭ�ڤ˲�ᤷ�ʤ����եȤ�ȤäƤ�����Ϥ��θ¤�ǤϤ���ޤ���
session.cache_expire ����ϡ���� private, public ����ꤷ���Ȥ��ˡ�����å���������֤�ʬ�ǻ��ꤷ�ޤ����ǥե���Ȥ� 180 ʬ�Ǥ���
session.gc_maxlifetime ���å������˴�����ޤǤλ��֤��äǻ��ꤷ�ޤ����Ǹ�˥��å����˥����������Ƥ��顢�����ÿ����в᤹��ȡ����Υ��å������˴�����ޤ����˴������ȡ���¸�����ѿ��ˤϥ��������Ǥ��ޤ���ˡ����ޤ�û���ֳ֤��ȡ��桼��������ä��̤Τ��Ȥ򤷤Ƥ����ˡ����å�����˴�����Ƥ��ޤ����⤷��ޤ��󡣤��ޤ�Ĺ���ֳ֤��ȡ��������ƥ������꤬�ФƤ��ޤ����ǥե���Ȥ� 1440 �äǤ���Ĺ���ֳ֤���ꤹ����ϡ�session.cookie_lifetime �ȤΤ��ͤ�����ɬ�פǤ���
session.gc_probability ���å������˴����뤫�ɤ��������å������Ψ�� % �ǻ��ꤷ�ޤ����ꥯ�����Ȥ��Ф��ơ����γ�Ψ�ǥ��å������˴����뤫�ɤ�����session.gc_maxlifetime ��᤮�Ƥ��륻�å���󤬤ʤ����ɤ����ˤΥ����å���Ԥ��ޤ���������������������Τ��륵���Ȥϡ����ʤ�ˤ������������Ǥ��礦��
�ۡ����