の形で呼ぶ。
//
// anchor_idはフレームを使う場合最低限各フレームごとに設定。お互い他のフレームを書換えたときにへんな干渉をさけるため。
// その他ページの種別毎などで変えてもよいが、あまり小分けにするとcookieが増える。
// 同じanchor_idで保存されるcookieは1セットのみ。でも単独ページ表示のサイトなら概ねこれで充分。
anchor_id = "anc_main";
noanchor = false; // bodyにanchorをしかけたときなど場合によって一時無効にするためのフラグ。
// アンカーの記憶。
function anchor_save(object_id, page_id) {
if(noanchor) { anchor_erase(); return; }
get_scroll();
setcookie(anchor_id+"_pid", page_id, 0);
setcookie(anchor_id+"_st", scroll_top, 0);
setcookie(anchor_id+"_sl", scroll_left, 0);
if(object_id) {
object_top = scroll_top + get_object_top(object_id);
object_left = scroll_left + get_object_left(object_id);
setcookie(anchor_id+"_oid", object_id, 0);
setcookie(anchor_id+"_ot", object_top, 0);
setcookie(anchor_id+"_ol", object_left, 0);
} else {
setcookie(anchor_id+"_oid", "", -1);
setcookie(anchor_id+"_ot", "", -1);
setcookie(anchor_id+"_ol", "", -1);
}
}
// アンカーの適用。
function anchor_apply(page_id) {
if((saved_page_id = getcookie(anchor_id+"_pid")) && page_id != saved_page_id) { return; }
get_scroll();
if((anchor_st = getcookie(anchor_id+"_st")) != "" && (anchor_sl = getcookie(anchor_id+"_sl")) != "") {
anchor_st = parseInt(anchor_st);
anchor_sl = parseInt(anchor_sl);
} else {
anchor_st = scroll_top;
anchor_sl = scroll_left;
}
if((object_id = getcookie(anchor_id+"_oid"))
&& (anchor_ot = getcookie(anchor_id+"_ot")) != ""
&& (anchor_ol = getcookie(anchor_id+"_ol")) != "") {
offset_top = (scroll_top + get_object_top(object_id)) - parseInt(anchor_ot);
offset_left = (scroll_left + get_object_left(object_id)) - parseInt(anchor_ol);
} else {
offset_top = offset_left = 0;
}
window.scrollTo(anchor_sl + offset_left, anchor_st + offset_top);
}
// アンカー消去。あえてとっておく必要がなければanchor_apply()後すぐ消去が望ましい。
function anchor_erase() {
setcookie(anchor_id+"_pid", "", -1);
setcookie(anchor_id+"_st", "", -1);
setcookie(anchor_id+"_sl", "", -1);
setcookie(anchor_id+"_oid", "", -1);
setcookie(anchor_id+"_ot", "", -1);
setcookie(anchor_id+"_ol", "", -1);
}
//-->
倉金家ホームページ
趣味の部屋/サーバー構築メモ その4
ホームページなどのデータを格納しているデータベースサーバーMariaDB(MySQL)を動かします。 |
|
|
とりあえずHTTPサーバーは動かしたが実際のホームページデータはデータサーバーに入っているのでホームページはまだ表示できない。
データサーバーMySQLは今回からMariaDBというのに変わっている。中身はMySQLと同じとのこと。
|
設定
まずは簡単に初期設定。 /etc/my.cnf [mysqld] datadir=/home/mysql # データベースは別パーティションの/homeにつくる。OSを再インストールしてもデータは残る。
/etc/my.cnf.d/client.cnf [client] default-character-set = utf8
/etc/my.cnf.d/server.cnf [mysqld] character-set-server = utf8 skip-character-set-client-handshake # サーバー内プロセスからしかアクセスしないのですべてutf-8。 innodb=OFF # innoDBを使わないならメモリ節約のためOFF可能。代わりにdefaultとしてMyISAMを必ず指定。 default-storage-engine = MyISAM # 過去のデータがすべてこれ。
設定はこれだけ。 単に少々のホームページデータを格納するだけで大容量でも高アクセスでもないから特別チューニングもいらないだろう。
|
SELinux対策
これでMariaDBを動かすとデータディレクトリを変更したのでSELinuxに阻まれるのは目に見えている。 これを見逃すようではSELinuxは役に立たない。 /home/mysqlには現行サーバーのデータをバックアップしてある。いったんこのmysqlデータベースは退避。 で、許可ポリシーをつくるためにSELinuxを一時PermissiveにしておいてMariaDBを幾度か起動、停止。 ~]# systemctl start mariadb.service ~]# systemctl stop mariadb.service ~]# ....
案の定SELinuxがぶーたら言うのでそのログを使って許可ポリシーを作成、インストール。 許可ポリシー作成のシェルスクリプトを作ってあるのですぐできる。 ポリシーをインストールして今度はOK。 データディレクトリに新しい管理用データベース/home/mysql/mysqlができています。 |
|
前の(現行サーバーの)MySQLのバージョンは5.1、今回のMariaDBは5.5。 概ねMySQL管理用データベースmysqlはバージョンが上るごとに何か追加されていたりして必ずしも互換性がありません。 今回も確認してみると新しいテーブルがあったりしたのでそのまま古いのを使うのはやめて新しいのを使います。 そのためユーザとデータベースの登録をやりなおさなくてはなりませんが、たいした数でもありません。 これはあとでphpMyAdminでやりましょう。phpMyAdminはまだインストールと設定をしていません。
|
|
初期設定
新しいmysql管理データベースを使うことにしたのでまずはrootのパスワード登録その他の初期設定が必要です。 mariaDBをスタートしておいて mysql_secure_installation をやります。
最初の Enter current password for root (enter for none): は空Enter 次の Set root password? [Y/n] も空Enter そして、 New password: Re-enter new password: で二回rootパスワードを入れます。 あとは皆空Enter。
|
|
|
ここでいったんphpMyAdminのインストールと設定。 phpMyAdminを使ってmysqlデータベースにユーザとデータベースを登録、再起動して完了です。
|
|
|