今使っているPHPのフレームワーク、FuelPHP (ver 1.5)。
むっちゃ使いやすい。これは広がってほしい。
ただpdoじゃないmysqlドライバしか入っていないサーバに入れてmysqlドライバで動かそうとしたんだけど設定をどう書いてもpdoドライバで動かそうとしてPDO_Exceptionが出る。
phpとapacheを独自にコンパイルしているサーバ(別の方がセッティング)なので仕方なしにphp(ver. 5.4.12)をコンパイルしなおしました。phpをコンパイルするのなんて何年ぶりだろう。
あまりに久しぶりでオプションとかぜんぜん忘れてて、調べなおすのに半日かかりましたw
有効にしたモジュールは、
mysql関連
gd
mbstring
zip
※ PHP5.4からmysqlndがデフォルトで、--with-mysql-sock以外は値を指定しなくても大丈夫
※ fileinfo, session, json, xml関連などはデフォルトで入るので特に指定しない
※ mcrypt(fuelphpで必要)は面倒なのでFuelPHP内でPHPSecLibで代用してもらう
足りてない.hファイルをyumで入れる(環境によっては他にも必要なのが出てくるでしょう)
# yum install libjpeg-devel
# yum install libpng-devel
# yum install freetype-devel
configureする
# ./configure --prefix=/usr/local/php-5.4.12 --with-apxs2=/usr/local/apache_2.4.4/bin/apxs --with-gd --with-jpeg-dir=/usr/lib64 --with-png-dir=/usr/lib64 --with-zlib-dir=/lib64 --with-freetype-dir=/usr --enable-gd-native-ttf --with-mysql --with-mysqli --with-pdo-mysql --with-mysql-sock=/var/lib/mysql/mysql.sock --enable-mbstring --with-zlib --enable-zip
make, make testすると既知のバグっぽいのが出ますが目を瞑ってmake install。
apache再起動でめでたくPDOで動きました。
mysqlドライバで動かす書き方をちゃんと見つけたほうが良かった気がする。
2013年5月3日金曜日
2013年3月15日金曜日
chmod の小技
chmod -R では大雑把過ぎて使いづらい。
いい小技を忘れないうちにメモ。
カレントディレクトリ以下のディレクトリのみ変更
find ./ -type d -print | xargs chmod 775
カレントディレクトリ以下のファイルのみ変更
find ./ -type f -print | xargs chmod 664
HTMLファイルのみ
find ./ -name *.rhtml -type f -print | xargs chmod 644
2013年3月9日土曜日
VMWare Playerでテストサーバ
VMWare Playerでテストサーバ作ったのでメモ。
VMWare Player起動
新規仮想マシンの作成
新規仮想マシン作成ウィザードで、インストール元に先ほどDLしておいたCentOS-6.3-i386-netinstall.isoを指定。
ウィザードに従っていく。
CentOSのインストーラが立ち上がったら、Install or upgrade an existing system を選んでインストーラの指示に従っていく。
少し待つとGUIのCentOSのインストール画面が立ち上がる。
インストーラにしたがって設定していく。
# yum install system-config-network
# yum install system-config-firewall-tui
# yum install ntp
# chkconfig sshd on
# chkconfig ntpd on
まあこれぐらいはいれてもいか
# yum install bind-utils
CentOSに戻り、以下のコマンドでIPなどを設定する。
# system-config-network
# system-config-firewall-tui
もしくは
# chkconfig iptables off
SELinuxもオフ
# vi /etc/sysconfig/selinux
これぐらいで再起動。
# reboot
後はsshで接続して本格的に用途に合わせてテスト環境構築。
インストール
CentOSのHPから、CentOS-6.3-i386-netinstall.isoあたりをDLしておく。VMWare Player起動
新規仮想マシンの作成
新規仮想マシン作成ウィザードで、インストール元に先ほどDLしておいたCentOS-6.3-i386-netinstall.isoを指定。
ウィザードに従っていく。
CentOSのインストーラが立ち上がったら、Install or upgrade an existing system を選んでインストーラの指示に従っていく。
インストールイメージ本体の読み込み先の選択はネットインストールなので、URL。
URLは、ftp://ftp.riken.go.jp/Linux/centos/6/os/i386/
少し待つとGUIのCentOSのインストール画面が立ち上がる。
インストーラにしたがって設定していく。
HDDはテスト用なのでデフォルトでいい。
システムはminimumにしておいて後で足す。
ネットワークはとりあえずDHCPにしておく。(後で変更)
インストール後
最低限の装備
# yum install openssh# yum install system-config-network
# yum install system-config-firewall-tui
# yum install ntp
# chkconfig sshd on
# chkconfig ntpd on
まあこれぐらいはいれてもいか
# yum install bind-utils
ネットワークの設定変更
まず、VMWareのウィンドウ下部のネットワークアダプタをクリックして設定画面を開き、ネットワーク接続を「ブリッジ」にし、「物理ネットワーク接続の状態を複製」にチェックを入れておく。CentOSに戻り、以下のコマンドでIPなどを設定する。
# system-config-network
テスト用なので面倒なものをオフに
Firewallは以下のコマンドからオフに。# system-config-firewall-tui
もしくは
# chkconfig iptables off
SELinuxもオフ
# vi /etc/sysconfig/selinux
SELINUX=disabled
これぐらいで再起動。
# reboot
後はsshで接続して本格的に用途に合わせてテスト環境構築。
2013年1月10日木曜日
error_reportingの.htaccessでの書き方
以前メモったと思ってたのに無かったのでメモ。
.htaccessに以下のように記述しても有効にならない。
まあ当然か。
以下のどちらかでかく
(以前数字で書けという記述を見たが"でくくっても大丈夫だった)
数字のほうはE_ALLやE_DEPRECATED等の定数を加減したもの。
以下のようにすれば簡単に求められる。
.htaccessに以下のように記述しても有効にならない。
php_value error_reporting E_ALL & ~E_DEPRECATED
まあ当然か。
以下のどちらかでかく
php_value error_reporting "E_ALL & ~E_DEPRECATED"
php_value error_reporting 22527
(以前数字で書けという記述を見たが"でくくっても大丈夫だった)
数字のほうはE_ALLやE_DEPRECATED等の定数を加減したもの。
以下のようにすれば簡単に求められる。
<?php前は手計算してたよw。
echo E_ALL & ~E_DEPRECATED;
?>
2013年1月1日火曜日
今更debian etchのapacheをアップデート
既にoldstableとなって久しいdebian etch。バージョンで言うと4ですね。
ほったらかしにされていたapacheのセキュリティーホールをふさがねばならなくなった。
当然パッケージのメンテナンスなどされていない。
ちょっと困ったのでメモしておく。
/etc/apt/source.list を以下のように修正(そっからかよ!)
/usr/local/srcにapache.orgから2.2系の最新のソースを取得。
./configureするもssl・zlibがないなどで止まるので、
# apt-get install openssl
# apt-get install libssl-dev
# apt-get install zlib1g-dev
↑勉強不足のためlibssl-devとかzlib1g-devが分からなくてちょっと難儀しました。
openssl自体は入っていたので # apt-get install openssl は不要だった。
再度configure(ssl有効、DSOのほとんどのモジュールを入れておく)
# ./configure --enable-mods-shared=all --enable-so --enable-ssl
めでたく通ったので
# make
# make install
/usr/local/apache2 に入りました。
後は元のapacheをとめて設定や起動スクリプトを修正。
ほったらかしにされていたapacheのセキュリティーホールをふさがねばならなくなった。
当然パッケージのメンテナンスなどされていない。
ちょっと困ったのでメモしておく。
/etc/apt/source.list を以下のように修正(そっからかよ!)
/usr/local/srcにapache.orgから2.2系の最新のソースを取得。
./configureするもssl・zlibがないなどで止まるので、
# apt-get install openssl
# apt-get install libssl-dev
# apt-get install zlib1g-dev
↑勉強不足のためlibssl-devとかzlib1g-devが分からなくてちょっと難儀しました。
openssl自体は入っていたので # apt-get install openssl は不要だった。
再度configure(ssl有効、DSOのほとんどのモジュールを入れておく)
# ./configure --enable-mods-shared=all --enable-so --enable-ssl
めでたく通ったので
# make
# make install
/usr/local/apache2 に入りました。
後は元のapacheをとめて設定や起動スクリプトを修正。
2012年12月22日土曜日
File API & XMLHttpRequestでファイルアップロード
大容量ファイルのアップロード周りを便利にしようと思いいいのみつけた、blueimp jQuery-File-Upload。
https://github.com/blueimp/jQuery-File-Upload
なかなかいいじゃないかと途中まで組み込んで問題発生。orz
・問題点1
アップロード後のサーバサイドでの処理に時間がかかる場合、それも進捗状況表示に加えたいのだがいまいちやり方がわからない。
・問題点2
IEが微妙に未対応。アップロード自体は可能。
・問題点3
ファイルサイズが大きい(233MB以上)とアップロードできない。
1は調べれば何とかなりそう、2はとりあえずアップロードは可能なので目を瞑る。
3はかなり問題。本来の目的が大容量のファイルの扱いだったので。
でどこが悪いのかな~と調査開始。
単純化するために、JavascriptのFile APIとXMLHttpRequest + PHPで簡単にアップロードの仕組みを作ってみた。
jQueryも使って、Javascriptはこんな感じ↓
(参考URL: http://d.hatena.ne.jp/takuya_1st/20121101/1351754417 ありがとうございます)
FireFoxは大きいファイルでこけることがある。FFを再起動すると問題ないのでFFのメモリ関係でしょうか(未検証)。
IEはFile APIとかFormDataが使えないので当然ながら動きません。
サーバ側は同じプログラムで受けとっているので、問題3はblueimp jQuery-File-Uploadによるものかな? これに手を入れるのはためらわれるということでしゃーない自作するか。
今回はサーバ側も自由にいじれるのでPHPのAPCやPHP5.4を使うのもいいんだが、他で使うことも考えてFile API & XMLHttpRequestで突き進んでみよう。
IEだけ分岐して単純な仕様でないてもらおう。
つくづく適当だな。
https://github.com/blueimp/jQuery-File-Upload
なかなかいいじゃないかと途中まで組み込んで問題発生。orz
・問題点1
アップロード後のサーバサイドでの処理に時間がかかる場合、それも進捗状況表示に加えたいのだがいまいちやり方がわからない。
・問題点2
IEが微妙に未対応。アップロード自体は可能。
・問題点3
ファイルサイズが大きい(233MB以上)とアップロードできない。
1は調べれば何とかなりそう、2はとりあえずアップロードは可能なので目を瞑る。
3はかなり問題。本来の目的が大容量のファイルの扱いだったので。
でどこが悪いのかな~と調査開始。
単純化するために、JavascriptのFile APIとXMLHttpRequest + PHPで簡単にアップロードの仕組みを作ってみた。
jQueryも使って、Javascriptはこんな感じ↓
(参考URL: http://d.hatena.ne.jp/takuya_1st/20121101/1351754417 ありがとうございます)
$('#upload').bind('click', function(){Chromeは問題なし。
var fd = new FormData();
var f = document.getElementById("file").files[0];
fd.append('userfile', f);
$.ajax({
async: true,
xhr : function(){
XHR = $.ajaxSettings.xhr();
if (XHR.upload) {
XHR.upload.addEventListener(
'progress',
function (e) {
progre = parseInt(e.loaded/e.total*10000)/100 ;
console.log(progre+"%") ;
$("#progress_bar").width(parseInt(progre/100*300*100)/100+"px");
$("#progress_bar").height("30px");
$("#progress_bar").html(progre+"%");
},
false
);
}
return XHR;
},
url: "",
type: "post",
data:fd,
contentType: false,
processData: false
}).done(function(msg) {
console.log(msg);
$("#output").append(msg);
});
});
FireFoxは大きいファイルでこけることがある。FFを再起動すると問題ないのでFFのメモリ関係でしょうか(未検証)。
IEはFile APIとかFormDataが使えないので当然ながら動きません。
サーバ側は同じプログラムで受けとっているので、問題3はblueimp jQuery-File-Uploadによるものかな? これに手を入れるのはためらわれるということでしゃーない自作するか。
今回はサーバ側も自由にいじれるのでPHPのAPCやPHP5.4を使うのもいいんだが、他で使うことも考えてFile API & XMLHttpRequestで突き進んでみよう。
IEだけ分岐して単純な仕様でないてもらおう。
つくづく適当だな。
2012年12月8日土曜日
難解ffmpegそしてありがとう情報を整理して公開している人
iOSでLMS用の動画を見れるようにという注文があるので、HLSで対応しようとごちゃごちゃ検討中。(しかもユーザが使えるようにCMS化しなければならない。)
自分で書いている文章がアルファベット3文字の略語ばっかりでなんか崩壊している。
動画の変換といえばFFmpegのようですがこれがややこしい。マジで!
でも世の中にはいろんな情報を整理してくれる人が居て助かります。ホントに!
本家の英語のマニュアルだけ見ててもぜんぜん分からんのでありがたいです。
http://mobilehackerz.jp/archive/wiki/index.php?%BA%C7%BF%B7FFmpeg
何とかなるかな~。
自分で書いている文章がアルファベット3文字の略語ばっかりでなんか崩壊している。
動画の変換といえばFFmpegのようですがこれがややこしい。マジで!
でも世の中にはいろんな情報を整理してくれる人が居て助かります。ホントに!
本家の英語のマニュアルだけ見ててもぜんぜん分からんのでありがたいです。
http://mobilehackerz.jp/archive/wiki/index.php?%BA%C7%BF%B7FFmpeg
何とかなるかな~。
登録:
投稿 (Atom)