Archives by date

You are browsing the site archives by date.

【PHP】画像をbase64エンコードする。

めも。

echo base64_encode(file_get_contents('/path/to/image.jpg'));

 

【PHP】単語の先頭文字を大文字にする。

めも。

$str = 'controller action';
var_dump(ucwords($str));

↓

string(17) "Controller Action"

 

【CentOS】PHPVideoToolKitで必要な「yamdi」をインストールする。

下記を実行。

yum install yamdi

もしかしたらdag’sリポジトリがあったほうがいいかも。

「/etc/yum.repos.d/dag.repo」を作成し下記を記述。

[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
enabled=1
protect=0

dag’s rpm gpg key をローカルへ保存し、インポートを行う。

# 下記URLより取得
wget http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt -P /tmp
# インポート
rpm --import /tmp/RPM-GPG-KEY.dag.txt

以上。

 

【CentOS】CentOS6にffmpeg、ffmpeg-phpをインストールする。

かなりスパッとインストールできたので手順をめも。

1, まずはyumのアップデートを行う。

yum update

2, デベロップメントツールをインストール。

yum groupinstall "Development tools"

3, ProtectBaseをインストールする。

yum install yum-protectbase

4, 下記ディレクトリに移動。

cd /etc/yum.repos.d/

5, リポジトリに変更を加える前にバックアップを取る。

cp -prv ../yum.repos.d{,.orig}

6, CentOS-Base.repo, CentOS-Media.repo, virtualmin.repoの各リポジトリセクションに「protect=1」の記述を追加する。

sed -i '/gpgkey=/a\protect=1' CentOS-{Base,Media}.repo
sed -i '/gpgkey=/a\protect=1' virtualmin.repo

7, dag’sリポジトリを追加する。「/etc/yum.repos.d/dag.repo」を作成し下記を記述。

[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
enabled=1
protect=0

8, dag’s rpm gpg key をローカルへ保存し、インポートを行う。

# 下記URLより取得
wget http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt -P /tmp
# インポート
rpm --import /tmp/RPM-GPG-KEY.dag.txt

9, ffmpegをいくつかの開発パッケージと併せてインストール。

yum install ffmpeg-devel php-devel re2c php-xml ffmpeg

10, インストール後、下記コマンドでffmpegのバージョンを確認。

ffmpeg

↓

FFmpeg version 0.6.5, Copyright (c) 2000-2010 the FFmpeg developers
...
...
...

11, ffmpeg-phpのエクステンションをコンパイル、インストールする。

# 新規にディレクトリを作成
mkdir /srv/build

# 作成したディレクトリに移動
cd /srv/build

# ffmpeg-phpのソースを取得
wget http://downloads.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2

# 解凍する
tar -xjf ffmpeg-php-0.6.0.tbz2

# 解凍したディレクトリに移動
cd ffmpeg-php-0.6.0/

# PHPの拡張モジュールをビルドする
phpize

# いつも通りのおまじないを実行
./configure

12, ここで、コンパイルエラーを防ぐために下記コマンドを実行。

sed -i 's#PIX_FMT_RGBA32#PIX_FMT_RGB32#' ./ffmpeg_frame.c

13, makeしてインストール。

make
make install

14, ffmpeg-phpエクステンションををロード。

echo -e "extension=ffmpeg.so\n" > /etc/php.d/ffmpeg.ini

15, アパッチを再起動。

service httpd restart

16, インストールはここで完了。下記コマンドでffmpegのインストール状況を確認可能。

php -i | grep ffmpeg
php -m | grep ffmpeg

 

【PHP】Composerのインストール方法めも。

覚えられないけどよくつかうのでとりあえずペタリ。

composer.jsonと同階層のディレクトリで下記を実行。

curl -sS https://getcomposer.org/installer | php

あとは下記コマンドでインストールを実行するだけ。

php composer.phar install

 

【PHP】Symfony2.3のインストール時、ICUのバージョンで怒られたら。

composer installでのインストール時、ICUのバージョンが足りないと下記のようなことを言われる。

Your requirements could not be resolved to an installable set of packages.
...
...

ICUのバージョンがたりねぇよとのことなので、アンインストール後サイドインストールを行う。

以下手順。

# ICUをアンインストール
yum remove libicu*

# ソースコードを取得
wget http://download.icu-project.org/files/icu4c/51.2/icu4c-51_2-src.tgz

# 解凍
tar zxf icu4c-51_2-src.tgz 

# 解凍したディレクトリに移動
cd icu/source/

# コンパイルしてからの
./configure
make

# インストール実行
make install

# intlモジュールを再インストール
pear install pecl/intl

# php_ini に追記
echo "extension=intl.so" > /etc/php.d/intl.ini

以上で完了。
この後、再び「php composer.phar install」を実行すればよい。

 

【CentOS】「ffmpeg」に「qt-faststart」プラグインを追加する。

めも。

すでに「ffmpeg」をインストールしていて、「qt-faststart」のみを追加したいといったシチュエーション。

以下手順。

下記ディレクトリに移動。

cd /usr/local/src

SVNからソースコードをチェックアウト。

svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg

チェックアウトしたディレクトリに移動。

cd ffmpeg

コンパイル後、qt-faststartのみを「/usr/bin/」へ移動

./configure
make
make test
make tools/qt-faststart
cp -a tools/qt-faststart /usr/bin/

これでインストールは完了。

下記コマンドでインストールの完了を確認可能。

which qt-faststart
↓
/usr/bin/qt-faststart

 

【CakePHP2.X】namespaceが使われた外部クラスの読み込み。

めも。

1, ロードしたいクラスファイルを「/app/Vendor」以下に配置。

2, 「bootstrap.php」に下記を記述

spl_autoload_register(function($class) {
	foreach(App::path('Vendor') as $base) {
		$path = $base . str_replace('\\', DS, $class) . '.php';
		if(file_exists($path)) {
			return include $path;
		}
	}
});