セキュリティ強化とかいろいろ

PHPファイルの応答ヘッダーに含まれるPHPバージョンを隠蔽する
ttp://itpro.nikkeibp.co.jp/article/COLUMN/20071210/289114/

なぜPHPアプリにセキュリティホールが多いのか?
ttp://gihyo.jp/dev/serial/01/php-security

PHPにおける数値と文字列のヘンな比較結果
ttp://dara-j.asablo.jp/blog/2007/12/16/2514789

HTML2IMAGE メモ

インストール方法
ttp://www.guangmingsoft.net/htmlsnapshot/html2image.htm

ただし、素直にXvfbを叩いてもダメでした
ttp://ken-etsu-tech.blogspot.com/2007/10/dell-remote-access-controllervnc.html
この辺を参照して
# mkdir /usr/X11R6/lib
# ln -s /usr/share/X11 /usr/X11R6/lib
で解決しました

PHPで system execでコマンドを叩いてもファイルは生成されませんでした
html2imageの解凍場所で ./nweb 8181 /html2image を叩いて

PHPで $lines = file(“http://127.0.0.1:8181/para=www.google.com&○○○/test.png”);
で指定場所にファイルを保存してくれるようになります

Powerbake

powerbakeを紹介します。
一気にMVCファイルを作り上げる、cakephpのコンソールツールです。
以下のサイトより配布されています。
PowerBake – bake all at once (for 1.2)
http://groups.google.com/group/cake-php/msg/fbe25bdd44ca6063
■使い方
1.解凍したらcakeのホームディレクトリ以下、cake/console/libs/powerbake.php
として配置します。
2.databaseの設定済みであれば、以下のコマンドでpowerbakeが立ち上がります。
[user:]$ cd $CAKE_HOME
※CAKE_HOMEはdev2だと/var/www/cake
[user:]$ php ./cake/console/cake.php powerbake –working ./app/
3.ALLを引数にするとMVCファイルを自動生成&配置してくれます。
余談ですが、PostgreSQLが余分なテーブルを作成しています。何故だ…?

CakePHPインストール

CakePHPのインストールメモです。
1.CakePHPフレームワークをダウンロードします。
CakePhp本家
http://www.cakephp.org/
○2007/12/06現在のバージョンは以下の通り
Stable: 1.1.18.5859
Pre-Beta: 1.2.0.5875 pre-beta
以下はワンクリックで落とせるURL
http://cakeforge.org/frs/download.php/549/cake_1.1.18.5850.tar.bz2/donation=complete
2.適当な箇所(DocumentRoot以上)に配置、解凍します。
[user:]$ tar -jxvf ./cake_1.1.18.5859.tar.bz2
3.cakephpディレクトリを「cake」にrenameします。
[user:]$ mv ./cake_1.1.18.5859 ./cake
4.cake/app/webrootディレクトリをcopyします。
※cpコマンドの場合
[user:]$ cp -r ./cake/app/webroot DOCUMENT_ROOT/
5.copyした公開するディレクトリに適当な名前をつけます
[user:]$ mv ./webroot ./knt
6.公開ディレクトリにある .htaccssの編集(※必要な場合)
適当なエディタで編集
[user:]$ vi ./htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /var/www/html/knt/index.php?url=$1 [QSA,L]
 # 上記パスはコピーした先のindex.phpまでのもの

7.公開ディレクトリにあるindex.phpの編集
defineで定義する「ROOT」「APP_DIR」を変更します。
/**
* These defines should only be edited if you have cake installed in
* a directory layout other than the way it is distributed.
* Each define has a commented line of code that explains what you would change.
*
*/
if (!defined(‘ROOT’)) {
//define(‘ROOT’, ‘FULL PATH TO DIRECTORY WHERE APP DIRECTORY IS LOCATED DO NOT ADD A TRAILING DIRECTORY SEPARATOR';
//You should also use the DS define to seperate your directories
//define(‘ROOT’, dirname(dirname(dirname(__FILE__))));
define(‘ROOT’, DS.’var’.DS.’www’.DS.’cake’); //変更。DSは「/」の意。
}
if (!defined(‘APP_DIR’)) {
//define(‘APP_DIR’, ‘DIRECTORY NAME OF APPLICATION';
//define(‘APP_DIR’, basename(dirname(dirname(__FILE__))));
define(‘APP_DIR’, ‘app’); //変更
}
/**
* This only needs to be changed if the cake installed libs are located
* outside of the distributed directory structure.
*/
if (!defined(‘CAKE_CORE_INCLUDE_PATH’)) {
//define (‘CAKE_CORE_INCLUDE_PATH’, FULL PATH TO DIRECTORY WHERE CAKE CORE IS INSTALLED DO NOT ADD A TRAILING DIRECTORY SEPARATOR';
//You should also use the DS define to seperate your directories
define(‘CAKE_CORE_INCLUDE_PATH’, ROOT);
}
8.DB設定ファイルの編集
[user:]$ cp cake/app/config/database.php.default cake/app/config/database.php
適当なエディタで編集
例)PostgreSQLの場合
class DATABASE_CONFIG
{
var $default = array(‘driver’ => ‘postgres’,
‘connect’ => ‘pg_pconnect’,
‘host’ => ‘localhost’,
‘login’ => ‘postgres’,
‘password’ => ‘postgres’,
‘database’ => ‘knt’,
‘prefix’ => ”);
}
ここまで来て、cakeのインストールDB接続まで完了です!
おつかれさまー。
次回はbakeをつかったMVCファイルの作成を報告します。