CakePHPでミニブログをつくる・その1
仕様
- タイトルは「俺のつぶやき(仮称)」
- 記事を投稿する際、キーワードを入力すると、Twitterからそのキーワードで検索したコメントを取得&表示する。
- キーワード無しは、日本語形態素解析Webサービスで、登録時自動的に名詞を取得して検索。(あとで編集可能)
- 記事はRSS配信。
- 携帯対応。
- 書込みは自分一人。
- 記事クリックで単独ページ(URL変数に記事表示)
- 最大投稿文字数は140文字。(Twitterに合わせる)
- 実際にコメントも書ける。
まずはDB作成
DBはMySQLを使う。
データベース作成
CREATE DATABASE tsubuyaki DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
権限設定
GRANT SELECT,UPDATE,INSERT,DELETE ON tsubuyaki.* to USER@localhost IDENTIFIED by PASWORD;
使用するデータベースを選択
use tsubuyaki;
記事保存テーブル「posts」を作成
テーブル名は複数形がCakePHPの規約。
CREATE TABLE posts ( id int(11) unsigned NOT NULL auto_increment, text varchar(200) NOT NULL, keyword varchar(50), created datetime NOT NULL, modified datetime NOT NULL, delflg tinyint(1) NOT NULL default 0, PRIMARY KEY (id), KEY created (created), KEY modified (modified) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
データベース設定
/app/config/database.php.default をリネームか複製でdatabase.phpを作成。
データベースの設定を変更して、文字化け対策の為、'encoding' => 'utf8'を追加。
http://localhost/tsubuyakiにアクセス
エラーorz
Fatal error: Call to undefined function mysql_connect() in /home/xxxxx/public_html/tsubuyaki/cake/libs/model/dbo/dbo_mysql.php on line 100
どうやらPHPとMySQLの接続がうまくいってないみたい。これにハマって1日費してしまった・・・。調べた結果、インストールのconfigure時に、
が抜けてたみたい。php5からはMysqlのライブラリの標準バンドルがなくなったらしい。早速PHPをリコンパイルしてインストール。
make clean
./configure --with-apxs2=/usr/sbin/apxs --with-zlib --enable-mbregex --enable-mbstring --enable-trans-sid --enable-soap --with-xmlrpc --with-xmlreader --with-mysqli=/usr/bin/mysql_config --with-mysql=/usr
make
make install
・・・
Your database configuration file is present.
Cake is able to connect to the database.
うまくいった!!!!!