パンプキンスパイスラテ

IT系のことが多めの日記帳です

CakePHPでミニブログをつくる・その1

仕様

  • タイトルは「俺のつぶやき(仮称)」
  • 記事を投稿する際、キーワードを入力すると、Twitterからそのキーワードで検索したコメントを取得&表示する。
  • 記事は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

どうやらPHPMySQLの接続がうまくいってないみたい。これにハマって1日費してしまった・・・。調べた結果、インストールのconfigure時に、

    • with-mysqli=/usr/bin/mysql_config --with-mysql=/usr

が抜けてたみたい。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.

うまくいった!!!!!