ラベル php の投稿を表示しています。 すべての投稿を表示
ラベル php の投稿を表示しています。 すべての投稿を表示

2010年7月8日木曜日

ffmpegのオプション設定 動画変換編

映像を他形式へ変換する

MobileHackerz Knowledgebase Wiki を参考に設定してみた。

ffmpeg -i input_file -mbd 1 -g 20 -ar 44100 -y output_file
オプションの説明
  • -i <filename>  インプットファイル名を指定する
  • -mbd <mode>  マクロブロックのモードを決定 : Default = 0
  • -g <gop_size>  GOP(Group Of Picture)のサイズをフレーム数で指定する : Default = 12
  • -ar <rate>  サンプリング周波数 (in Hz)
  • -y   同名ファイルがあった場合アウトプットファイルを上書きする
  • output_file 出力ファイル(拡張子で出力形式を判断しています)
注意点
もう少しトライしてみないと分からない・・・

2010年7月5日月曜日

phpMyAdminをインストール時「PHP 5.2+ is required」エラー

phpMyAdminをインストールしたところ

PHP 5.2+ is required
というエラーが出たので対策方法を書いておきます。
2010.7.5現在phpのバージョンが5.1.*のようで最新のphpMyAdminに対応していなかったみたいです。

5.1に対応したバージョンを落としてインストールします。

ダウンロード先

ここからphpMyAdmin-2.11.10-all-languages.tar.gzをダウンロードしてきます。
#tar xzvf phpMyAdmin-2.11.10-all-languages.tar.gz
#mv phpMyAdmin-2.11.10-all-languages /var/www/phpmyadmin
以降はCentOSで自宅サーバーのとおりインストールします。
さあ、OKかと思ったところ下記のエラーが見える
mcrypt 拡張をロードできません。PHP の設定を確認してください。
こんな時は
#yum install php-mcrypt
でインストールします。

2010年7月3日土曜日

ffmpeg-phpのインストール

動画データの管理をしやすくするために ffmpeg-php の導入を試みた。

ffmpeg-phpのインストール

$ wget http://downloads.sourceforge.net/ffmpeg-php/ffmpeg-php-0.6.0.tbz2

$ tar jxvf ffmpeg-php-0.6.0.tbz2
$ cd ffmpeg-php-0.6.0
$ phpize
$ ./configure && make && make install
$ vi /etc/php.d/ffmpeg.ini
extension=ffmpeg.so #追加
$ /etc/init.d/httpd reload

$ cd
$ rm -rf ffmpeg-php-0.6.0.tbz2.2 ffmpeg-php-0.6.0
動作確認
解凍したディレクトリにtest_ffmpeg.phpというファイルとtestsというディレクトリがあるので、これを公開しているディレクトリにコピーしてtest_ffmpeg.phpを実行する
tests/mediaにある動画と音声ファイルの情報を出力します。
インストールされているバージョンを確認する場合もこのファイルを参考に出来ます。

Errors対策
・makeで”ffmpeg headers not found”エラーが出現
configure: error: ffmpeg headers not found. Make sure ffmpeg is compiled as shared libraries using the --enable-shared option
 ffmpeg-develがインストールされていないためライブラリーが読み込まれていないみたい。
$ yum --enablerepo=rpmforge install ffmpeg-devel

2010年1月26日火曜日

キャッシュ及びアクセラレーターの比較

ベンチマークの比較です。
1.Apacheのキャッシュ機能を有効にした場合
2.PHPアクセラレーター(Xcache)を使った場合
3.XOOPSのキャッシュ機能を有効にした場合

サーバーを設置した場所とは全く別のサイトにCentOS環境を作成し、下記コマンドで比較した

[root@localhost ~]# ab -n 100 -c 10 http://xxxx-net.jp/
比較表
               Normal    Apache Cache On   PHP Xcache On
Time taken for tests:
1回目           28.921658     21.236325       12.785964
2回目           22.197865     24.28028       10.592108
3回目           29.399440     21.620780
Requests per second:
1回目           3.46         4.71           7.82
2回目           4.50         4.16           9.44
3回目           3.44         4.63

確かに速くなってます。
Xcacheでは体感上も確実に速度アップしました。
XOOPSのキャッシュ機能での比較はでは殆んど変化しなかったためここには載せていません。
設定が悪いのだろうか?

2010年1月25日月曜日

Xcacheを設定した場合のベンチマーク

1回目

[root@localhost ~]# ab -n 100 -c 10 http://xxxx-net.jp/
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/

benchmarking xxxx-net.jp (be patient).....done

Server Software: Apache
Server Hostname: xxxx-net.jp
Server Port: 80
Document Path: /
Document Length: 0 bytes
Concurrency Level: 10
Time taken for tests: 12.785964 seconds
Complete requests: 100
Failed requests: 0
Write errors: 0
Total transferred: 36400 bytes
HTML transferred: 0 bytes
Requests per second: 7.82 [#/sec] (mean)
Time per request: 1278.596 [ms] (mean)
Time per request: 127.860 [ms] (mean, across all concurrent requests)
Transfer rate: 2.74 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 51 360 899.9 64 3050
Processing: 403 817 411.1 757 4253
Waiting: 402 807 404.0 753 4252
Total: 467 1177 1042.7 812 4318
Percentage of the requests served within a certain time (ms)
50% 812
66% 857
75% 878
80% 915
90% 4029
95% 4050
98% 4068
99% 4318
100% 4318 (longest request)
2回目
[root@localhost ~]# ab -n 100 -c 10 http://xxxx-net.jp/

This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/

Benchmarking xxxx-net.jp (be patient).....done

Server Software: Apache
Server Hostname: xxxx-net.jp
Server Port: 80

Document Path: /
Document Length: 0 bytes

Concurrency Level: 10
Time taken for tests: 10.592108 seconds
Complete requests: 100
Failed requests: 0
Write errors: 0
Total transferred: 36400 bytes
HTML transferred: 0 bytes
Requests per second: 9.44 [#/sec] (mean)
Time per request: 1059.211 [ms] (mean)
Time per request: 105.921 [ms] (mean, across all concurrent requests)
Transfer rate: 3.30 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 53 92 283.0 63 2893
Processing: 439 843 1152.4 626 8477
Waiting: 438 835 1151.4 626 8477
Total: 505 936 1177.1 691 8542

Percentage of the requests served within a certain time (ms)
50% 691
66% 723
75% 757
80% 805
90% 1043
95% 1437
98% 8442
99% 8542
100% 8542 (longest request)
約二倍ほど速くなったかな??

PHP アクセラレーターXcacheのインストール

早速インストール

[root@centos ~]# cd /usr/local/src
[root@centos src]# wget http://xcache.lighttpd.net/pub/Releases/1.3.0/xcache-1.3.0.tar.gz
[root@centos src]# tar xzvf xcache-1.3.0.tar.gz
[root@centos src]# cd xcache-1.3.0
[root@centos xcache-1.3.0]# phpize
[root@centos xcache-1.3.0]# ./configure --enable-xcache
[root@centos xcache-1.3.0]# make/usr/include/php/ext/date/lib/timelib_structs.h:24:28: error: timelib_config.h: No such file or directory/usr/local/src/xcache-1.3.0/xcache.c:2959: warning: initialization discards qualifiers from pointer target type
make: *** [xcache.lo] エラー 1

失敗!
googleで検索
Posted by moo XCache
on 15.08.2009 02:52
not a XCache problem. looks like it have problem searching .h file witin the same directory which compiler are u using? i assume it's gcc... hrm... open /usr/include/php/ext/date/lib/timelib_structs.h change #include timelib_config.hto #include "timelib_config.h" (or vice versa) or #include "/usr/include/php/ext/date/lib/timelib_config.h"
とあるので、timelib_structs.h を編集、保存
再度
[root@centos xcache-1.3.0]# make
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
Build complete.
(It is safe to ignore warnings about tempnam and tmpnam).
[root@centos xcache-1.3.0]# make install
Installing shared extensions:     /usr/lib/php/modules/
成功!
次に設定ファイルの配置xcache.iniの内容を上記インストールディレクトリーに書き換え、パスワードを設定し保存、コピー
まず最初にコマンドラインからxcache.admin.passの値を求めてメモしておく。(******は各自適当に)
[root@centos xcache-1.3.0]# echo -n '******' | md5sum ←これをUser欄に挿入
XXXXXXXXXX ←これをパスワード欄に挿入
[xcache-common]
;; install as zend extension (recommended), normally "$extension_dir/xcache.so"
;zend_extension = /usr/local/lib/php/extensions/non-debug-non-zts-xxx/xcache.so
zend_extension = /usr/lib/php/modules/xcache.so
; zend_extension_ts = /usr/local/lib/php/extensions/non-debug-zts-xxx/xcache.so
;; For windows users, replace xcache.so with php_xcache.dll
;zend_extension_ts = c:/php/extensions/php_xcache.dll
;; or install as extension, make sure your extension_dir setting is correct
; extension = xcache.so
;; or win32:
; extension = php_xcache.dll

[xcache.admin]
xcache.admin.enable_auth = On
xcache.admin.user = "*******"
; xcache.admin.pass = md5($your_password)
xcache.admin.pass = "XXXXXXXXXXX"
[root@centos xcache-1.3.0]# cp xcache.ini /etc/php.d/
Webサーバーの再起動とXcacheの起動確認
[root@centos xcache-1.3.0]# /etc/rc.d/init.d/httpd restart
httpd を停止中: [ OK ]
httpd を起動中: [ OK ]
[root@centos xcache-1.3.0]# php -v
PHP 5.1.6 (cli) (built: Jan 13 2010 17:13:05)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
with XCache v1.3.0, Copyright (c) 2005-2009, by mOo
はいOK!
続いて、ブラウザ管理の設定
adminディレクトリー内のファイルを/var/www/xcacheへコピー
[root@centos xcache-1.3.0]# mkdir /var/www/xcache
[root@centos xcache-1.3.0]# cd admin
[root@centos xcache-1.3.0]# cp * /var/www/xcache/
/var/www/xcache/をブラウザから見れるように設定する。適当にxcache.confファイルを作成し放り込む
で!設定ファイルが見れるようになりましたとさ・・・
後は後日!

2010年1月4日月曜日

リダイレクトの仕方

サーバーのログを見ていると、以前のトップファイル(あえてtop.phpとしていた)にアクセスする人がかなり多い。
もしかしたら、ページが表示されなくて未だに閉鎖中と思う方も多いと思ったので、リダイレクトしホームページを見ていただくようにした。

ネットで調べてみると幾つかの方法があるようです。
おもなリダイレクトの方法のなかから三つを試してみた。

  1. 301リダイレクトと呼ばれる方法で、.httaccessを使うなどして行うもの。
  2. HTML<meta http-equiv="Refresh" ...>を使う方法
  3. JavaScriptのlocation.href、またはlocation.replace()を使う方法
1.301リダイレクト
サーバー側に.htaccessを設置する方法。具体的なコードは以下。
Redirect permanent /top.php http://hogehoge.jp/index.php
Redirect permanent /top.html http://hogehoge.jp/index.php

top.phpにアクセスした場合に、index.phpにリダイレクトする
top.htmlにアクセスした場合に、index.phpにリダイレクトする

2.HTMLファイルのヘッダーに直接書き込む方法
head要素内に下記のようなコードを書けば良いだけです。簡単。しかし・・・
<meta http-equiv="Refresh" content="0; URL=/index.php">
/index.php に0秒後にリダイレクトする
*古いURLにリダイレクト用のHTMLを残しておかねばならない。

3.JavaScriptを使ってリダイレクトする
しかしlocation.hrefを使うと"「戻る」ボタンで戻れない問題"が発生するので、履歴の残らないlocation.replace()の方がいいかも(こちらでは戻れる)。
この手法も古いURLにリダイレクト用のHTMLファイルを置いておかねばならないという点で、1.に劣る。

したがって、今回は1.301リダイレクトの手法を選択した。

2009年12月27日日曜日

CentOS 5.4 に FFmpegをインストール(yum)

RPMforgeにffmpegが出ています。

# yum --enablerepo=rpmforge install ffmpeg

これまでソースからコンパイルしてた苦労は一体なんだったのかと思えるくらい簡単にインストールできました。

WebPhotoを十二分に使うためには必須なツールですので助かりました。
あと xpdf もどうにかならないものか・・・

2010/07/03[追記]
yumの「-」を「--」に変更

2009年12月24日木曜日

XOOPS Cube 導入直後に行うべきこと事(テンプレート編)

私が管理しているサーバーサイトもやっと公開できるようになってまいりました。

今度のサーバー構築では、トップに XOOPS Cube を導入し、サイト更新やユーザー管理がし易いように工夫していますが、XOOPSも数年前と比べ大変進化しているようですね。非常に使いやすくなっています。

しかし、XOOPS Cube を導入したらデフォルトでは物足りなくなり、ブロック内のレイアウトなどを変更したくなりますが、その手順がなかなか分かりづらい。

  1. Xoops Cubeの導入
  2. セキュリティー強化の為のモジュールインストール
  3. 各種モジュールの導入
  4. テンプレートセットの複製
  5. 各モジュールのテンプレート編集
  6. 公開
  • AttachFileを導入した場合にテンプレート編集が必要
  • ブロック画面の表示変更(日付表示、フォント表示、ブロック内レイアウト等)
テンプレートセットの複製を必ず行ってから編集作業に入らないと後々苦労することになるかも・・・

うさぎにもできるXOOPS Cube入門さんのサイトで公開されている、ユーザー情報を変えようの項目を参考に行えば上手くいきました。

少し分かりづらい点としてテンプレートの複製及び削除、実際のテンプレート編集を行うメニューが別々にあることです。
今回は、次のような手順で進めてみました。

1.テンプレートの複製
管理メニュー」→「ALTSYS」→「テンプレート管理」→新規にテンプレートセットを作成する(項目テンプレート名の一番下)
ベース:
セット名:xxxxxxx 「新規作成」
「新規作成」ボタンをおして作成します。

2.テンプレートの削除

管理メニュー」→「互換レンダーシステム」→「テンプレート管理」→「操作」(項目)→「×」削除ボタン
*この時テンプレートがアクティブだと削除画面が出ません


3.新規テンプレートの適用
管理メニュー」→「互換モジュール」→「全般設定
デフォルトのテンプレート・セット:xxxxxxx
送信」ボタン

4.各モジュールのテンプレート編集
管理メニュー」→「ALTSYS」→「テンプレート管理
→モジュールタブから目的のモジュールを選択→DB-default(項目)の該当テンプレートにチェック→DB-default(項目)の一番下
行先:xxxxxxx
「コピー実行」ボタン
コピー実行」ボタンを押してコピーします
→DB-xxxxxxxx(項目)の該当テンプレートの「編集」ボタンを押して編集

2.で新規テンプレートを複製する場合、「空」を選択します、その次に3.において空のテンプレートをセットするのですが、何も無いテンプレートをセットした場合はデフォルトのものが適用され、コピー編集したテンプレートだけが実際に反映されます。


まずはこんなところかな・・・

2009年12月21日月曜日

phpのアップロードサイズ変更

phpのアップロードサイズデフォルトが2Mなので、ちょっと小さい。
サーバ設定の度に変更するのだけれども、これもつい忘れてしまうからメモします・

/etc/php.iniを以下の様に変更する。
memory_limit = 64M
post_max_size = 32M
upload_max_filesize = 32M
* memory_limit値は Gallery2 でインポートする場合に大きくしないと途中で落ちてしまう。


2008年5月10日土曜日

Gallery からGallery2へのデータ移行

私が管理しているServerには、画像を手軽にアップ・閲覧するために Gallery というPHPで書かれたソフトをインストールしています。

Galleryサイト

Server開設当時(平成14年頃)から平成16年度まで11892枚(albums1)、平成17年度から現在まで18822枚(albums2)の画像をアップしており、このデータを新しいServerにどのようにして移行するか頭を悩ましています。

移行に関して問題点は

  1. 旧サーバーと新サーバーでシステムの文字コードが違う EUC-JP --> UTF-8
  2. albums1(Shift-JIS) --> MySQL(UTF-8)
  3. albums2(EUC-JP) --> MySQL(UTF-8)
  4. Gallery(NonDataBase) --> Gallery2(MySQL)

早速、新サーバーにGalleryをインストールしたいと思いますが、Gallery Ver1はEUC-JPで記述されておりUTF-8はサポートされていません。Gallery2はUTF-8がデフォルトです。
Galleryのサイトで調べてみると、Gallery Ver1からGallery2への移行は、Gallery2の中にツールがあるので、早速Gallery2をインストールします。
問題点 1. と 3. 4.はクリアーしましたが、2. が問題です。albums1(Shift-JIS)-->MySQL(UTF-8)はどうもサポートしていないようです。

サーバー開設当時は、Galleryは日本語をサポートしていなかったため、設定ファイルを無理やり日本語化して使用していました。日本語を正式にサポートしてまもなくサーバーを変更しその機会に新規にGallery Ver1(日本語サポート版)をインストールしました。(album2ですね)
当時、どうにかしてalbum1とalbum2を統合しようと試みましたが私には無理でした。今回はどうでしょう?

Gallery2のインストールは本当に簡単にいきました。要はPHPの設定と画像関係のツールを指示に従ってインストールしていくことです。
次は、データ移行ですが、album2(EUC-JP) -->MySQL(UTF-8)は、メニューから
サイト管理 --> インポート --> Gallery1
で、指示に従って行なえば簡単です。ただ一点だけ嵌ってしまいました。
/etc/php.ini
memory_limit = 64M  (元は16Mです)
デフォルトの16Mだとデータ移行時にメモリー不足になり途中でストップしてしまいました。
設定ファイルを書き換え、Apache2を再起動、Gallery2上から操作、これで一気にデータ移行ができました。一安心

続いてalbum1のほうですが、いろいろと試していますが実現できていません。時間が欲しい・・・