変奏現実

パソコンやMMORPGのことなどを思いつくまま・・・記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。

この画面は、簡易表示です

2015 / 5月

counterizeiiのPHP Notice: Undefined variable:が酷い

counterizeiiのbrowsniff.phpの1207、1443、1738行目で
宣言していないpda_urとpda_verとpda_codeとpda_nameって変数を使っている。
とエラーが連発。

  • 最終更新: 4年前

なんで随分と気が付かなかったというか・・・
PHPでは未定の変数はnullが返るので、不都合はないけど、ログにいっぱいエラーが出てくるので削除。
範囲指定で、正規化表現 (\$[0-9A-Z_a-z]+) を使って、isset(\1)?\1:null に置換。
browsniff.phpの1207行目は
return array( isset($browser_name)?$browser_name:null, isset($browser_code)?$browser_code:null, isset($browser_ver)?$browser_ver:null, isset($browser_url)?$browser_url:null, isset($os_name)?$os_name:null, isset($os_code)?$os_code:null, isset($os_ver)?$os_ver:null, isset($os_url)?$os_url:null, isset($pda_name)?$pda_name:null, isset($pda_code)?$pda_code:null, isset($pda_ver)?$pda_ver:null, isset($pda_url)?$pda_url:null);
browsniff.phpの1443、1738行目は
return array(isset($os_name)?$os_name:null, isset($os_code)?$os_code:null, isset($os_ver)?$os_ver:null, isset($os_url)?$os_url:null, isset($pda_name)?$pda_name:null, isset($pda_code)?$pda_code:null, isset($pda_ver)?$pda_ver:null, isset($pda_url)?$pda_url:null);
に置き換わる。
counterize.php本体にもあったので、

442c442
< function counterize_gethourlystats($hour = "undef", $type = both)
---
> function counterize_gethourlystats($hour = "undef"/*, $type = both*/)
990c990
<               if($row->url)
---
>               if(isset($row->url))
1044,1045c1044,1045
<       <?php
<
---
>       <?php $items = 0;
>       $complete_amount =0; $max = 0;
1055c1055
<
---
>       $i = 0;
1162c1162
<       <?php
---
>       <?php $i = 0;

でもjetpackもtimezone未設定で結構ログを吐き出している。
/wp-content/plugins/jetpack/modules/holiday-snow.phpの
mktime()、date_create()、strtotime()、date()を使ってる場所で、
It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone ‘UTC’ for now, but please set date.timezone to select your timezone.
が出る。
wp-setting.phpで
// WordPress calculates offsets from UTC.
date_default_timezone_set( ‘UTC’ );
しているせいだけど、これを変えると、ボロボロになりそうなので
jetpack_is_holiday_snow_season()のそこを
date_default_timezone_set( ‘JST’ );
date_default_timezone_set( ‘UTC’ );
で括ってみた。



phpmyadminのアップデートが大杉?

ここ最近 phpmyadminを開くと

最新のがあります!アップデートしてください!

のまま、翻訳が進まないのかな?と思ったが
更新履歴を見ると、毎週アップデートしていた。
なので
ログインがおかしくなったり、
真っ白になったり、
で、困らない限り、
rc が 付くバージョンが出るまで待つことにした。
rc のリリースノートが見当たらないのはなぜだろう?
トップページがその代わりなのかな?
 
 
 



KVMホスト作成 ~Q1900DC-ITXの場合~

J1900のKVMホストを入れ替えたら、その間の記事は消えてしまった。
SCPで丸ごとNUCに戻したハズなのに?
SCPは上書きが苦手だったようだ。
CentOS7のバージョンのnuc(7.0)とJ1900(7.1)のせいか
タイムゾーンの設定が違っていたような気もする。

  1. CentOS7のネットワークインストール版をダウンロード。
    • http://ftp.riken.jp/Linux/centos/7/isos/x86_64/CentOS-7-x86_64-NetInstall-1503.iso
    • 今のバージョンは、7.1.1503 らしい。
  2. Win32DiskImagerをダウンロード。
    1. http://sourceforge.jp/projects/sfnet_win32diskimager から
    2. Win32DiskImager-0.9.5-install.exe をダウンロード。
    3. パソコンにインストール。
    4. 起動してCentOS-7-x86_64-NetInstall-1503.isoをUSBメモリに書き込む。
  3. Q1900DC-ITX本体裏面にUSBメモリを挿し、電源ON、【F2】でUEFIからUSBメモリで起動。
  4. ブート画面でInstall CentOS 7を選択。
  5. インストーラー画面での設定
    1. WELCOM TO CENTOS7
      1. 左のリストから【日本語】を選択。 ※スライダーが中央にくるあたり。
      2. 【続行】ボタンを押す。
    2. ネットワークとホスト名 を選択。
      1. 画面右上のオフ⇒オン
      2. ハードウェアアドレスをメモる。
      3. enop3s0 ※以前のバージョンまではeth0だった。今はeno**** と不定。nucではenop1
        1. DHCPで割り当てられ表示されたIP(192.168.*.*)をメモる。
          1. 所定のIPアドレスを指定されている場合はkvmのブリッジで使用する
            1. ココは仮のIPアドレスでよい。
        2. 全般:この接続が利用可能になった時に自動的に接続するにチェック。
        3. IPv6のセッティング:方式 無視を選択
      4. 【保存】ボタンを押す。
      5. 画面左下:local.host.local になっているホスト名を正しい名前に変える。
      6. 【完了】を押す。
    3. ソフトウェア の インストールソース に【!】が付いていたら、選択。
      1. http://の後に ftp.riken.jp/Linux/centos/7/os/x86_64/ と入力し、【完了】を押す。
      2. 入力が正しければ先の【!】にURLが表記。
    4.  システム の インストール先 に【!】が付いていたら、選択。
      1. HDDの絵に【!】を付け、空容量が十分なら、画面左上の【完了】を押す。
      2. 空容量は足りないが、HDDを全部書き換えていいのなら
        1. 【領域を確保する(R)】ボタンを押す。
        2. 【すべて削除】ボタンを押し、アクションの列が保存から削除に変わったのを確認。
        3. 【領域を確保する(R)】ボタンを押す。
        4. ●パーテーション構成を行いたい を選択し、【完了】を押す。
        5. 既存LMの名前を選択し「-」を押し、一旦パーテーションを全消。
        6. 自動のリンクを押し、パーテーションを作り直し。
    5. ソフトウェアの選択 が 未選択なら、選択。
      1. 最小構成 にチェックが入っていることを確認し、【完了】を押す。
    6. KDUMP が 無効 になっていたら、選択。
      1. 手動を選択し、【完了】を押す。
    7. 【インストールを開始】を押す。
    8. インスト中に
      1. rootのパスワードを設定  安易なパスワードの場合は【完了】ボタンを2度押して抜ける。
      2. ユーザを作成        システムのメールを受け取るユーザを作っておく。
    9. ・・・インスト・・・
    10. 【再起動】ボタンを押す。
      • 今までは、その前にUSBメモリは外していたが、
      • 外すとカーネルがパニックになるので、
      • UEFIが起動したら電源を落とし、その後に外す方がよさそう。
  6. ここからはTeraTermで接続。IPアドレスは上の5.2.3.1でメモってあるはず。
  7.  yumリポジトリィを更新
    1. # yum -y update
  8. yum-cronをインスト
    1. # yum -y install yum-cron
    2. # systemctl start yum-cron
    3. # systemctl enable yum-cron
  9. SeLinuxを外す
    1. # setenforce 0
    2. # getenforce
      • Permissive
    3. # ls -l /etc/sysconfig/selinux で リンクファイルになっていたので、そのリンク先を修正する。
    4. sudo sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config
    5. # reboot
    6. # getenforce
      • Disabled になっているハズ。
  10. 開発ツールなどをまとめてインスト
    1. KVMをインスト
      1. yum -y install qemu-kvm libvirt virt-install bridge-utils virt-top
        1. /etc/sysconfig/libvirt-guests を編集
          • #ON_SHUTDOWN=suspend を有効化
            • するだけでは・・・まだゲストのDBが壊れる!
            • ⇒ ON_SHUTDOWN=shutdown
          • #SHUTDOWN_TIMEOUT=300 を有効化
            • ⇒ SHUTDOWN_TIMEOUT=300
      2. とりあえず起動
        1. systemctl start libvirtd
        2. systemctl enable libvirtd
    2. wgetをインスト
      1. yum -y install wget
    3. gccをインスト ※nkfをコンパイルするため
      1. yum -y install gcc
    4. nkfをインスト
      1. # cd
      2. # wget “http://sourceforge.jp/frs/redir.php?m=jaist&f=%2Fnkf%2F59912%2Fnkf-2.1.3.tar.gz” -O nkf-2.1.3.tar.gz
      3. # tar zxvf nkf-2.1.3.tar.gz
      4. # cd nkf-2.1.3
      5. # make && make install
      6. # cd
      7. # rm -rf nkf-2.1.3*
      8. # ln -s /usr/local/bin/nkf /usr/bin/nkf
    5. mailをインスト
      1. yum -y install mailx
      2. # echo “root: ******” >> /etc/aliases
      3. # newaliases
      4. # echo “aliases test” | mail root
  11. ブリッジ接続用のファイルを作成
    • nmcli c add type bridge autoconnect yes con-name br0 ifname br0
  12. eno1をブリッジ接続に変える
    • ブリッジに繋ぐので一旦削除。この直後!古来より保持され続けた接続済回線が切れる!
      • nmcli c delete enp3s0
    • 便利な電脳空間の接続が絶たれてしまったので、ワイヤー(コンソール)に接続
    • /rootにスクリプトを貼っておけばよかった
      • なぜかそんな時に限って打ち込むコマンドがとても長い法則!!!
      • nmcli c add type bridge-slave autoconnect yes con-name enp3s0 ifname enp3s0 master br0
      • そしてreboot
  13. virbr0が使用中のままの場合。
    • # virsh net-list で Defaultがactive なのを確認。
    • # virsh net-dumpxml default で <bridge name=’virbr0′ stp=’on’ delay=’0’/> を確認。
    • # virsh net-destroy default でvirbr0を削除
    • # virsh net-autostart default –disable で再起動後にvirbr0が再生成されるのを阻止
    • # virsh net-list –all で inactive  なのを確認。
  14. br0の状態
    1. # brctl show でSTP enabled の下noの場合
      1. # systemctl restart network でネットワークを再起動してみる。
      2. # brctl show でSTP enabled の下yesに変わっていることを確認。
      3. bridge name     bridge id       STP enabled     interfaces
        br0                     ****.*****     yes 
  15. IPアドレスを確認 xxx.xxx はIPアドレス **:**:**:**:**:** はMACアドレス
    1. # ip addr
    2. 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
      link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
      inet 127.0.0.1/8 scope host lo
      valid_lft forever preferred_lft forever
      inet6 ::1/128 scope host
      valid_lft forever preferred_lft forever
      2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast    master br0 state UP qlen 1000
      link/ether **:**:**:**:**:** brd ff:ff:ff:ff:ff:ff
      6: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
      link/ether d0:50:99:2b:20:7a brd ff:ff:ff:ff:ff:ff
      inet 192.168.xxx.xxx/24 brd 192.168.1.255 scope global dynamic br0
      valid_lft 14292sec preferred_lft 14292sec
      inet6 ****:***:****:****:****:****:****:****/64 scope global dynamic
      valid_lft 14292sec preferred_lft 12492sec
      inet6 ****::****:****:****:****/64 scope link
      valid_lft forever preferred_lft forever
      7: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0
      state UNKNOWN qlen 500
      link/ether ****::****:****:****:**** brd ff:ff:ff:ff:ff:ff
      inet6 ****::****:****:****:****/64 scope link
      valid_lft forever preferred_lft forever
    3. enp3s0にIPアドレスが割り当てられていればOK。
  16.  これで仮想化ゲストを作成できるハズ
      • 今回もスクリプトで転送したので未確認。
      • VMNAME=$1
        USER=$2
        DEST=$3
        scp /var/lib/libvirt/images/${VMNAME}.qcow2 ${USER}@${DEST}:/var/lib/libvirt/images
        scp /etc/libvirt/qemu/${VMNAME}.xml ${USER}@${DEST}:/etc/libvirt/qemu
        echo ${USER}@${DEST}: virsh define /etc/libvirt/qemu/${VMNAME}.xml
        echo ${USER}@${DEST}: virsh&amp;amp;amp;nbsp; start&amp;amp;amp;nbsp; ${VMNAME}
        ssh ${DEST}
        
  17. パソコンからメールを受信できる様に postfixとdovecotを設定する
  18. 負荷や温度が気になるならMRTGも入れる。
  19. ホスト名を間違えていた場合
    • hostnamectl set-hostname  ****.*****.*** で直す。



top