Software」カテゴリーアーカイブ

pukiwikiを使う際のPHP tips

添付ファイルのサイズ上限変更

pukiwikiで添付ファイルのサイズ上限を変更するときに設定するのは,pukiwiki/plugin/attach.ini.phpの

ini_set('upload_max_filesize', '2M')
define('PLUGIN_ATTACH_MAX_FILESIZE', (1024 * 1024));

とphp.iniの

upload_max_filesize = 2M

がよく解説されているが,php.iniの

post_max_size = 8M

こいつも,上限に引っかかるとアップロードできないので注意が必要。

TrueCrypt

TrueCryptという暗号化ソフトを使っているのだけれど,ここ最近妙に動作がのろくなったので原因を探っていたのだけれど,どうやらQuickTimeをインストールしたときに同時に入ったiPodServiceなるものが邪魔をしているようだ。確証はないのだけれど,このサービスを停止したらそれまで遅かったファイルのブラウズも元通りに戻ったようだ。

同じような目的でpgpdiskも使ってみたのだけれど,頻繁にOSがフリーズするようなので最近は使っていない。

ベリサインの署名付PDFを検証する方法

覚え書き

PDFに署名を付けるのは三菱のSignedPDFというソフトを使う方法があるらしい。でもって,その署名付のファイルを検証するには,Adobe Reader にプラグインを入れる必要がある。

http://www.mdis.co.jp/misty/verifier/download.html

こいつをインストールするとAdobe Reader で検証が可能になる。

参考にしたページ

http://support.adobe.co.jp/faq/faq/qadoc.sv?225720+002

php-4.4.2

覚え書き

インストール

ダウンロード

http://www.php.net/downloads.php#v4 からダウンロード

php-4.4.2.tar.bz2のチェックサム

md5: 28051cd9ef43490dd9727a4d442011b5

コンパイル
./configure \
--with-apxs2=/usr/local/apache2/bin/apxs \
--enable-mbstring \
--with-zlib-dir=/usr/local/lib \
--with-gd --with-jpeg-dir=/usr/local/lib \
--with-png-dir=/usr/local/lib \
--with-freetype-dir=/usr/local/lib
make
インストール
make install

設定

添付ファイルのサイズ変更

すぐに忘れてしまうので,覚え書き。

/usr/local/lib/php.ini の

memory_limit = 200M      ; Maximum amount of memory a script may consume (8MB)
; Maximum size of POST data that PHP will accept.
post_max_size = 200M
; Maximum allowed size for uploaded files.
upload_max_filesize = 200M

と,pukiwiki の plugin/attach.ini.php の

// Max file size for upload on PHP (PHP default: 2MB)
ini_set('upload_max_filesize', '200M');
// Max file size for upload on script of PukiWikiX_FILESIZE
define('PLUGIN_ATTACH_MAX_FILESIZE', (200 * 1024 * 1024)); // default: 1MB

以上を書き換える必要がある。ここの例では上限を200MBとした。なお php.ini を変更したときは Apache をリスタートする必要がある。~

添付するファイルのサイズが大きくなると,サーバの処理時間が長くなりタイムアウトすることがある。その場合は php.ini の

max_execution_time = 300     ; Maximum execution time of each script, in seconds

を数字を大きくすればよい。

UNIXでもTeraTerm の様なマクロを使いたい

Windowsでは,TeraTermという便利なtelnetクライアントがある。telnet以外にもシリアルや,最近はsshも使えたりして非常に便利なのだが,マクロが使えるのもありがたい。ネットワーク機器などにtelnetでログインして情報を取得したり,コンフィグを書き換えたりと便利に使える。

同じようなことをunixでやろうとしたときに,いいtelnetクライアントが見つからなかった。そこで見つけたのがPerlで使う,Net::Telnetと言うモジュール。

これを使うと,マクロのようなことができる。

#!/usr/bin/perl
use Net::Telnet ();
#my($output,$telnet,$password,$rhost);
$rhost = 'hogehoge';
$password = 'fugafuga';
$telnet = new Net::Telnet ( Timeout=>10 );
$telnet->open("$rhost");
$telnet->waitfor('/Password: $/i');
$telnet->print("$password");
$telnet->waitfor('/>$/i');
$telnet->print('enable');
$telnet->waitfor('/Password: $/i');
$telnet->print("$password");
$telnet->waitfor('/#$/i');
$telnet->print('sho vlan bri');
($output) = $telnet->waitfor('/#$/i');
print $output;
$telnet->close;
exit;

grepでcsvファイルの特定列から抽出する

grepは行中の文字列を探し出すわけだが,csvの特定列にある文字列だけを対象にしてgrepするときにはどうすればよいか。

grepは正規表現が使えるようなので,正規表現でcsvを記述すれば何とかなりそう。

grep -e “.*\,.*\,string\,” file.txt

こうすることで,file.txtというファイルの3番目の列のstringという文字列を検索して表示してくれる。

#本当にこんなんでいいのかな(^^;?

csvファイルから必要な要素を取り出す

awkのデフォルトのフィールドセパレータ(FS)は空白なので,csvから必要な要素(フィールド)を取り出すにはFSを変更する必要がある。

awkでは-Fで,FSが変えられる。

$ awk -F , ‘{print $1, $3 }’ hoge.csv

スクリプトでFSを変えるときはBEGINが使われる事が多い

awk ‘BEGIN { FS=”,”;} {print $1, $3 }’ hoge.csv