開発日記
1.4 最後の調整 -- ぱんだ†
データベース操作関係のバグfix†
- 未作成ページを新規作成したときに関連ページが出力されない問題を修正するため、未作成ページのリンク状況もデータベースに格納するようにしました。
- どこからもリンクされていない未作成ページがデータベースに残る問題を修正しました。
注意:データベースを作り直す必要があります。
http://.../pukiwiki.php?plugin=links&adminpass=<pass>
を実行してください。
データベース操作関係を調整しました。†
- 動作を確認したのは以下です。
- ファイルベース
- PostgreSQL 7.2.3 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 3.2 20020903 (Red Hat Linux 8.0 3.2-7)
- mysql Ver 11.18 Distrib 3.23.55, for Win95/Win98 (i32) OS Platform : Windows 2000 Service Pack 3
- pukiwiki.ini.phpの、MySQL関係の設定項目を追加しました。
(従来はlocalhostの'pukiwiki'データベースに,サーバプロセスの所有者/パスワードなしで接続しようとしていました。)
/////////////////////////////////////////////////
// 関連するページのキャッシュ
// ファイルベースのときはdefine('LINK_DB',...)をコメントアウト
// MySQL
//define('LINK_DB','mysql');
//define('MYSQL_HOST','localhost');
//define('MYSQL_USER','apache');
//define('MYSQL_PASS','');
//define('MYSQL_DB','pukiwiki');
- 修正
データベース作成手順概略(MySQL/Windows編)†
C:\mysql\bin> mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 22 to server version: 3.23.55-nt
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> create table pukiwiki;
Query OK, 1 row affected (0.02 sec)
mysql> use pukiwiki;
Database changed
mysql> create table page (id integer auto_increment primary key, name text not null, lastmod integer not null);
Query OK, 0 rows affected (0.12 sec)
mysql> create table link (page_id integer not null, ref_id integer not null);
Query OK, 0 rows affected (0.07 sec)
mysql> quit
Bye
- mysqlではなくphpMyAdmin日本語版で設定することになってるので、上記の表現ではよくわかんない。 -- reimy 2003-03-10 (月) 23:54:25
- phpMyAdminだと読み込ませる手があったと思うんですが既に忘却の彼方... -- たらこせる 2003-03-11 (火) 00:05:28
- phpMyAdmin…使ったことないんです。得意な人解説希望 :) -- ぱんだ 2003-03-11 (火) 00:23:46
- 最初の画面でデータベースを作成した後、左側のフレームのドロップダウンから作成したデータベースを選択、画面上部の「SQL」ってタブみたいなものをクリックして、テキストエリアに -- ちょび 2003-03-11 (火) 00:44:43
- create table page (id integer auto_increment primary key, name text not null, lastmod integer not null); -- 2003-03-11 (火) 00:44:58
- create table link (page_id integer not null, ref_id integer not null); -- 2003-03-11 (火) 00:45:14
- の2行を入力して「実行」ボタンをクリックすればいけるんじゃないかと思います。 -- 2003-03-11 (火) 00:46:10
- MySQLのほうはうまくいきました。残るはPostgreSQLだな… -- reimy 2003-03-11 (火) 01:32:26
- うーん、SQLを使わないほうが速いような…(^^;; ページ数が多いとSQLを使うほうが遅くなるのかなあ -- reimy 2003-03-11 (火) 01:38:34
- SQLを使ったとき、yetlistの表示がおかしくなるようです。先頭に空のページ名が未作成ページとして表示され、日本語名ページが( )に山のようにリンクされる。使わないときは正常。UTF-8化の弊害? -- reimy 2003-03-11 (火) 01:40:26
- MySQLあり:HTML convert time to 0.852 sec.、MySQLなし:HTML convert time to 0.731 sec. -- reimy 2003-03-11 (火) 02:00:02
- というわけで、高速化にはならないようなのでSQLなしにしました。 -- reimy 2003-03-11 (火) 02:01:37
データベース作成手順概略(PostgreSQL/Red Hat Linux編)†
$ createdb pukiwiki
$ psql pukiwiki
Welcome to psql, the PostgreSQL interactive terminal.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help on internal slash commands
\g or terminate with semicolon to execute query
\q to quit
pukiwiki=# create user apache;
CREATE USER
pukiwiki=# create table page (id serial primary key, name text not null, lastmod integer not null);
NOTICE: CREATE TABLE will create implicit sequence 'page_id_seq' for SERIAL column 'page.id'
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index 'page_pkey' for table 'page'
CREATE
pukiwiki=# create table link (page_id integer not null, ref_id integer not null);
CREATE
pukiwiki=# grant all on page,link,page_id_seq to apache;
GRANT
pukiwiki=# \q
$
- pukiwiki=# create user apache;を実行すると、ERROR: CREATE USER: permission deniedになってしまう。 -- reimy 2003-03-10 (月) 23:45:07
- 自分にCREATEUSERの権限がない場合は su - postgres する必要がありますね。 -- ぱんだ 2003-03-11 (火) 00:16:27
- 「apache」の部分は apache実行ユーザ名(と同じ?)になるんですよね? レンタル・サーバの場合は既に作成されていたりもするので、とりあえず create user文はほっといて、grantしてみても良いのではないかと。 -- ちょび 2003-03-11 (火) 00:52:51
- grant all on page,link,page_id_seq to apache;でERROR: user "apache" does not existになってしまう -- reimy 2003-03-11 (火) 01:08:08
- grant all on page,link,page_id_seq to webuser;でgrantしました。 -- reimy 2003-03-11 (火) 01:11:24
- Runtime Errorになります。Error message : query 'SELECT id,name FROM page WHERE name='れいみぃ/好きな俳優';' failure. -- reimy 2003-03-11 (火) 01:15:55
- Error message : query 'INSERT INTO page (name,lastmod) VALUES ('InterWikiテクニカル',1046369546);' failure. -- reimy 2003-03-11 (火) 01:20:33
- う~ん...一度、psqlから drop table page; と drop table link; と drop sequence page_id_seq; を一つずつ実行した後で、もう一度 create table page ( ... からやり直してみてはいかがでしょう? -- ちょび 2003-03-11 (火) 01:34:21
- 後は、、pukiwiki.ini.php内で define('PG_CONNECT_STRING','dbname=pukiwiki host=localhost user=webuser'); とする。ぐらいしかわからないです。すみません。 -- ちょび 2003-03-11 (火) 01:42:15
- これ関係ない? -- ishii 2003-03-14 (金) 16:34:29
- ダイレクトアクセスタイプをサポートしました。
upkさん:お手数ですが、これを使ってみてください。
- 修正
pre6に移行しました。†
今週一週間様子を見て、新たな問題がなければrc1にします。
define('S_VERSION','1.4pre6');
ヘルプはpukiwiki:ヘルプをそのまま使用?
- NewTable、YukiWiki互換Table、AutoLinkなどヘルプに入れるかどうか思案中。AutoLinkなど、各設置者が導入するかどうかで変わるので、どうしようかなあ… -- reimy 2003-03-11 (火) 00:40:22