Entries from 2006-12-01 to 1 month

[CakePHP] index.phpがあるディレクトリの名前と、index.phpにアクセスするときのURLのパス名が異なる場合、index.phpのWEBROOT_DIRを設定する必要がある。

環境 この記事の内容は、Ubuntu 6.10, Apache 2.0.55, PHP 5.1.6, CakePHP 1.1.12.4205で確認しました。 結論 例えば、cake/app/webrootを/home/foo/public_htmlにコピーして公開するとします。すなわち、CakePHPにhttp://example.com/~foo/index.phpというU…

ビューの中で使用できる変数$htmlはどこからくるのか?

環境 この記事の内容は、CakePHP 1.1.12.4205で確認しました。 問題点 CakePHPでは、ビューの中で、例えば、 link('New Account', '/accounts/add'); ?> のように、変数$htmlを使用することができますが、この変数$htmlがどこからきているのか気になったので…

[CakePHP] ドキュメントルート以外の場所にインストールした場合、cake/dispatcher.phpを修正する必要がある。

環境 この記事の内容は、Ubuntu 6.10, Apache 2.0.55, PHP 5.1.6, CakePHP 1.1.12.4205で確認しました。 問題の現象 CakePHPを、ドキュメントルート以外の場所にインストールするとします。たとえば、CakePHPをホームディレクトリの直下にインストールし、ap…

[CakePHP] HTMLヘルパーのlinkメソッドに相対パスを与えると、パス名の前にコントローラ名が付加される。

環境 この記事の内容は、Ubuntu 6.10, Apache 2.0.55, PHP 5.1.6, CakePHP 1.1.12.4205で確認しました。 事象 accountsコントローラでビューを出力したとき、 link('New Account', '/accounts/add'); ?> とすると、生成されるリンクは、 <a href="foo/accounts/add">New Account</a> となり…

[CakePHP] app/tmp/cache/modelsディレクトリを、Webサーバが書き込めるようにする必要がある。

環境 この記事で対象となっている環境は、Ubuntu 6.10, Apache 2.0.55, PHP 5.1.6, CakePHP 1.1.11.4064です。 問題とその現象 /home/foo/public_html/cakeにCakePHPをインストールしたが、アクセスすると以下の警告が表示される。 Warning: file_put_conten…

[CakePHP] インストールディレクトリの.htaccessだけではなく、appディレクトリとapp/webrootディレクトリの.htaccessも修正する必要がある。

環境 この記事で対象となっている環境は、Ubuntu 6.10, Apache 2.0.55, PHP 5.1.6, CakePHP 1.1.11.4064です。 問題の現象 Instalilng CakePHPにしたがってCakePHPを/home/foo/public_html/cakeにインストールし、/home/foo/public_html/cake/.htaccessにRew…

[PHP][PHPUnit] 指定されたディレクトリ以下のすべてのテストを実行するスクリプト

対象 この記事で対象にしているのは、PHP 5.1.6(コマンドライン版)、PHPUnit 3.0.0です。 問題点 PHPUnitは、PHP用のテストツールです。このツールでは、テストを追加する場合、テストケースを書くだけではなく、ツールにテストケースがあることを教える必…

glibcを使わないでHello Worldを書く。FreeBSD版その2

この記事は、d:id:SumiTomohiko:20061221:1166685804の続きです。 概要 通常のHello Worldとlibcを使用しないHello Worldの2つについて、ktraceとkdumpを使用してシステムコールの呼び出しを追跡します。 結果 通常のHello Worldを実行すると、mmapやread, o…

glibcを使わないでHello Worldを書く。FreeBSD版その1

対象 この記事で取り扱っているのは、Pentium III, FreeBSD 6.1-RELEASEです。 概要 Binary Hacks ―ハッカー秘伝のテクニック100選作者: 高林哲,鵜飼文敏,佐藤祐介,浜地慎一郎,首藤一幸出版社/メーカー: オライリー・ジャパン発売日: 2006/11/14メディア: 単…

[はてなダイアリー] はてなダイアリー用にソースコードを色付けするCGI

はてなダイアリー用にソースコードを色付けするCGIを作成しました。URLは、http://nekomimists.ddo.jp/~tom/cgi-bin/code2hatena.rbです。このCGIを使用すると、 query('insert into account (name, password) values (?, ?)', array($name, $password)); if…

[PHP][SQLite] SQLiteのデータベースには複数の形式があり、ドライバが対応できていなければ扱えない。

対象 この記事で取り上げている各ソフトウェアのバージョンは、PHP 5.1.6, PDO 1.0.3, PDO_SQLITE 1.0.1, SQLite 3.3.5です。 問題点 WebアプリケーションでPHPからSQLiteにPDOで接続しようと思い、 $pdo = new PDO('sqlite:/home/tom/projects/MagnesiumRid…

[Ubuntu][PHP][PDO] UbuntuでPDOを使うときには、php5-devパッケージが必要。

いただいた情報を元に、早速PDOをインストールしました。 $ sudo pecl install pdo [~] Password: Sorry, try again. Password: downloading PDO-1.0.3.tgz ... Starting to download PDO-1.0.3.tgz (52,613 bytes) .............done: 52,613 bytes 12 sour…

[Symfony] cacheディレクトリはWebサーバが書き込めるようにする必要がある。

Symfonyのチュートリアルでは、sf_sandbox.tgzをダウンロードして展開すれば、すぐに開発が始められるようなことが書いてあります。しかし、私はsf_sandbox.tgzを展開したファイルにWebブラウザでアクセスしたとき、以下のようなエラーに遭遇しました。 Warn…

[PHP] エラーを表すクラスは、PEAR_Error.

PHPでデータベースを扱うとき、よく以下のようなコードを書きます。 query('insert into account (name, password) values (?, ?)', array($name, $password)); if (PEAR::isError($res)) { die($res->getMessage()); } ?> ここで、PEAR::isErrorがtrueとな…

はてなダイアリーでソースコードを色付けする

https://dream.ie.ariake-nct.ac.jp/~bashi/d/?date=20051010#p01を参考にして、ソースコードをはてなダイアリー用に色付けするツールcode2hatena.rbを作りました。これを使うと、 ./code2hatena.rb code2hatena.rb 以下の様になります。 #!/usr/local/bin/r…

[はてなダイアリー] はてなダイアリーの色見本

編集画面のソースにある から色の情報がcolor_picker.jsにあるに違いないと思い、 $ wget http://d.hatena.ne.jp/js/color_picker.js してソースを取り寄せました。で中身を見ると、コードは省略しますが、確かに色情報を設定している箇所があったので、そこ…

[SQLite][PHP] PHPのPEAR::DBはSQLite3に未対応

対象 この記事で対象となっているOSはUbuntu 6.10, PHPは5.1.6です。 問題点 PHPからSQLite3を使おうとして、 としたのですが、Extention not Foundとなり、接続できません。 原因 PEAR::DBは、SQLite 3.xには対応していません。 対処方法 PDOを使用して下…

[Ubuntu][Ethna] Ubuntu用Ethnaパッケージ

Ubuntu用のEthna 2.3.0のパッケージを作成しました。以下からダウンロードできます。http://nekomimists.ddo.jp/~tom/repository/ethna_2.3.0_i386.deb通常のEthnaと異なり、以下の点を変更しています。 Smartyのパスを変更しました。 ethna.shをethnaに変更…

[Ubuntu] パッケージの作成方法

Ubuntu 6.10でEthna 2.3.0のパッケージを作成したときの記録を以下に記します。まず、ソースを展開したディレクトリでdh_makeコマンドを実行します。dh_makeコマンドのオプションは、以下の通りです。 --createorig: カレントディレクトリをオリジナルとみな…

[Ethna] 独自の入力値検証を追加する方法

Ethna 2.3.0ではアクションクラスのprepareメソッドで入力値を検証します。このとき、Ethnaが用意している方法ではなく、独自の検証を追加する場合、エラーメッセージは次のようにして設定します。 $this->af->ae->add(null, ); 詳しいことは、class/Ethna_A…