libmysqlclient.so.15 => not found
ldd /etc/httpd/modules/mod_auth_mysql.so
で
libmysqlclient.so.15 => not found
ならば
cd /usr/lib
ln -s /usr/lib/mysql/libmysqlclient.so.15 libmysqlclient.so.15
2009年11月17日
ldd /etc/httpd/modules/mod_auth_mysql.so
で
libmysqlclient.so.15 => not found
ならば
cd /usr/lib
ln -s /usr/lib/mysql/libmysqlclient.so.15 libmysqlclient.so.15
2009年11月11日
参考もと
http://d.hatena.ne.jp/clearlab/20091026/1256532860
DAGリポジトリ
http://dag.wieers.com/rpm/
rpm --import http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
ffmpeg関連をインストール
yum -y install lame amrnb amrwb faac faad2 nasm x264 xvidcore ffmpeg zlib-devel libX11-devel libXt-devel amrnb-devel amrwb-devel faac-devel lame-devel xvidcore-devel gcc
yum -y install ffmpeg-devel
yum -y install re2c
wget http://sourceforge.net/projects/ffmpeg-php/files/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2/download
tar jxvf ffmpeg-php-0.6.0.tbz2
cd ffmpeg-php-0.6.0
phpize
./configure
make
make install
gpac(MP4Box)インストール
yum -y install wxGTK
yum -y install wxGTK-devel
wget ftp://ftp.pbone.net/mirror/atrpms.net/sl5-x86_64/atrpms/stable/libfaad0-2.6.1-13.el5.i386.rpm
rpm -Uvh libfaad0-2.6.1-13.el5.i386.rpm
yum -y install freeglut
wget ftp://ftp.pbone.net/mirror/atrpms.net/sl5-i386/atrpms/stable/libmad0-0.15.1b-4.el5.i386.rpm
rpm -Uvh libmad0-0.15.1b-4.el5.i386.rpm
rpm -Uvh gpac-libs-0.4.5-0.7.20080217cvs.el5.i386.rpm gpac-0.4.5-0.7.20080217cvs.el5.i386.rpm
vi /etc/ld.so.conf.d/local.conf
/usr/local/libと記入
/sbin/ldconfig実行
2009年10月28日
contact_us.php
line22
//if(ereg("[^ -~]",$enquiry))$enquiryに2byteの文字が含まれる時だけ処理を行う
//$enquiryにひらがな(あ~ん)が含まれる時だけ処理を行う
# if (tep_validate_email($email_address)) {
if ((tep_validate_email($email_address)) && (ereg("[^ -~]",$enquiry))){
# if ((tep_validate_email($email_address)) && (mb_ereg_match(".*[あ-ん]",$enquiry))){
2009年10月18日
2009年10月 9日
# vi /etc/yum.repos.d/utterramblings.repo
enabled=0
を
enabled=1
# yum -y install php-devel
# vi /etc/yum.repos.d/utterramblings.repo
enabled=0
# wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2
# bzip2 -dc eaccelerator-0.9.5.3.tar.bz2 | tar xvf -
場所確認
# updatedb
# locate phpize
# cd eaccelerator-0.9.5.3
# phpize
# ./configure --enable-eaccelerator=shared --with-php-config=/usr/bin/php-config
# make
# make install
ファルダ/usr/lib/php/modules/
確認
php.ini
最終行に追加
zend_extension="/usr/lib/php/modules/eaccelerator.so"
eaccelerator.shm_size="32"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
eaccelerator.allowed_admin_path="/home/info/htdocs/foo/control.php"
Step 4. Creating cache directory
mkdir /tmp/eaccelerator
chmod 0777 /tmp/eaccelerator
解凍したフォルダにcontrol.phpが
あるので、ID passを変更して
設置する
2009年10月 3日
現在の設定値を確認するには、
# mysqld --help
とする。 MySQL-5.xでは、
# mysqld --verbose --help
としないと、確認できなかった。
あるいは、クライアントから、
mysql> SHOW VARIABLES;
でもOK。
MyISAM テーブルのインデックスを保存しておくバッファの大きさ。サーバ全体で共有される。メモリに余裕があれば、MyISAMのみのMySQL専用サーバなら、RAMの1/2、Apache などと共用なら、RAM の1/4程度とする。ただし、サイズを大きくすると、OSのページングのために、逆に遅くなることもあるので注意。
set-variable = key_buffer=256M
MySQL> SET GLOBAL key_buffer=268435456;
Key_reads/Key_read_requests によりキャッシュミス率を算出し、これを0.003より小さくなるよう、key_buffer_size を割り当てるのが理想らしい。
InnoDB テーブルのデータとインデックスを保存するためのバッファの大きさ。サーバ全体で共有される。InnoDB のみの MySQL 専用サーバなら、RAMの 70-80% 位まで上げてもよいらしい。MyISAM の key_buffer_size よりも、性能にシビアに影響する。
innodb_buffer_pool_size = 256M
データの書き込み、得に大きなサイズのデータの書き込み性能に影響する。ただし、大きなサイズほどデータのリカバリ時間を要する。サイズを変更する場合、正常停止後、作成済みのログファイル(デフォルトは /var/lib/mysql/ib_logfileX)を削除し、mysqlサーバを起動しなおす必要がある。
innodb_log_file_size = 64M
OSによるバッファリングを抑制する。InnoDBのみを使っている場合に、MySQLとOSとによるダブルバッファリング状態になってしまうのを抑制する。LinuxとFreeBSDでは必要な設定だが、Windowsの場合は不要らしい。
innodb_flush_method=O_DIRECT
ログファイルへの書き込み方法を設定する。そのため、書き込みの際の性能に影響する。
0:ログファイルを使用しない、1:ディスクへ書き込み、2:メモリへ書き込み。当然、2がパフォーマンスで優るが、書き込みの信頼性をあげるなら1が妥当。
innodb_flush_log_at_trx_commit = 1
Ver. 4.0.1 以降では、実行した Query の SQL とその結果をキャッシュし、同じ Query がキャッシュにある場合は、SQL を実行せずに、キャッシュの内容を返す機能がある。そのためのバッファの大きさ。サーバ全体で共有される。なお、該当するテーブルの内容が変更された場合には、キャッシュもなくなるので、キャッシュによる不具合が生じることはない。
query_cache_size= 16M
ただし、長いこと使っていると、キャッシュの断片化によりキャッシュからの検索処理がばかにならなくなるので、時々 FLUSH QUERY CACHE にてキャッシュのクリアをやってあげた方がよいらしい。
MySQL では、DB は MyISAM ならテーブル単位でファイルとして保存されている。table_cache は、一度開いたテーブルを格納しているファイルのファイルポインタを保存しておくためのキャッシュで、次回からのアクセスを高速化する。
set-variable = table_cache=1024
mysql> SET GLOBAL table_cache=1024;
SHOW STATUS; で、Open_tables の値が大きい場合、 table_cache の数を増やした方がパフォーマンスが向上する。
sort時に使用されるバッファの大きさ。ORDER BY や GROUP BY 使用時のパフォーマンスに影響する。
set-variable = sort_buffer_size=512K
MyISAMでsort時に使用されるバッファの大きさ。ORDER BY や GROUP BY 使用時のパフォーマンスに影響する。
set-variable = myisam_sort_buffer_size=512K
テーブルを順次読み込んでいく時に使用されるバッファの大きさ。INDEXが使用されない場合に使われる。
set-variable = read_buffer_size=256K
テーブルをランダムで読み込んでいく時に使用されるバッファの大きさ。
set-variable = read_rnd_buffer_size=256K;
MySQL> SET GLOBAL read_rnd_buffer_size=262144;
ORDER BY や、GROPY BY を行う場合のパフォーマンスに影響する。
INDEXが使用されない場合の、テーブル結合時に使われるバッファ。
set-variable = join_buffer_size=128K
クライアントからの接続数の上限。無闇に大きくすると、逆にパフォーマンスを落とす原因にもなる。
set-variable = max_connections=140 set-variable = max_user_connections=120
mysql> SET GLOBAL max_connections=xxx;
通常スレッドは、クライアントからの接続ごとに生成され、その後破棄されるが、thread_cache_seize の数だけ破棄されずに再利用することが出来る。
set-variable = thread_cache_size=10
mysql> SET GLOBAL thread_cache_size=10;
DBへのコネクションのタイムアウト時間。これが大きすぎると、再利用されず無駄になる。
set-variable = wait_timeout=60
mysql> SET GLOBAL wait_timeout=60;
DNSの逆引きをしないようにする。この場合、クライアントの登録の際、IPアドレスまたは localhost で登録する必要がある。
skip-name-resolve
有効にすると、index の更新の際、その table が閉じられるまでバッファを DISK に書き込まない。そのため、キー数が多い場合に有用。MyISAM にのみ適用され、デフォルトではCREATEの際に指定したもののみに適用されるようになっている。
set-variable = delay_key_write=ALL
それでは、いつtableが閉じられるか、というと...
ただし、これを使う場合には、起動オプションに --myisam-recover=BACKUP,FORCE を追加すべき、とのこと。
両方使用する場合、key_buffer_size と innodb_buffer_pool_size の大きさの合計は、メモリの 70-80% までにしたほうがよい。また、Linux x86 では、以下の値が 2GB 以上だと危険らしい。最悪の場合、サーバがクラッシュする。
innodb_buffer_pool_size + key_buffer_size +
max_connections * (sort_buffer_size + read_buffer_size) + max_connections * 2 MB
これは glibc に起因する問題らしいが、この記載は 4.1 のマニュアルにしかないようなので、glibc のバージョン依存で、既に解決されているのかもしれない。また、32bitの話とも考えられる?
2009年9月21日
'**************************
' Ngram
' 文書をN文字単位に分解
' 2009/04/24
'**************************
Function Ngram(ByVal 文字列, ByVal n)
If Len(文字列) - n > 0 Then
MaxIndex = Len(文字列) - n
Else
MaxIndex = 0
End If
ReDim tmpArray(MaxIndex)
For i = 0 To MaxIndex
tmpArray(i) = Mid(文字列, i + 1, n)
Next i
Ngram = tmpArray
End Function
【使い方】
第一引数に対象となるテキスト、第二引数にN(文字列長)を指定します。
(ユニグラムなら1、バイグラムなら2、トライグラムから3を指定してください)
Sub NgramSample()
テキスト = "鏡の国のアリス"
Debug.Print Join(Ngram(テキスト,2),"-")
End Sub
→イミディエイトウィンドウには「鏡の-の国-国の-のア-アリ-リス」と表示
--------------------------
わかち書き
'**************************
' Segmenter
' 文書を分かち書き
' 2009/04/20
' 事前に[ツール]-[参照設定] より
' Microsoft Word 11.0 Object Library の参照設定をしておいてください。
'**************************
Function Segmenter(ByVal 文字列)
Dim Word文書 As New Word.Document
Dim 単語配列()
i = 0
Word文書.Paragraphs(1).Range.Text = 文字列
For Each 単語 In Word文書.Paragraphs(1).Range.Words
If 単語.Text <> 文字列 Then
ReDim Preserve 単語配列(i)
単語配列(i) = 単語.Text
i = i + 1
End If
Next
Segmenter = 単語配列
Set Word文書 = Nothing
Word文書.Close
End Function
【使い方】
Sub SegmenterSample()
テキスト = "鏡の国のアリス"
Debug.Print Join(Segmenter(テキスト),"-")
End Sub
→イミディエイトウィンドウには「鏡-の-国-の-アリス」と表示されます。
【付記】
分割の候補が複数あるときに、複数出力
参考
2009年9月 6日
ttp://alaev.ru/cgi-bin/nph-hap.cgi/000010a/http/67.59.186.119/cgi-bin/py.cgi/000110a/http/www.post-mortem.info/cgi-bin/miscopolemammediquellidiinfocamere.pl/000010a/687474703a2f2f7777772e7061676572616e6b63686b2e636f6d2f746572612f6974656d2f3330343537302f736e6f776c616e643a31303032343230302f
SetEnvIf User-Agent "\[ru\]" bad
SetEnvIf User-Agent "Anonymouse" bad
order allow,deny
allow from all
deny from env=bad
2009年9月 3日
Dim oHttp As Object
'Set oHttp = CreateObject("MSXML2.XMLHTTP")
Set oHttp = CreateObject("WinHttp.WinHttpRequest.5.1")
oHttp.Open "GET", "http://www.yahoo.co.jp/", False
Call oHttp.SetRequestHeader("User-Agent", "Googlebot/2.1 (+http://www.googlebot.com/bot.html)")
oHttp.Send
Me.txtソース = oHttp.responseText
Set oHttp = Nothing
2009年8月21日
Fatal error: Call to a member function add_current_page() on a non-object in /home/info/htdocs/catalog/includes/application_top.php on line 312
// navigation history
if (tep_session_is_registered('navigation')) {
if (PHP_VERSION < 4) {
$broken_navigation = $navigation;
$navigation = new navigationHistory;
$navigation->unserialize($broken_navigation);
}
} else {
tep_session_register('navigation');
$navigation = new navigationHistory;
}
$navigation->add_current_page();
Change it TO..........................this
// navigation history by apurba
if (tep_session_is_registered('navigation')) {
if (PHP_VERSION < 4) {
$broken_navigation = $navigation;
$navigation = new navigationHistory;
$navigation->unserialize($broken_navigation);
} else {
$navigation = new navigationHistory;
}
} else {
tep_session_register('navigation');
$navigation = new navigationHistory;
}
$navigation->add_current_page();