KVMでブリッジ接続

KVMでブリッジ接続可能にする。

■ブリッジ(br0)の作成
 ※1から作成するのは面倒なので「eth0」をコピーして作成
 # cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-br0
 # vi /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0 #「eth0」⇒「b0」変更
TYPE=Bridge # 追加
# HWADDR=00:00:00:00:00:00 # 削除又はコメントアウト
BOOTPROTO=static
BROADCAST=192.168.1.255
IPADDR=192.168.1.10
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes

ネットワークアダプタ(eth0)の修正
 # vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
TYPE=Ethernet # 追加
HWADDR=00:00:00:00:00:00
# BOOTPROTO=static # 削除又はコメントアウト
# BROADCAST=192.168.1.255 # 削除又はコメントアウト
# IPADDR=192.168.1.10 # 削除又はコメントアウト
# NETMASK=255.255.255.0 # 削除又はコメントアウト
# NETWORK=192.168.1.0 # 削除又はコメントアウト
ONBOOT=yes
BRIDGE=br0 # 追加

■ネットワークの再起動とインターフェースの確認
 # /etc/init.d/network restart
 # brctl show

bridge name     bridge id               STP enabled     interfaces
br0             8000.001d09f09bae       no              eth0
virbr0          8000.000000000000       yes

■不要なNAT用仮想ブリッジの削除と確認
 # virsh net-autostart default --disable

ネットワーク default の自動起動設定が解除されました

 # virsh net-destroy default

ネットワーク default は停止されました

 # brctl show

bridge name     bridge id               STP enabled     interfaces
br0             8000.001d09f09bae       no              eth0

ファイアウォール(iptables)でフィルタリングしないように修正
 # vi /etc/sysctl.conf

# 以下の設定を追加
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

■再起動する
 ※カーネルパラメータのリロード等、面倒なので再起動しておく。

【CakePHP】selectタグで空の値が入った選択項目を追加

「belongsTo」「hasOne」関連で、select フィールドを自動生成すると

<select name="data">
  <option value="1">data1</option>
  <option value="2">data2</option>
  <option value="4">data4</option>
</select>

この先頭に未選択状態の選択項目を追加する場合

 $form->input('data',array('empty' => '未選択'));

このように書くと

<select name="data">
  <option value="">未選択</option>
  <option value="1">data1</option>
  <option value="2">data2</option>
  <option value="4">data4</option>
</select>

となる

参考:
http://book.cakephp.org/ja#options-empty-1405

【CAKEPHP】Authコンポーネントでusernameとpasswordフィールド変更

Authコンポーネントで「username」⇒「account」・「password」⇒「passwd」を変更する場合
 $this->Auth->fields = array('username' => 'account' ,'password' => 'passwd');

よく忘れるので注意)
 フィールド変更したら、login.ctpのフィールド名も変更すること。
 

【CakePHP】alphaNumeric修正

centos系でCakePHP1.3.8をインストールすると以下のメッセージが表示される。
「PCRE has not been compiled with Unicode support.」

PCREを修正するのは面倒なので以下サイトを参考に修正

http://www.ryuzee.com/contents/blog/2274


libs内のvalidation.php
修正前:
function alphaNumeric($check) {
$_this =& Validation::getInstance();
$_this->__reset();
$_this->check = $check;

if (is_array($check)) {
$_this->_extract($check);
}

if (empty($_this->check) && $_this->check != '0') {
return false;
}
$_this->regex = '/^[\p{Ll}\p{Lm}\p{Lo}\p{Lt}\p{Lu}\p{Nd}]+$/mu'; ←ここを修正
return $_this->_check();
}

修正後:
function alphaNumeric($check) {
$_this =& Validation::getInstance();
$_this->__reset();
$_this->check = $check;

if (is_array($check)) {
$_this->_extract($check);
}

if (empty($_this->check) && $_this->check != '0') {
return false;
}
$_this->regex = '/^[a-z\d]*$/i'; ←ここを修正
return $_this->_check();
}