まだ、PEARのHTML_QuickFormを使っているサイトがいくつか残っていてそのサーバを変えるということでPHP5.5対応しなければならなくなった。
phpとかDBがutf8で動いていたら問題ないんだけど、10年以上前のサイトで文字コードはEUC-JP。
全部作り変えるのは予算・時間的に無理なので少しだけ修正して対応。
問題点:フォームに日本語が表示されない
htmlspecialcharsがPHP5.4からパラメータが変わった模様。
htmlspecialcharsで変換した結果、空文字列になってしまっている。
というわけで、今回問題があったテキスト入力のフォームのファイル2つにちょこっと手を入れる。
pear/HTML/QuickForm/element.php
pera/HTML/QuickForm/textarea.php
この2ファイルの、「htmlspecialchars($value)」のように引数1つだけを渡している部分を、
$charset = HTML_Common::charset();
htmlspecialchars($value, ENT_COMPAT, $charset)
のような感じに修正。
ずいぶん前からQuickForm2を使えといわれておりますが対応できておりません。
そのうちFuelで書き直す。
2014年6月6日金曜日
Vagrant upできない
virtual boxをアップデートした後、再起動したときのこと。
vagrant up仕様とすると以下のエラーが出て動かない。
Vagrant could not detect VirtualBox! Make sure VirtualBox is properly installed.
Vagrant uses the VBoxManage binary that ships with VirtualBox, and requires
this to be available on the PATH. If VirtualBox is installed, please find the
VBoxManage binary and add it to the PATH environmental variable.
OSは、Windows7。
環境変数のPathに、VBoxManage.exeのディレクトリ「C:\Program Files\Oracle\VirtualBox」を追加してもだめ、環境変数にVBOX_MSI_INSTALL_PATHというのもあってそれも「C:\Program Files\Oracle\VirtualBox\」。
なんか調べるとwindowsではVBOX_INSTALL_PATHを読み取るとか。
環境変数に以下を追加してvagrantできるようになりました。
変数名:VBOX_MSI_INSTALL_PATH
変数値:C:\Program Files\Oracle\VirtualBox\
vagrant up仕様とすると以下のエラーが出て動かない。
Vagrant could not detect VirtualBox! Make sure VirtualBox is properly installed.
Vagrant uses the VBoxManage binary that ships with VirtualBox, and requires
this to be available on the PATH. If VirtualBox is installed, please find the
VBoxManage binary and add it to the PATH environmental variable.
OSは、Windows7。
環境変数のPathに、VBoxManage.exeのディレクトリ「C:\Program Files\Oracle\VirtualBox」を追加してもだめ、環境変数にVBOX_MSI_INSTALL_PATHというのもあってそれも「C:\Program Files\Oracle\VirtualBox\」。
なんか調べるとwindowsではVBOX_INSTALL_PATHを読み取るとか。
環境変数に以下を追加してvagrantできるようになりました。
変数名:VBOX_MSI_INSTALL_PATH
変数値:C:\Program Files\Oracle\VirtualBox\
2014年6月2日月曜日
ldapまとめ
ldapに取り組んだとき、取っ掛かりが悪いのでメモを作ってたのを晒します。
(あくまで個人的なものです。信用しないように!)
属性名
ObjectClass属性
log level
(あくまで個人的なものです。信用しないように!)
属性名
属性名 | 値の種類 | もともと の名前 |
c | 国名 | Country |
cn | 一般名、人名 | Common Name |
dc | ドメイン名 | Domain Component |
o | 団体名 | The Organization |
ObjectClass | スキーマ | - |
ou | 部署名 | Organization Unit |
sn | 姓 | Sumame |
st | 都道府県 | State |
uid | ユーザID | User ID |
ObjectClass属性
名前 | 必須属性 |
dcObject | dc |
organization | o |
organizationalRole | cn |
organizationalUnit | ou |
account | uid |
simpleSecurityObject | userPassword |
inetOrgPerson | cn, sn |
posixAccount | uid ( accountなど構造型オブジェクトクラスと一緒に使用する必要あり ) |
posixGroup | cn |
log level
レベル | 名称 | 記録内容 |
0 | - | メッセージを出力しない |
1 | trace | slapd内部の関数のトレース |
2 | packets | パケット処理のデバック情報 |
4 | args | slapd内部の関数のトレースで引数も表示 |
8 | conns | コネクション管理 |
16 | BER | 送受信したパケット |
32 | filter | 検索フィルタ処理 |
64 | config | 設定ファイルに関する処理 |
128 | ACL | アクセス制御に関する処理 |
256 | stats | コネクション、LDAP命令、結果 |
512 | stats2 | 送られたエントリのステータス |
1024 | shell | シェルバックエンドとの通信 |
2048 | parse | エントリの解析処理 |
16384 | sync | LDAP同期レプリケーション |
32768 | none | どのログレベルにも属さないもの |
65535 | any | 全てのレベルを表示 |
ldapadd
オプション | 説明 |
-H | LDAPサーバを参照するURIを指定する。プロトコル、ホスト、ポートのみ指定できる。 指定しない場合、ldap://localhost:389となる。 |
-h | LDAPサーバを指定する。指定しない場合、ローカルホストになる ( 非奨励オプション。-Hの使用を奨励 ) |
-p | LDAPサーバのポート番号を指定する。指定しない場合、389となる ( 非奨励オプション。-Hの使用を奨励 ) |
-x | 簡易認証設定 |
-D | LDAPサーバの認証に使うDN ( バインドDN ) を指定する。指定しない場合は匿名接続となる。 |
-w | LDAPサーバの認証に使うDNのパスワードを指定する。 |
-W | LDAPサーバの認証に使うDNのパスワードをプロンプトから入力することを指定する。 |
-f | LDIFテキストフォーマットファイルを標準入力ではなく、指定したファイルから読み込む。 |
ldapsearch
オプション | 説明 |
-H | LDAPサーバを参照するURIを指定する。プロトコル、ホスト、ポートのみ指定できる。指定しない場合、ldap://localhost:389となる。 |
-h | LDAPサーバを指定する。指定しない場合、ローカルホストになる ( 非奨励オプション。-Hの使用を奨励 ) |
-p | LDAPサーバのポート番号を指定する。指定しない場合、389となる ( 非奨励オプション。-Hの使用を奨励 ) |
-x | 簡易認証設定 |
-D | LDAPサーバの認証に使うDN ( バインドDN ) を指定する。指定しない場合は匿名接続となる。 |
-w | LDAPサーバの認証に使うDNのパスワードを指定する。 |
-W | LDAPサーバの認証に使うDNのパスワードをプロンプトから入力することを指定する。 |
-b | 検索の起点を指定。例えばBaseDNに「ou=dept,dc=unix-power,dc=net」に指定した場合は上位のエントリは検索対象外となります。 |
-s [Scope] | 検索範囲を指定します。[Scope]の値は「base」「one」「sub」の3種類です。「base」はBaseDNエントリのみです。「one」はBaseDNエントリ自身と直下のエントリ、「sub」はBaseDN以下全てのエントリを指します。-sに何も指定しなければ「sub」が適用されます。 |
[Filter] | 検索フィ ルタを指定します。例えば全てのエントリを抽出するには「(objectclass=*)」を指定します。また、cn属性が「tanaka」で終わるエントリを抽出するには「(cn=*tanaka)」とワイルドカードを指定できます。その他、複数のフィルタを組み合わせたAND検索やOR検索も実行できます。例えばcn属性が「tanaka」で終わり、かつcn属性が「taro」で始 まるエントリを抽出するには「(&(cn=*tanaka)(cn=taro*))」とAND検索を表す&を使って複数指定できます。OR検索には「|」、否定記号には「!」記号を使います。 |
[Attr] | 表示対象 とする属性を指定します。例えばあるエントリのtelephonenumber属性値を表示対象にする場合はAttrにtelnephoneNumberを指定します。何も指定しなければ全ての属性値が表示されます。 |
-L | 検索結果をLDIFv1フォーマットで表示する |
-LL | 検索結果をコメントのないフォーマットで表示する |
-LLL | 検索結果をコメント無し、LDIFバージョン表示なしで表示する。 |
moodleリンク書き換え
moodleのサイトを移転してurlが変わった時のHTMLエディター内のurl等の書き換え方。
公式(http://docs.moodle.org/2x/ja/Moodle%E3%81%AE%E7%A7%BB%E8%A1%8C)の情報が古くて、 http://yourserver.com/admin/replace.phpが見つからなかった。
正しくは、
http://yourserver.com/admin/tool/replace/
とか
http://yourserver.com/yourdirectory/admin/tool/replace/
公式(http://docs.moodle.org/2x/ja/Moodle%E3%81%AE%E7%A7%BB%E8%A1%8C)の情報が古くて、 http://yourserver.com/admin/replace.phpが見つからなかった。
正しくは、
http://yourserver.com/admin/tool/replace/
とか
http://yourserver.com/yourdirectory/admin/tool/replace/
2014年3月4日火曜日
TCPDFにフォントを追加
以前は難しくて挫折してしまったTCPDFへのフォントの追加。
最新版6.0.062ならさくっと簡単にできました。
tcpdfを設置したディレクトリ内のtoolにtcpdf_addfont.phpがありこれを使います。
1.toolディレクトリにフォントファイルを設置します。
2.tcpdf/toolに移動
3.php tcpdf_addfont.php -i XXXX.ttf
埋め込み用のフォントを追加するのがこれだけでできる。超簡単。
3のコマンドで自動的にfontsディレクトリにフォントファイルがコピーされ関連ファイルが自動的に作成されます。
注意点は、tcpdf_addfont.phpを覗くとデフォルトの状態で相対パスでうまく動くようになっているので、このあたりをカスタマイズしているとtcpdf_addfont.php内のパスの設定なども変えないといけないことぐらいでしょうか。
最新版6.0.062ならさくっと簡単にできました。
tcpdfを設置したディレクトリ内のtoolにtcpdf_addfont.phpがありこれを使います。
1.toolディレクトリにフォントファイルを設置します。
2.tcpdf/toolに移動
3.php tcpdf_addfont.php -i XXXX.ttf
埋め込み用のフォントを追加するのがこれだけでできる。超簡単。
3のコマンドで自動的にfontsディレクトリにフォントファイルがコピーされ関連ファイルが自動的に作成されます。
注意点は、tcpdf_addfont.phpを覗くとデフォルトの状態で相対パスでうまく動くようになっているので、このあたりをカスタマイズしているとtcpdf_addfont.php内のパスの設定なども変えないといけないことぐらいでしょうか。
2014年2月14日金曜日
CentOS6にFFMpegをyumでインストール
以前yumで入れたときはバージョンが古くて、結局ソースからコンパイルすることになって大変だったんだけど、RPM Fusionから新らし目のものを入れることができたのでメモっときます。
EPELレポジトリの導入
(既に導入済みだったので実際にはしてません。RPM Fusionが依存しているらしい)
# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-5-4.noarch.rpm
RPM Fusionレポジトリの導入
# yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/el/updates/6/x86_64/rpmfusion-free-release-6-1.noarch.rpm http://download1.rpmfusion.org/nonfree/el/updates/6/x86_64/rpmfusion-nonfree-release-6-1.noarch.rpm
EPELレポジトリの導入
(既に導入済みだったので実際にはしてません。RPM Fusionが依存しているらしい)
# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-5-4.noarch.rpm
RPM Fusionレポジトリの導入
# yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/el/updates/6/x86_64/rpmfusion-free-release-6-1.noarch.rpm http://download1.rpmfusion.org/nonfree/el/updates/6/x86_64/rpmfusion-nonfree-release-6-1.noarch.rpm
普段のyum利用時に干渉しないよう以下のファイルを開き enable=0 にしておく
/etc/yum.repo.d/rpmfusion-free-updates.repo
/etc/yum.repo.d/rpmfusion-free-updates-testing.repo
/etc/yum.repo.d/rpmfusion-nonfree-updates.repo
/etc/yum.repo.d/rpmfusion-nonfree-updates-testing.repo
FFMpegのインストール
(思わず入れてしまったがffmpeg-develは必要ない)
# yum install --enablerepo=rpmfusion-free-updates install ffmpeg-devel
# yum install --enablerepo=rpmfusion-free-updates install ffmpeg
かなり簡単にインストール可能。
2014年2月6日木曜日
Apache 2.4 の設定ではまる
Apache 2.4(ほんとは2.3から)アクセス許可周り設定が変わっています。
xamppのバージョンを挙げていつもどおりにvirtual hostの設定をしても 404 access forbidden。
つながりません。
こういう理由でした。↓
http://httpd.apache.org/docs/2.4/upgrading.html#run-time
今まで(2.2まで)は、(バーチャルホスト用の)ディレクトリのアクセス許可の設定を以下のように書いてました。
Order allow,deny
Allow from all
2.4からは、以下のようになる。
Require all granted
ググってもなかなか出てこないもんで少しはまりました。
ちゃんと公式ドキュメントに載ってるのにね。
xamppのバージョンを挙げていつもどおりにvirtual hostの設定をしても 404 access forbidden。
つながりません。
こういう理由でした。↓
http://httpd.apache.org/docs/2.4/upgrading.html#run-time
今まで(2.2まで)は、(バーチャルホスト用の)ディレクトリのアクセス許可の設定を以下のように書いてました。
Order allow,deny
Allow from all
2.4からは、以下のようになる。
Require all granted
ググってもなかなか出てこないもんで少しはまりました。
ちゃんと公式ドキュメントに載ってるのにね。
登録:
投稿 (Atom)