複数appが必要なとき、1.3の時には 何もきにせず
app_1/
app_2/
:
って作っていたので
2.0でも 同じ構成で作っていたら
app_1とapp_2の appController.phpに同じメソッド名があると、
app_1のappControllerを呼び出したら
app_2でappControllerをよんでも app_1のappControllerを見に行ってしまうとか
1と2に 同じ名前のControllerを置くと うまく動かないとか
いう声を聞いたので ちょっと調べたけど、未だ具体策はつかめず
いちおう メモがわりに 貼っとく
CakePHPで複数アプリケーション管理|マリンロード
http://www.marineroad.com/staff-blog/3159.html
CakePHP2.0で現状の問題点などまとめました。 | Fusic Developers' Weblog
http://blog.fusic.co.jp/archives/2207
eat cake, 複数のapp 同居
http://miztools.so.land.to/php5_list/eat_cake/ac_off/cake2.php/edit/multi_app
2012/06/15
2012/06/05
同じネットワーク内でのvhosts設定
※まんま みーとくんからの転載 めもさせていただいた。
バーチャルホストの設定 - 肉になるメモ
http://d.hatena.ne.jp/kazumeat/20120130/1327918879
バーチャルホストの設定 - 肉になるメモ
http://d.hatena.ne.jp/kazumeat/20120130/1327918879
・/etc/httpd/con.d 以下にアプリ用のconfを作成
NameVirtualHost 192.168.1.111:80
#
# app1
#
<VirtualHost 192.168.1.111:80>
DocumentRoot /var/www/app1
ServerName app1.com
ErrorLog logs/app1_error_log
CustomLog logs/app1_access_log common
<Directory "/var/www/app1">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
#
# app2
#
<VirtualHost 192.168.1.111:80>
DocumentRoot /var/www/app2
ServerName app2.com
ErrorLog logs/app2_error_log
CustomLog logs/app2_access_log common
<Directory "/var/www/app2">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
・ローカルのhostsファイル設定
C:\Windows\System32\drivers\etc\hosts
192.168.1.111 app1.com 192.168.1.111 app2.com
2012/05/30
file_get_contentsで外部ファイルを読み取る
file_get_contentsで、外部のXMLや画像、webページなどを取得できる
◎普通に取得する場合
$homepage = file_get_contents('http://www.example.com/');
echo $homepage;
◎ファイルの一部の読み込み
// 21 文字目から 14 文字ぶん読み込みます
$section = file_get_contents('./people.txt', NULL, NULL, 20, 14);
var_dump($section);
◎Basic認証
file_get_contents("http://user:password@www.example.com/");
◎ストリームコンテキストの使用
・ストリームコンテキストでのBasic認証
// ストリームを作成します
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Authorization: Basic " .base64_encode("user:password"). "\r\n"
)
// 上で設定した HTTP ヘッダを使用してファイルをオープンします
$file = file_get_contents('http://www.example.com/', false, stream_context_create($opts));
・特定のヘッダで送信
// ストリームを作成します
$header = Array(
"Content-Type: application/x-www-form-urlencoded",
"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)",
"Accept-language: en",
"Cookie: foo=bar"
);
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>join("\r\n", $header),
)
);
$context = stream_context_create($opts);
// 上で設定した HTTP ヘッダを使用してファイルをオープンします
$file = file_get_contents('http://www.example.com/', false, $context);
◎POSTで送信
$data = array(
'param1' => 'hoge',
'param2' => 'hogehoge',
);
$opt = array('http' => array(
'method' => 'POST',
'content' => http_build_query($data),
));
$contents = file_get_contents('http://www.example.com/', false, stream_context_create($opt));
クエリーキャッシュ関係を調べる
◎クエリーキャッシュが有効になっているか確認する
◎キャッシュのサイズを確認する
「have_query_cache」が「YES」になってても、この↑キャッシュサイズが0だったら キャッシュはされない。
◎キャッシュサイズを設定する
my.cnfで設定
設定後にMySQL再起動 : service mysqld restart
◎クエリーキャッシュされたかを確認する
キャッシュされると「Qcache_hits」とか「Qcache_queries_in_cache」とかの値が増える
SHOW VARIABLES LIKE 'have_query_cache'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | have_query_cache | YES | +------------------+-------+ 1 row in set (0.00 sec)
◎キャッシュのサイズを確認する
show variables like 'query_cache_size'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | query_cache_size | 0 | +------------------+-------+
「have_query_cache」が「YES」になってても、この↑キャッシュサイズが0だったら キャッシュはされない。
◎キャッシュサイズを設定する
SET GLOBAL query_cache_size = 41984;
my.cnfで設定
query_cache_size = 32M
設定後にMySQL再起動 : service mysqld restart
SHOW STATUS LIKE 'Qcache%'; +-------------------------+-------+ | Variable_name | Value | +-------------------------+-------+ | Qcache_free_blocks | 0 | | Qcache_free_memory | 0 | | Qcache_hits | 0 | | Qcache_inserts | 0 | | Qcache_lowmem_prunes | 0 | | Qcache_not_cached | 0 | | Qcache_queries_in_cache | 0 | | Qcache_total_blocks | 0 | +-------------------------+-------+ 8 rows in set (0.00 sec)
キャッシュされると「Qcache_hits」とか「Qcache_queries_in_cache」とかの値が増える
2012/05/27
CakePHP での ログ設定 (CakePHP 1.3.6)
◎config/core.php↓
//PHP エラーレベルで指定Configure::write('log', E_ERROR | E_WARNING | E_PARSE);
[Mode]
debug=0 の時
Fatal → Apacheエラーに出る
WARNIG → appエラーに出る
debug=1 の時 ↑上記のエラーに加えて、
Notice → appデバッグログに出る
◎ログファイル指定
[apache] vhostで設定 /etc/httpd/conf.d/vhosts/[user].conf
CustomLog /var/log/httpd/app_name_access_log common
ErrorLog /var/log/httpd/app_name_error_log ←PHPエラーとかが出る。
→config/設定ファイル.phpで指定する
// ログPATH設定
CakeLog::config('custom_path', array(
'engine' => 'FileLog',
'path' => '/var/log/httpd/[app_name]_'
));
【出力先】
→ 「debug.log」、「error.log」は Cakeがエラーレベルに応じて出しわけます
→ Controller内とかでLogクラス使って出したものが出ます
LOG_DEBUG:/var/log/httpd/[app_name]_debug.log
LOG_ERROR:/var/log/httpd/[app_name]_error.log
【エラー出すときに使う↓メモ】
#var_dump(srlen(array())); //Fatal Errorvar_dump(srlen('',)); //Pars Errorevar_dump(strlen(array())); //WARNIG#var_dump($a); //Notice
登録:
投稿 (Atom)