2014年10月13日月曜日

さくらVPSで借りているサーバをCentOS7に移行しました。

さくらVPS CentOS6.5のサーバを新たにCentOS 7をクリーンインストールして移行しました。
(6.5から7へUPGRADEもできますが、今後のことも考えてクリーンインストールします。)
LAMP関係は動いて当然なので気にしてないのですが、
・OSGrid opensimサーバ
・画像生成サーバ
の為に、1),2)が動作必須のアプリ&モジュールです。


1) opensim関連
  ○ mono

wget http://download.mono-project.com/repo/xamarin.gpg
rpm --import xamarin.gpg
yum-config-manager --add-repo http://download.mono-project.com/repo/centos/
   yum install mono
      でさくっと入った。(Mono JIT compiler version 3.10.0)
      以前は関連モジュールをコンパイルして入れていました。

 ○ opensim.exe
   CentOS 7 からは、DBは、MySQL→MariaDB へ変更。といっても
   旧データ、設定はそのまま使えて、問題なく動作。

2) 画像関連:
 ○ ImageMagick-perl-6.7.8.9-10.el7.x86_64
 ○ netpbm

   これも問題なくインストール&動作OK

3) VPN pptpd
  CentOS7,firewall-cmdで設定した情報があまりなかったが、なんとなく設定したら簡単に
動いた。(CentOS6.5よりも簡単設定)
 以下、設定メモ

 #yum install pptpd
  /etc/pptpd.conf
    localip 192.168.0.1
    remoteip 192.168.0.234-238,192.168.0.245

  /etc/rsyslog.conf
     *.=debug;\
          news.none;mail.none     -/var/log/pptpd

  systemctl restart rsyslog.service

  /etc/ppp/options.pptpd
  #ms-dns 8.8.8.8
  ms-dns 210.224.163.4
  ms-dns 210.224.163.3

 /etc/ppp/chap-secrets
 # Secrets for authentication using CHAP
 # client        server  secret                  IP addresses
 username * password *

 ファイアウォール設定
 firewall-cmd --add-port=1723/tcp --permanent
 firewall-cmd --add-port=514/udp --permanent
 firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p 47 -j ACCEPT
 firewall-cmd --zone=public --add-masquerade --permanent
 firewall-cmd --reload

 firewall-cmdで--add-masqueradeを実行するとip_forwardの設定は不要。

 #systemctl start  pptpd.service
 #systemctl enable pptpd.service

4) mondorescue (ISOイメージまるごとバックアップ)

 これは動作しません。まだCentOS7用は出ておりません。
 無理やり、CentOS6用をインストールして使て見ましたがだめでした。
 CentOS 6用をインストールして使うと、grubが無いって怒られます。
 CentOS 7からgrubはgrub2になってる。
 


==以下自分用のコマンドメモです。CentOS7 Sakura == メモ
・RUN LEVEL 3に変更
ln -sf /lib/systemd/system/runlevel3.target /etc/systemd/system/default.target

・いらないサービスはやめる。
systemctl disable abrt-ccpp.service
systemctl disable abrt-oops.service
systemctl disable abrt-vmcore.service
systemctl disable abrt-xorg.service
systemctl disable abrtd.service
systemctl disable atd.service
systemctl disable dbus-org.freedesktop.nm-dispatcher.service
systemctl disable auditd.service
systemctl disable avahi-daemon.service
systemctl disable bluetooth.service
systemctl disable accounts-daemon.service
systemctl disable avahi-daemon.service
systemctl disable dbus-org.freedesktop.ModemManager1.service
systemctl disable dmraid-activation.service
systemctl disable display-manager.service
systemctl disable firstboot-graphical.service
systemctl disable fprintd.service
systemctl disable gdm.service
systemctl disable hypervkvpd.service
systemctl disable hypervvssd.service
systemctl disable irqbalance.service
systemctl disable iscsi.service
systemctl disable ksm.service
systemctl disable ksmtuned.service
systemctl disable libstoragemgmt.service
systemctl disable libvirtd.service
systemctl disable lvm2-monitor.service
systemctl disable mdmonitor.service
systemctl disable microcode.service
systemctl disable ModemManager.service
systemctl disable multipathd.service
systemctl disable nfs-lock.service
systemctl disable packagekit-offline-update.service
systemctl disable rngd.service
systemctl disable rpcbind.service
systemctl disable rtkit-daemon.service
systemctl disable smartd.service
systemctl disable spice-vdagentd.service
systemctl disable sysstat.service
systemctl disable systemd-readahead-collect.service
systemctl disable systemd-readahead-drop.service
systemctl disable systemd-readahead-replay.service
systemctl disable tuned.service
systemctl disable vmtoolsd.service
systemctl disable chronyd
 chronyd ==> ntpdの代わりらしい

systemctl list-unit-files | grep enable
cups.path                                   enabled
crond.service                               enabled
cups.service                                enabled
dbus-org.fedoraproject.FirewallD1.service   enabled
dbus-org.freedesktop.NetworkManager.service enabled
dbus-org.freedesktop.nm-dispatcher.service  enabled
firewalld.service                           enabled
getty@.service                              enabled
netcf-transaction.service                   enabled
NetworkManager-dispatcher.service           enabled
NetworkManager.service                      enabled
postfix.service                             enabled
rsyslog.service                             enabled
serial-getty@.service                       enabled
sshd.service                                enabled
cups.socket                                 enabled
dm-event.socket                             enabled
iscsid.socket                               enabled
iscsiuio.socket                             enabled
lvm2-lvmetad.socket                         enabled
default.target                              enabled
multi-user.target                           enabled
nfs.target                                  enabled
remote-fs.target                            enabled
reboot

[[リポジトリー]]
yum install -y epel-release
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
wget http://download.mono-project.com/repo/xamarin.gpg
rpm --import xamarin.gpg
yum-config-manager --add-repo http://download.mono-project.com/repo/centos/

vi /etc/yum.repos.d/CentOS-Base.repo
 [centosplus]
 name=CentOS-$releasever - Plus
 mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
 #baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
 gpgcheck=1
 enabled=1

wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
rpm -iUvh rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm


[[yum or make]]
yum install postgre*
yum install mariadb*
yum install php php-cli php-pdo php-mysql php-common php php-cgi php-devel php-gd php-mbstring php-pear php-xmlrpc php-xml php-gd php-pgsql php-json
yum install screen
yum install mono
yum install perl-DBD*
yum install vsftpd
yum install clamd
yum localinstall http://mirror.centos.org/centos/6/os/x86_64/Packages/nkf-2.0.8b-6.2.el6.x86_64.rpm
yum install ImageMagick-*
wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
  http://www.mk-mode.com/octopress/2014/08/07/centos-7-0-installation-of-chrootkit/
  earching for Suckit rootkit... Warning: /sbin/init INFECTED => これは誤動作らしいのでOK
yum install pptpd
yum install ftp
yum remove cronie-anacron =>anacronは嫌い。
yum install cronie-noanacron =>いつものcronにする。
yum install libjpeg*
yum install hdparm

/etc/yum.conf
exclude=kernel* centos* mono*

yumでダウンロード
yumdownloader bash
yum install --downloadonly --downloaddir=/tmp bashでも可能

[[perlモジュール]]
cpan[1]> install Jcode
cpan[2]> install Expect
cpan[1]> install Time::HiRes
cpan[2]> install YAML
install Spreadsheet::ParseExcel
install Spreadsheet::XLSX
install Module::Install
install Module::Install::AuthorTests
install Module::Install::Repository
install Net::Twitter::Lite
install XML::RSS
install JSON::Any
install XML::Simple
install DateTime::Format::HTTP
install LWP::Protocol::https
install Config::Auto
install Net::OAuth

WWquitW-Shorten-3.06
 perl Build.PL
 perl Build
 perl Build install
WWW-Shorten-Bitly-1.17
WWW-Shorten-Google-0.01

[[セキュリティー]]
/etc/ssh/sshd_config
PermitRootLogin no
systemctl reload sshd.service

/etc/hosts.allow
pptpd : ALL

ALL : 127.0.0.1
sendmail : ALL

vsftpd : xxx.xxx.xxx.xxx
.
.
sshd : xxx.xxx.xxx.xxx
.
.
syslogd :  xxx.xxx.xxx.xxx

/etc/hosts.deny
ALL:ALL

/etc/sysconfig/selinux
SELINUX=disabled

[[ファイアーウォール]]
[root@www ~]# firewall-cmd --state
running
firewall-cmd --add-service=http --permanent
firewall-cmd --add-port=9000/udp --permanent
firewall-cmd --add-port=9001/udp --permanent
firewall-cmd --add-port=9002/udp --permanent
firewall-cmd --add-port=9003/udp --permanent
firewall-cmd --add-port=9000/tcp --permanent
firewall-cmd --add-port=9001/tcp --permanent
firewall-cmd --add-port=1723/tcp --permanent
firewall-cmd --add-port=514/udp --permanent
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p 47 -j ACCEPT
firewall-cmd --zone=public --add-masquerade --permanent
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 1 -s xxx.xxx.xxx.xxx/32 -j ACCEPT


firewall-cmd --reload
firewall-cmd --list-services
[root@www ~]# firewall-cmd --list-all
public (default, active)
  interfaces: eth0
  sources:
  services: dhcpv6-client http ssh
  ports: 9001/udp 1723/tcp 9003/udp 9002/udp 9000/udp 9001/tcp 9000/tcp 514/udp
  masquerade: yes
  forward-ports:
  icmp-blocks:
  rich rules:


GUI
# firewall-config


[[pptpd]]
/etc/pptpd.conf
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245

/etc/rsyslog.conf

$ModLoad imudp
$UDPServerRun 514

 *.=debug;\
      news.none;mail.none     -/var/log/pptpd
local1.*                                                /var/log/routerlog

/etc/sysconfig/rsyslog
SYSLOGD_OPTIONS="-x -c 5"
#-xはDNS参照しない

/etc/ppp/options.pptpd
#ms-dns 8.8.8.8
ms-dns 210.224.163.4
ms-dns 210.224.163.3

/etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
username * ?????? *

systemctl start  pptpd.service
systemctl enable pptpd.service

systemctl stop rsyslog.service
systemctl start rsyslog.service

[root@www log]# netstat -an | grep -i udp | grep 514
udp        0      0 0.0.0.0:514             0.0.0.0:*
udp6       0      0 :::514                  :::*


[[FTP]]
/etc/vsftpd/vsftpd.conf
anonymous_enable=NO
#listen_ipv6=YES
listen=YES

systemctl start vsftpd.service
systemctl enable vsftpd.service

[[http]]

systemctl start httpd.service
systemctl enable httpd.service

apachectl -V
EVENTモードになってないこと。preforkモードで十分です。


::1 internal dummy connection ログ抑制
==
SetEnvIf User-Agent "internal dummy connection" nolog

<VirtualHost *:80>

  ServerName    www.picolix.jp


  ErrorLog      /virtual/lisa/log/error.log
  TransferLog   /virtual/lisa/log/transfer.log
  CustomLog     /virtual/lisa/log/www_access.log combined env=!nolog
==


[[mysql]]

旧サーバ:
mysqldump -ulisa -p?????????????? crenazumina > crenazuminadb-????????.txt
mysqldump -ulisa -p?????????????? lisa > lisadb-????????.txt
mysqldump -ulisa -p?????????????? mwiki > mwikidb-????????.txt
mysqldump -ulisa -p?????????????? opensim > opensimdb-????????.txt
mysqldump -ulisa -p?????????????? opensim073 > opensimdb073-????????.txt
mysqldump -ulisa -p?????????????? wordpress > wordpressdb-????????.txt


/etc/my.cnf.d/server.cnf
[mysqld]
character-set-server = utf8


systemctl start mariadb.service
systemctl enable mariadb.service

mysql -u root -p

set password for root@localhost=password('????????');
CREATE DATABASE opensim DEFAULT CHARACTER SET utf8;
CREATE DATABASE crenazumina DEFAULT CHARACTER SET utf8;
CREATE DATABASE lisa DEFAULT CHARACTER SET ujis;
CREATE DATABASE opensim073 DEFAULT CHARACTER SET utf8;
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8;
CREATE DATABASE mwiki DEFAULT CHARACTER SET utf8;


CREATE USER 'opensim'@'localhost' identified by '????????';
CREATE USER 'lisa'@'localhost' identified by '??????????????';

SET PASSWORD FOR 'opensim'@'www.picolix.jp' = PASSWORD('????????');
GRANT ALL ON *.* TO 'lisa'@'localhost';

mysql -u lisa -p?????????????? crenazumina < crenazuminadb-????????.txt
mysql -u lisa -p?????????????? lisa < lisadb-????????.txt
mysql -u lisa -p?????????????? opensim < opensimdb-????????.txt
mysql -u lisa -p?????????????? opensim073 < opensimdb073-????????.txt
mysql -u lisa -p?????????????? wordpress < wordpressdb-????????.txt
mysql -u lisa -p?????????????? mwiki <  mwikidb-????????.txt &

[[postgrtesql]]

旧サーバ:
pg_dump lisa -f pgdump????????.tgz -F c -Z 0 -v -U lisa
pg_dump lisa2 -f pgdump????????-lisa2.tgz -F c -Z 0 -v -U lisa

yum install postgresql postgresql-server postgresql-libs postgresql-devel postgresql-contribsu - postgres
initdb --encoding=EUC_JP --no-locale
c
systemctl enable postgresql.service

-bash-4.2$ createuser -s -d -r -P lisa
Enter password for new role:
Enter it again:??????????????

-bash-4.2$createdb lisa
-bash-4.2$createdb lisa2


-bash-4.2$ psql
psql (9.2.7)
Type "help" for help.

postgres=# \du
                             List of roles
 Role name |                   Attributes                   | Member of
-----------+------------------------------------------------+-----------
 lisa      | Superuser, Create role, Create DB              | {}
 postgres  | Superuser, Create role, Create DB, Replication | {}

postgres=# \l
                             List of databases
   Name    |  Owner   | Encoding | Collate | Ctype |   Access privileges
-----------+----------+----------+---------+-------+-----------------------
 lisa      | postgres | EUC_JP   | C       | C     |
 postgres  | postgres | EUC_JP   | C       | C     |
 lisa2     | postgres | EUC_JP   | C       | C     |
 template0 | postgres | EUC_JP   | C       | C     | =c/postgres          +
           |          |          |         |       | postgres=CTc/postgres
 template1 | postgres | EUC_JP   | C       | C     | =c/postgres          +
           |          |          |         |       | postgres=CTc/postgres

postgres=# ALTER USER postgres encrypted password '??????????????';
ALTER ROLE
postgres=# ALTER USER lisa encrypted password '??????????????';
ALTER ROLE

/var/lib/pgsql/data/pg_hba.conf
local   all         lisa      md5

systemctl restart postgresql.service

[root@www data]# psql -d lisa -U lisa
Password for user lisa:
psql (9.2.7)

[root@www db]# pg_restore -d lisa -U lisa pgdump????????.tgz
Password:
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 508; 2612 16388 PROCEDURAL LANGUAGE plpgsql lisa
pg_restore: [archiver (db)] could not execute query: ERROR:  language "plpgsql" already exists
    Command was: CREATE PROCEDURAL LANGUAGE plpgsql;

[root@www db]# pg_restore -d lisa2 -U lisa pgdump????????-lisa2.tgz
Password:

-bash-4.2$ psql -U lisa
Password for user lisa:
psql (9.2.7)
Type "help" for help.

lisa=# \l
                             List of databases
   Name    |  Owner   | Encoding | Collate | Ctype |   Access privileges
-----------+----------+----------+---------+-------+-----------------------
 lisa      | postgres | EUC_JP   | C       | C     |
 postgres  | postgres | EUC_JP   | C       | C     |
 lisa2     | postgres | EUC_JP   | C       | C     |
 template0 | postgres | EUC_JP   | C       | C     | =c/postgres          +
           |          |          |         |       | postgres=CTc/postgres
 template1 | postgres | EUC_JP   | C       | C     | =c/postgres          +
           |          |          |         |       | postgres=CTc/postgres
(5 rows)

lisa=# \d
                         List of relations
 Schema |                  Name                  |   Type   | Owner
--------+----------------------------------------+----------+-------
 public | blog_url_conv_data                     | table    | lisa
 public | blog_url_conv_data_seq_seq             | sequence | lisa
 public | blog_url_conv_data_url-crenazumina_seq | sequence | lisa
 public | comsearch_release_seq                  | sequence | lisa
 public | dmoz_link_cnt                          | table    | lisa
 public | dmoz_link_robot                        | table    | lisa
 public | eki_data                               | table    | lisa
 public | nouki_mst                              | table    | lisa
 public | pazdora                                | table    | lisa
 public | pazdora_kskill_m                       | table    | lisa
 public | pazdora_skill_m                        | table    | lisa
 public | pazdora_type_m                         | table    | lisa
 public | secondlife_history                     | table    | lisa
 public | share_d                                | table    | lisa
 public | sozai_dmoz_art_m                       | table    | lisa
 public | syouhin_data                           | table    | lisa
 public | testnouse                              | table    | lisa
(17 rows)

-bash-4.2$ psql -U lisa
Password for user lisa:
psql (9.2.7)
Type "help" for help.

lisa=# \c lisa2
You are now connected to database "lisa2" as user "lisa".
lisa2=# \l
                             List of databases
   Name    |  Owner   | Encoding | Collate | Ctype |   Access privileges
-----------+----------+----------+---------+-------+-----------------------
 lisa      | postgres | EUC_JP   | C       | C     |
 postgres  | postgres | EUC_JP   | C       | C     |
 lisa2     | postgres | EUC_JP   | C       | C     |
 template0 | postgres | EUC_JP   | C       | C     | =c/postgres          +
           |          |          |         |       | postgres=CTc/postgres
 template1 | postgres | EUC_JP   | C       | C     | =c/postgres          +
           |          |          |         |       | postgres=CTc/postgres
(5 rows)

lisa2=# \d
        List of relations
 Schema |  Name   | Type  | Owner
--------+---------+-------+-------
 public | share_d | table | lisa
 public | user_m  | table | lisa
(2 rows)


[[CRON]]
/etc/crontab
PERL5LIB=/root/perl5/lib/perl5:/home/shoichi/perl5/lib/perl5:
↑これがないと、perlスクリプトがエラーです。

/etc/cron.d/0hourly
全て#
/etc/cron.d/dailyjobs
全て#

systemctl stop crond.service
systemctl start crond.service
# run-parts
45 * * * * root run-parts /etc/cron.hourly
46 3 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
59 23 * * * root /virtual/lisa/cron/analog_rotate.sh > /dev/null 2>&1
2,12,22,32,42,52 * * * * root /virtual/lisa/cron/cron1.sh > /dev/null 2>&1

[[postfix]]
/etc/postfix/main.cf
mynetworks = 127.0.0.0/8 , xxx.xxx.xxx.xxx/32

systemctl stop postfix.service
systemctl start postfix.service


[root@www cron.daily]# pwd
/etc/cron.daily
[root@www cron.daily]# ln -s /virtual/lisa/cron/syschk.sh syschk.sh
[root@www cron.daily]# ln -s /virtual/lisa/cron/viurscheck-clama.sh viurscheck-clama.sh
dns-x86.tar.gz
cp dnstran /usr/bin/
cp analogurldecode/usr/bin/analogurldecode
analog-6.0.tar.gz 置き換える
cp analog /usr/bin/analog


[[シンボリックリンク]]
ln -s /bin/mono /usr/local/bin/mono
ln -s /bin/perl /usr/local/bin/perl
ln -s /usr/bin/convert /usr/local/bin/convert


[[メモ]]
GNOME 日本語フォルダーを英文字に
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/a077changelang.html
teraterm
 設定‐その他の設定‐ANSIカラー以外全部外す
/usr/lib/systemd/system
/lib/systemd/system

[root@www cron.daily]# hdparm -t /dev/vda2
/dev/vda2:
 Timing buffered disk reads: 486 MB in  3.03 seconds = 160.40 MB/sec
[root@www23254ue backup]# hdparm -t /dev/vda2
/dev/vda2:
 Timing buffered disk reads:  10 MB in  3.58 seconds =   2.79 MB/sec
 Timing buffered disk reads: 124 MB in  3.01 seconds =  41.13 MB/sec


[[サービス]]
----------------------------------
[root@www ~]# cd /usr/lib/systemd/system
[root@www system]# cat opensim.service
[Unit]
Description=opensim Server
After=mariadb.target

[Service]
Type=notify
EnvironmentFile=/etc/opensim.env
ExecStart=/usr/bin/screen -S $PROGNAME -d -m $MONO $OSGRID/OpenSim.exe
ExecStop=/usr/bin/screen -S $PROGNAME -p 0 -X stuff $'quit\n' 1> /dev/null 2>&1

KillSignal=SIGCONT
PrivateTmp=true

[Install]
WantedBy=multi-user.target

----
/etc/opensim.env
----
PROGNAME=OpenSim
OSGRID=/projects/opensim
MONO=/usr/local/bin/mono
export MONO_THREADS_PER_CPU=125
export LANG=C
ulimit -s 262144

[[ネットワーク]]

nmtui
nmcli c d "System eth0" ; sudo nmcli c u "System eth0"
nmcli c d "ens33" ; sudo nmcli c u "ens33"



2014年10月11日土曜日

さくらのVPS 遅すぎ。

さくらのVPS(1G)を2台借りていますが、内1台がなんとなく以前から動作が遅かった。というか遅すぎでした。
今回、2台ともCentOS7をクリーンインストールしました。(CentOS6.5から7への移行でいろいろ面倒でしたが)
で、遅かった1台で、改めてhdparmで速度測定。
# hdparm -t /dev/vda2
/dev/vda2:
Timing buffered disk reads:   4 MB in  3.25 seconds =   1.23 MB/sec
使い物にならないぐらい激重に遅い。
もう一台は、
[root@www log]# hdparm -t /dev/vda2
/dev/vda2:
Timing buffered disk reads: 488 MB in  3.00 seconds = 162.41 MB/sec
で問題ありません。
ペナルティー制限が掛けられているのかと思い、さくらに問いあわせ致しましたが、「お各様の仮想サーバについて確認いたしましたところ、同居する他の仮想サーバにてやや負荷が高い状態が発生しておりましたため、その影響を受けた可能性がございます。」との回答。
ん~。。。これだと使えないじゃないですか!
15時間ぐらい、hdparm -t /dev/vda2を10秒置きに取ってみたグラフが↓
図1:
図2:さくらのVPSコントロールパネル:リソース情報:DISK I/O




図1:青はいいと思われる、www.picolix.jpの方で赤はだめなもう一つのVPSサーバ。
平均で4倍も違う。200MB/sec以上出ている時間帯もあるので、これは他の共有して
いるVPSが常に過負荷にあるのだと思います。(図2は、上位モニターから見た図で
同じ傾向です。当然ですが・・)

ようは、はずれのグループを引いている。。。諦めがつきました。
ということで、この1台のVPSは解約しようと思っています。ちょうど11月がサーバ更新時期ですので。もし借りるとしたら今後はGMOを試そうかと思っています。


2014年10月4日土曜日

Google Playで個人アプリ開発者まで住所公開が必須になる

実際の連絡先住所の追加 消費者保護法遵守のため、2014 年 9 月 30 日より [設定] ページへの実際の住所の追加が必要になります。 住所を追加すると、すべてのユーザーに対して Google Play のアプリ詳細ページでこの住所が表示されます。 実際の住所が変更になった場合は、必ず [設定] ページの情報を更新してください。
Google Play DeveloperConsoleの[設定] ページを見たら、住所欄が追加されていました。 このページの住所欄の説明だと、
連絡可能な現在の有効な住所を入力してください。アプリやアプリ内アイテムを販売する場合は、Google のデベロッパー利用規約と消費者保護法に基づいて住所を入力する必要があります。この利用規約に違反すると、アカウントまたはアプリの販売が停止される場合があります。住所が変わった場合は必ず、この情報を最新のものにしてください。メールや住所を入力することで、Google がアプリと一緒にその情報を公開、開示することに同意したことになります。
のようになっています。



私は1本フリーCrenaCam で公開していますが、フリーでも住所を公開しないとだめなんだろうか? まあ、住所は書かないでおこう。BANされてもいいや、この際。

2014年9月22日月曜日

opensim.exeのwindowsでのサービス起動

Windows Azureの仮想サーバ(Windows 2008 Server R2)で、opensim.exeを使い、JOGRID(Japan Open Grid)に接続しているのですが、Windows Azureでは保守メンテで月1回程度また不定期にサーバがリブートされます。
リブート後は、都度ログインして手動でopensim.exeを起動して面倒なので、サービス起動するようにしました。
最初、sc createで無理からサービス登録しましたが起動せず。
しょうがないので、昔作った「サービスからプログラムを自由に起動できる」アプリを使用しました。
(自分用のメモを兼ねていますので分かりずらいかも。上級者向けです><)

用意するもの、
http://icebar.cloudapp.net/service.zip
ダウンロード後、c:\serviceに展開する。
(展開フォルダーはどこでも良いですが、以下の説明は、c:\service配下に置いた場合として説明しています。)


==梱包内容==
simple.exe  ----- simpleサービス本体プログラム
kill.exe    ----- プロセス停止プログラム
process.lst ----- 自動起動したいプロセス一覧リスト(simple.exeが参照する)
install.bat ----- インストール
uninstall.bat ---- アンインストール
startup.bat ----- サービスプログラム起動
stop.bat    ----- サービスプログラム停止
jogrid.bat  ----- OpenSim.32BitLaunch.exeの起動

事前にopensimの環境設定がされていることが前提です。(OSは64ビットです。)



1) opensimの設定変更

 opensimを停止し、以下の2ファイルを修正して、opensimをREST コンソールモードに変更します。
 (サービスで起動するためコンソール画面は出てきません。そのかわりに、サーバを操作したい時は、OpenSim.ConsoleClient.exeでサーバに接続して操作します。)

 OpenSim.ini
 [Network]
    ConsoleUser = "xxxx"
    ConsolePass = "zzzzzz"
    console_port = 8003


  OpenSim.ConsoleClient.ini
  [Startup]
    user = xxxx
    host = localhost
    pass = zzzzzz

  ・xxxxとzzzzzzはOpenSim.iniとOpenSim.ConsoleClient.ini同じに設定
 ・hostはlocalhostで認識しなければローカルIPアドレスを記載する。
    私の場合は、10.0.0.12
 ・ポートは、使っていないTCPポートを指定。通常8003で可


2) simpleサービスのインストール

 ●インストール前に以下の設定ファイルを確認。
 a) process.lst
    C:\Windows\System32\cmd /c C:\service\jogrid.bat
  
  ※C:\service以外のフォルダーの場合は、C:\serviceを書き換えてください。

  b) jogrid.bat
    SET OPENSIM_PATH=C:\projects\jogrid-opensim-08152014.v0.8.1.3a643e2\bin

  ※opensim.exeがあるフォルダーにOPENSIM_PATH=以下を書き換えて下さい。

  [メモ] cdで、opensim.exeのある場所にディレクトリー移動しています。
  opensim.exeはサービスから起動することを想定していませんので、
  これをしないと、opensim.*.iniが見つけられずエラーとなります。

 c)install.bat

  sc config simpleservice type= own start= auto depend= MySQL

   ※データベースにsqliteを使っている場合は、depend= MySQLの指定は外す。
   私は、MySQLを使っているので、MySQLが起動した後に、simpleserviceが起動するようにします。
   そうしないと、先にopensimが立ち上がると、データベース接続エラーがでるので。

 ●install.batの実行

  cmd.exeでDOS窓を出して、
  c:\>
    c:\>cd \service
    c:\service>insatll 実行

  「OpenService failed - 指定されたサービス・・存在しません」
   と表示されても無視して下さい。(インストール済みの場合は削除後にインストールされます。)

  ※サンプル画面では、jogrid.batの次にSMAILでメール送信しています。
   無くて構いません。最後に、ChangeServiceConfig SUCCESSと表示されればOKです。


  サービスの登録確認と設定変更
  「管理ツール」-「サービス」で「Simple Service」をダブルクリックし
   プロパティーー「ログオン」を表示し、アカウントにログインユーザとパスワードを設定してOKとする。



  ※普通は、ローカルシステムアカウントのままで良いのですが、Windows Azureの Windwos 2008 Server R2を日本語化して使うと、
   SYSTEMアカウントのシステムロケールが日本にならないので、ローカルユーザのアカウントを使います。

  ※サービスに登録されただけでまだこの段階では OpenSim.32BitLaunch.exeは起動していません。   

3) サービスを起動して、OpenSim.32BitLaunch.exeを動かす。

  「サービス」から開始としても良いのですが、ここではDOS窓から
  startup.batを実行してみます。

  ※起動後、process.lstを変更した場合は、
   stop.bat / startup.batを実行する必要があります。

  ※サービス画面から開始はできますが停止はできません。
   OpenSim.32BitLaunch.exeが停止できないためsimpleserviceが
   ずっと待ち状態となります。
   stop.batで止めて下さい。

3) 動作確認
 1分ぐらい待ってから、OpenSim.ConsoleClient.exeを起動してプロンプトが出ればOK



  ※早すぎると、opensimが起動しきれていないので、ポート8003で待ち状態
   となっていないためOpenSim.ConsoleClient.exeがエラー落ちしますが、
   問題ありません。時間を空けて再度OpenSim.ConsoleClient.exeを起動して
   ください。

 以上で完了です。サーバが起動すればログオンしなくても自動起動します。

4) 停止方法:stop.bat
  simpleserviceを停止させます。
  OpenSim.32BitLaunch.exeのプロセスを強制停止します。

 ※OpenSim.32BitLaunch.exeを複数動かしている場合、全て停止します

5) アンインストール方法:uninstall.bat

 
  サービスの登録を削除します。

 ※stop.batを実行した後、uninstallすると、
  「指定されたサービスはインストールされたサービスとして存在しません。」
   と表示されますが、問題ありません。

2014年9月20日土曜日

Windows Azure Windows Server 2008の日本語化時のサービスプログラムのシステムロケールの挙動


Windows Server 2008R2 SP1複数言語ユーザー インターフェイス言語パック
http://www.microsoft.com/ja-jp/download/details.aspx?id=2634
 Windows言語設定変更
  地域と言語(display languag):
   形式、キーボードと言語
   管理 システムアカウント、システムロケール
  すべて日本語を選択
 
Windoすべて日本語を選択 Server 2008 R2 向け Internet Explorer 11 言語パック
http://www.microsoft.com/en-us/download/details.aspx?id=40904
  すべて日本語を選択

に設定したけど、サービスプログラムから起動したアプリは、システムロケールを日本としてくれない。

・ログインのコンソール画面から、crenahtml2jpg.exeを起動してWEB画面をキャプチャー:日本語キャプチャーされる。(正常)

【 タイトル:World of Tanks ? 無料オンラインゲーム】



・サービスプログラムからcrenahtml2jpg.exeを起動して、WEB画面をキャプチャー:英語圏からのようにキャプチャーされる。
WEBのタイトルも日本語が英語になってるので、英語圏からのアクセスとして認識されてしまってる。

【タイトル:World of Tanks ? Free Online Game】


たぶんアプリが、システムロケールを認識できてないと思われるが、解消方法は今のところ不明><。Azureでの運用はあきらめるか・・
逆に英語圏(US)から見た場合の日本のサイトということで使えるかも。



※サービスを「ログオン」-「アカウント」でいつもログインしている
  ユーザに設定したら、とりあえずOKとなった。(9/22追記)

2014年9月15日月曜日

MAC BootCampのwindows7でいつのまにか輝度変更できず。最高輝度になったままに。

MacBook (13-inch, Aluminum, Late 2008) BootCamp3.3のwindows7でいつのまにか輝度変更できず。
最高輝度になったままになってしまった。
F1,F2キーで輝度のバーはスライダーするものの画面は変わらず、BOOTCAMPのパネルの輝度調整でも同じで変化せず。
NVRAM/PRAM をリセット,SMCのリセットしてもだめ。
また、最高輝度の状態で長時間動かしていると画面が白っぽく霧がかかったようになり最後は真っ白になってしまう。
(何回かディスプレイの蓋を閉めて、開けると元にもどる。)
ディスプレイドライバーを古いバージョンに戻してみたら輝度調整できるようになり、画面が白くなる現象もなくなった。

コントロールパネルのデバイスドライバーでディスプレイの「ドライバーを元に戻す」としたら、
一つ前に戻ると思ったら削除状態と同じになってしまった。
=>仕方がないので、以前NVIDIAからダウンロードしてバックアップをとっておいた、
280.26-notebook-win7-winvista-64bit-international-whql.exe
をインストールしていたら正しく動作した。

バージョンダウン前のドライバー(このバージョンだと輝度調整できず、最高輝度のまま)
331.82-notebook-win7-winvista-64bit-international-whql.exe

バージョンを落とした。(このバージョンだと輝度調整OK)
280.26-notebook-win7-winvista-64bit-international-whql.exe





2014年8月16日土曜日

LINE Creators に登録しました。(その1)

LINE Creators Marketに登録すべく、LINEのスタンプ作成しました。

夏休みを利用して、スタンプ40個(かわいい、日常系です)を作成、1週間かかった。
先ほどリクエストして、審査待ちです。審査通ったら公開します。

https://creator.line.me/ja/guideline/

2014年8月3日日曜日

京都市立芸術大学 オープンキャンパス

京都芸大のオープンキャンパス(8月3日)に娘と妻を車で送ってきました。
http://www.kcua.ac.jp/oc2014/#summary
自宅から京久御山IC-都縦貫道(大山崎IC-大原野IC)-沓掛‐京都市立芸術大学まで25分で到着。(早い!)、帰りは一般道で40分です。

※もし、電車で行くとなると、京都まで20分、京都から市バスで50分!とまあ、とっても不便な
ところにあります。バスで50分も揺られたくないです。
https://www.google.co.jp/maps/place/%E4%BA%AC%E9%83%BD%E5%B8%82%E7%AB%8B%E8%8A%B8%E8%A1%93%E5%A4%A7%E5%AD%A6/@34.97441,135.662334,17z/data=!4m2!3m1!1s0x0:0x83c26a455ae075bf?hl=ja

2014年8月2日土曜日

Microsoft Azure定期メンテナンス

Microsoft Azure では時々、メンテナンスが行われ、そのためインスタンスの再起動が行われます。(サーバリブート)となります。
当方が借りているサーバは、米国西部ですので、8/2がメンテナンスとなります。
メンテナンスはいいのですが、これだと24時間連続稼働の重要なシステムは止まってしまいますので、定期メンテナンスによるダウンタイムの発生を防ぐために、アーキテクチャに可用性セットを使用しないとだめです。


==今回のMicrosoftからのお知らせ==

メンテナンス作業の予定をお知らせします。弊社では、ネットワークハードウエアのメンテナンスを実施いたします。更新は可能な限り、各メンテナンス地域の就業時間外に実施されます。単一および複数のインスタンスのVirtual Machine および Cloud Service デプロイメントはメンテナンス作業の間一度再起動されます。 各インスタンスの再起動には30分~45分かかります。

以下の表では、開始予定時刻を日本時間 (JST)と世界協定時刻 (UTC) で示しています。メンテナンスは2日に分けて実施され、お客様のVirtual Machine もしくはCloud Serviceはいずれかの日程で影響を受けます。各日程のメンテナンスは、開始時刻から 12 時間以内に終了する予定です。
地域 日本時間 (JST) 世界協定時刻 (UTC)
米国西部
(前半)
12:00
2014/8/2
3:00
2014/8/2
米国西部
(後半)
12:00
2014/8/3
3:00
2014/8/3

地域 日本時間 (JST) 世界協定時刻 (UTC)
米国中南部
(前半)
10:00
2014/8/2
1:00
2014/8/2
米国中南部
(後半)
10:00
2014/8/3
1:00
2014/8/3

地域 日本時間 (JST) 世界協定時刻 (UTC)
東日本
(前半)
20:00
2014/8/1
11:00
2014/8/1
東日本
(後半)
20:00
2014/8/2
11:00
2014/8/2

地域 日本時間 (JST) 世界協定時刻 (UTC)
東南アジア
(前半)
21:00
2014/8/1
12:00
2014/8/1
東南アジア
(後半)
21:00
2014/8/2
12:00
2014/8/2












==================
シャットダウン開始が、8/2 17]20、起動が17:52でお知らせどおり約30分ぐらいのダウンでした。





2014年6月26日木曜日

Windows 8.1(無印)からWindows 8.1 Proにアップグレード

Dell Inspiron 15 7000 / Windows 8を購入し、いろいろWindows 7風に操作をカスタマイズして快適になった。(タブレットを意識した操作画面は、ノートPCには不向きで、ましてアプリの開発&MMORPGにPCを使っている身にとってタイル画面や全画面表示なんて無用の長物です・・・)


今回、DELLから購入したPCにバンドルされているWindows 8は無印で、これだと、クライアントHyper-Vとかいろんなツール(例えばグループポリシーエディターgpedit)がありません。


そこで、BizSparkのMSDNをもっているので、Windows Proにアップグレードすることにしました。
作業は簡単で、コントロール パネル->すべてのコントロール パネル項目->システム
->「Windowsの新しいエディションで機能を増やす」でプロダクトキーを入力するだけで、アップグレードできます。(WindowsのUPDATEのような感覚でできます。)
アップグレード後、ライセンス認証リンクが有効になっていますので認証して終了です。
カスタマイズした環境はすべて引き継がれます。
(Windows8.1 proのメディアとか必要ありませんでした。)



2014年6月1日日曜日

chromeで「このウェブページにアクセスできません」が頻発し出した。

ここ2,3週間ぐらい前から、chromeで「このウェブページにアクセスできません」が
時々出るようになった。リロードすると表示されるので気にしなかったのですが、
ここ2,3日で発生頻度がひどくなってきた。ほとんどのページで
「このウェブページにアクセスできません」となるものの再アクセスをすると表示される。


===>追記:http://support.eonet.jp/ac/273/
EO光の「DNSサーバーの障害発生について」でした。
========================


1) chromeの履歴・キャッシュを全部削除、cookieも全て削除。
 =>直らず。 
2) ケイ・オプティコムの回線終端装置、eo光電話アダプタ、YAMAHA RTX1000を再起動。
 =>直らず
3) セキュリティーソフト:Microsoft Security Essentialsを停止
 =>直らず
どの対処もだめで、自分だけでなく、家族の者も同様の症状。
"ERR_NAME_RESOLUTION_FAILED"<=最初からこのエラーメッセージを出してくれればすぐに分かったのに・・・・
とういことで、DNSが引けてないか、不安定のようです。

PCはDHCPで、DNSサーバはルーター(192.168.0.1) が自動指定されています。
とりあえず、DNSをケイ・オプティコムのDNSに直接指定して大丈夫になりました。
YAMAHA RTX1000は、昔、中古でオークションで買ったもので、また中古でYAMAHA RTX1100にでも買い直します。

==DNS IPアドレスの調査 ==
YAMAHA RTX1000
# show status pp 1
PP[01]:
PPPoEセッションは接続されています
接続相手: K-OPT-BAS
通信時間: 25分18秒
受信: 102625 パケット [119392934 オクテット]  負荷: 0.3%
送信: 72139 パケット [9785312 オクテット]  負荷: 0.1%
PPPオプション
    LCP Local: Magic-Number MRU, Remote: CHAP Magic-Number MRU
    IPCP Local: IP-Address Primary-DNS(60.56.0.135) Secondary-DNS(218.251.89.134), Remote: IP-Address
    PP IP Address Local: 182.166.175.187, Remote: 101.143.252.75
    CCP: None

==DNSサーバの設定===
代替サーバにSecondary-DNS(218.251.89.134)を指定しても
いいですが、googleの8.8.8.8を設定。(深い意味はありません。)



2014年5月29日木曜日

MAC Boot Camp Support Software 5.1.5621 / ビデオドライバー / OpenSim

BootCampが5.1にUPDATEされていましたので、5.0からUPDATEしました。


MacBook Pro (Retina, 13-inch, Late 2013)で、BootCamp 5.0 (Windows 7)の時は、
OpenSimのViewer Firestorm-Beta 4.5.1を使うと起動時に「サポート外のビデオカード・・」とダイアログが出ていました。
無視してログインすると一応画面が出てきますが全体的に金属光沢がかかったような画面になっていました。
また、Windowサイズを変更すると、メニューバーからのプロダウンが透明化されて白文字しか表示されず見づらかったのですが、これが解消されました!


まあ、綺麗な画面で見たいときは、MACで起動してFirestorm-Beta 4.5.1で
動かしていたのですが、これでBootCamp 5.1 (Windows 7)でも綺麗に表示されます。

※ビデオドライバーがUPDATEしたようにも思えないのですが、何がかわったのだろうか?BootCamp 5.1にUPDATEした時にビデオドライバーが再インストールされ治ったのかもしれません。(画面解像度とか初期化されていたので再設定した。)


さくらのVPS「ローカルネットワーク 大阪リージョン」追加

3/13にVPS 大阪リージョンもローカルネットワークが追加されていました。
当方は、大阪リージョンで2台のVPSを借りていますので早速設定しました。
一つは、www.picolix.jpでCentOS release 6.5で、もう一つは、www.sco.jpでWindows 7 Ultimateです。(windowsはISOイメージでインストール)
www.sco.jpからwww.picolix.jpへ画像キャプチャーデータの転送をリアルタイムで行っているのですが従来だとインターネット経由(といっても上位のどこかのスイッチで折り返していると思いますが。)でしたが、これがローカルネットワーク経由(1Gbps ベストエフォート)で転送できるようになります。(すばらしい!)

ということで早速設定することに。
1)管理画面からサーバを再起動すると、ネットワークアダプターが2個増えて全部で3個になります。
※サーバをリブートしても増えず、VPSコントロールパネルから再起動したら増えていました。

2)スイッチ(仮想)を追加します。10個まで無料で追加できます。
3)スイッチにサーバを接続
  それぞれeth1に接続
  ※サーバを停止させていないと接続追加できません。


5)サーバネットワーク設定
 ■www.sco.jp/ Windows 7 Ultimate
   ローカル エリア接続 2 : eth2
   ローカル エリア接続 3  : eth1
   が生成されていますので、ローカル エリア接続 2は使わないので、無効にする。
   ※環境によっては、ローカル エリア接続 2がeth1,ローカル エリア接続 3がeth2に
   なる場合もあります。DOS窓で、ipconfig /allと打ってMACアドレスでどちらに割り当てられたかを事前に調べておきます。


  ローカル エリア接続 3にIPアドレス 192.168.200.10を設定


 ■www.picolix.jp / CentOS release 6.5
  [root@www ~]# ifconfig -a
  で、eth1,eth2が追加されていることが分かります。
  [root@www ~]# cd /etc/sysconfig/network-scripts/
  [root@www network-scripts]#
  [root@www network-scripts]# cp ifcfg-eth0 ifcfg-eth1
  viでifcfg-eth1を編集
  [root@www network-scripts]# cat ifcfg-eth1
  DEVICE="eth1"
  IPADDR="192.168.200.11"
  NETMASK="255.255.255.0"
  ONBOOT="yes"
  TYPE="Ethernet"
  ARPCHECK=no

  ついでに、 ifcfg-eth0にARPCHECK=noを追加
  どういうわけか、ARPCHECK=noを入れないと、eth1をifupした時に、
  eth0が応答しなくなります。
  [root@www network-scripts]# cat ifcfg-eth0
  DEVICE="eth0"
  IPADDR="YY.YYY.YYY.YYY"
  NETMASK="255.255.254.0"
  GATEWAY="XX.XX.XX.XX"
  ONBOOT="yes"
  TYPE="Ethernet"
  ARPCHECK=no

    [root@www network-scripts]# ./ifup eth1
  でeth1有効化
  これで、www.sco.jp 192.168.200.10にアクセスできるようになります。

  [root@www network-scripts]# ping 192.168.200.10
  PING 192.168.200.10 (192.168.200.10) 56(84) bytes of data.
  64 bytes from 192.168.200.10: icmp_seq=1 ttl=128 time=1.74 ms
  64 bytes from 192.168.200.10: icmp_seq=2 ttl=128 time=0.826 ms


 後はwww.sco.jpの自前のアプリで、www.picolix.jpに転送しているところを192.168.200.11
 に書き換えて終わり。


 

2014年5月12日月曜日

OSgrid テレポート先のChannelVersionの取得:(OpenMetaverse libomv-0.9.1)

この記事は自分用です。
最近、OSgridのopensimのバージョンアップ更新頻度が高く、当方所有のSIM (aska) もUPDATEするのも手間です。
Viewer Firestormでテレポートすると、simulatorバージョンが異なると、↓のように
simulatorバージョン(ChannelVersion)の詳細を表示してくれます

この詳細バージョンのデータを何とか、OpenMetaverse libomvのDLLでChannelVersionを取得したく、FireStorm Viewerのソースコードとlibomv-0.9.1のソースコードを少し漁りました。
結局、サーバからAgentMovementCompleteのメッセージが来たときに、目的のデータが入っていました。

とりあえず、、OpenMetaverse libomvのNetworkManager.csに###部を追加して強制的に表示してみた。
これだと汎用性がないので、別途OpenMetaverse.Packetsをcallbackで自アプリの方に実装する予定。


//***NetworkManager.cs
        private void IncomingPacketHandler()
        {
            IncomingPacket incomingPacket = new IncomingPacket();
            Packet packet = null;
            Simulator simulator = null;

            while (connected)
            {
                // Reset packet to null for the check below
                packet = null;

                if (PacketInbox.Dequeue(100, ref incomingPacket))
                {
                    packet = incomingPacket.Packet;

                    simulator = incomingPacket.Simulator;

                    if (packet != null)
                    {
                        // Skip blacklisted packets
                        if (UDPBlacklist.Contains(packet.Type.ToString()))
                        {
                            Logger.Log(String.Format("Discarding Blacklisted packet {0} from {1}",
                                packet.Type, simulator.IPEndPoint), Helpers.LogLevel.Warning);
                            return;
                        }
//#################### 追加
                        if (packet.Type.ToString() == "AgentMovementComplete")
                        {
                            Console.WriteLine("#### Networkmanager.cs ####:..." + packet.Type.ToString());
                            string packetText = PacketDecoder.PacketToString(packet);
                            Console.WriteLine(packetText);
                        }    
//####################
                        // Fire the callback(s), if any
                        PacketEvents.RaiseEvent(packet.Type, packet, simulator);
                    }
                }
            }
        }
====


ChannelVersion: OpenSim 0.8.0 Dev          OSgrid 0.8.0 (Dev) 73891c7: 2014-05-09 (Unix/Mono)
が取得できてます。で、それがどうしたのと言われても特に何もありません・・。


関連:

FireStorm Viewer のビルド & サイズ制限解除(1024mまでok,メッシュも)


2014年4月20日日曜日

SMAIL 4.18にバージョンアップしました。openSSL 1.0.1gにライブラリをバージョンアップ。脆弱性対策(CVE-2014-0160)

「OpenSSLに脆弱性、クライアントやサーバにメモリ露呈の恐れ」ということで、
openssl 1.0.1から 1.0.1fが対象です。
SMAILはメールクライアントソフトで、サーバタイプではないのですが、
OpenSSLに脆弱性に該当するメールサーバに接続した場合に影響あるかも
ということで、openSSL 1.0.1gのライブラリーを組み込みました。
*前バージョンSMAIL 4.17は、openSSL 1.0.1eを使用しています。



OpenSSLに脆弱性、クライアントやサーバにメモリ露呈の恐れ

2014年1月17日金曜日

[メモ] oci_bind_by_nameでのbindする値がNULL時のエラー対策。PHP 4.4.9 / oci8 Revision: 1.273 / Oracle Version 10.1



PHP Version 4.4.9 / oci8 Revision: 1.273 / Oracle Version  10.1
で oci_bind_by_name($stmt, ':dummy', $dummy);
$dummy が NULLの時、oci_bind_by_nameはなぜかエラーとなります。

エラー内容:
Allowed memory size of 8388608 bytes exhausted (tried to allocate -153092211 bytes)

ググっても対策方法が出て来ないのでトライ&エラーで対応。

$dummy = "";
$dummy = null;
どれもだめで、以下にするとOK

$dummy .= "";
空文字を連結するとなぜかOKとなる。多分変数$dummyのメモリー上に
何かがセットされて、oci_bind_by_nameの方で正しくNULLが認識された!?


$sql = "select sysdate from dual where sysdate > :dummy";
if($dummy == ""){
          $dummy .= "";
}
$stmt = oci_parse($Conn,$sql);
oci_bind_by_name($stmt, ':dummy', $dummy);