適当に・・・

何の目的も無くブログを立ち上げてみました。更新は不定期ですね。

CentOS5.4 PHP 5.1.6 →PHP 5.3

2010年02月06日 13時40分09秒 | PHP
最近phpを使う機会が
多くなってきた。

だけどCentOS5.4のyumで
インストールするphpは
PHP 5.1.6
安定版なんだろうし、通常使う時は
問題ないのだけれど、便利な関数や
その他諸々の事情でアップデートしたい。

PHP 5.1.6 → PHP 5.3にする手順。

まず、yum でepelのリポジトリ(レポジトリ?)を使えるようにする。
(いつも発音がわからね)

cd /usr/local/src

wget http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-3.noarch.rpm

rpm -Uvh epel-release-5-3.noarch.rpm

次は yum でremiのリポジトリを使えるようにする。

wget http://rpms.famillecollet.com/el5.x86_64/remi-release-5-6.el5.remi.noarch.rpm

rpm -Uvh remi-release-5-6.el5.remi.noarch.rpm

でリポジトリの設定ファイルが入った。

次は入った設定ファイルの編集
vi /etc/yum.repos.d/epel.repo

failovermethod=priority
enabled=1
gpgcheck=1

となっている記述のところを探して、
failovermethod=priority
priority=1 #追加
enabled=0 #変更
gpgcheck=1

として保存

次も同じく
vi /etc/yum.repos.d/remi.repo

enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
failovermethod=priority

との記述があるところを

enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
failovermethod=priority
priority=1

とする。

yum --enablerepo=epel,remi -y update php php-mbstring

終了したら

php -v として

PHP 5.3.1 (cli) (built: Nov 20 2009 18:18:28)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies

こんな感じの結果が返ってくればOK

以上。


php コンパイル オプション

2009年08月27日 11時52分44秒 | PHP
phpの良く使う
コンパイルオプション

'./configure'
'--enable-mbstring'
'--enable-zend-multibyte'
'--enable-pdo'
'--enable-zip'
'--with-apxs=/usr/local/apache/bin/apxs'
'--with-gd'
'--with-png-dir=/usr/local'
'--with-jpeg-dir=/usr/local'
'--with-freetype-dir=/usr/local'
'--with-pgsql=/usr/local/pgsql'
'--with-mysql=/usr/local/mysql'
'--with-pdo-mysql=/usr/local/mysql'
"$@"

続々、追加予定

APC インストール

2009年03月23日 13時52分53秒 | PHP
APC = Alternative PHP Cache

php バージョン php-5.2.9
APC バージョン APC-3.1.2

phpはインストール済みとする。

tar xzvf APC-3.1.2.tgz
cd APC-3.1.2
phpize
./configure --enable-apc

(何か、configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.って言われてるよ。 ちーぃっ!!! って事で)

re2c-0.13.5.tar.gzをダウンロードしてきて
tar xvzf re2c-0.13.5.tar.gz
cd re2c-0.13.5
./configure
make all
make install

再度
cd ../APC-3.1.2
phpize
./configure
make all
make test
make install

ここで /usr/local/lib/php/extensions/no-debug-non-zts-20060613/apc.so
が出来上がる。

php.iniの一番したに
[apc]
extension="/usr/local/lib/php/extensions/no-debug-non-zts-20060613/apc.so"
apc.mode = mmap
apc.cachedir = /tmp
apc.check_compiled_source = 1
apc.check_mtime = 1
を追加する。

httpdをリスタート

phpinfoを呼び出すページを作って確認・・・・・・・
動いた・・・・・・orz

っで今までのテスト機でやったのでじゃー本番機でGoっと思ったら。
本番機はすべてyumとかrpmで構成されてる。。。。
再び ちーぃっ!!!って事で。。。

yum -y install php-pear (pecl)
yum -y install php-devel (phpize)
yum -y install httpd-devel (apxs)

で pecl install APC を実行
・・・・・・・
キター エラー

Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 92160 bytes) in /usr/share/pear/PEAR/Dependency2.php on line 396
Allowed memory size of 8388608 bytes exhausted (tried to allocate 0 bytes)

php.iniのmemory_limitを増やしたが同じエラー

ここでgoogle大先生
pearcmd.phpの先頭に
@ini_set(’memory_limit’, ‘32M’);
とか付け加える。

再度

pecl install APC

OK 通った・・・・

/etc/php.d/apc.ini を新規作成して
extension = apc.so
として保存

httpdを再起動
phpinfoを実行してapcの項目を確認

以上。

php5 GD2 freetype2 インストール

2008年08月02日 20時30分07秒 | PHP
もう完全に個人的な備忘録と化しました。
だってどっかに書いておかないと忘れるんですもの。
作業しようと思ったときにw

GD2
http://www.libgd.org/より
downloadしてくる

/usr/local/src/にでも配置して
tar xvzf gd-2.0.35.tar.gz
cd gd-2.0.35

./configure 実行 .......ん~

Support for PNG library: no
Support for JPEG library: no
Support for Freetype 2.x library: no
Support for Fontconfig library: no
Support for Xpm library: no
Support for pthreads: yes

ってのが出たw
マジか~ググレカスで先人情報検索

libpng が http://www.libpng.org/pub/png/libpng.html ココ
libjpg が http://www.ijg.org/files/ ココでファイル名が
jpegsrc.v6b.tar.gz これね。

freetype2 が http://freetype.sourceforge.net/index2.html ココ
stable releaseのリンクからダウンロード

ダウンロードしたら一気にコンパイル
libpngは./configureのみでコンパイル
libjpgは./configure --enable-sharedでコンパイル
freetype2も./configureでコンパイル
make all
make installでインストール

で再びGD2で
./configre 実行.....
Support for Fontconfig library: no
Support for Xpm library: no
ってのが出るけど今回は無視

make all 実行..... キター エラー
`AM_ICONV' not found in libraryって出てる。
libiconv-1.12.tar.gzと
libiconv-1.12-ja-1.patch.gzをダウンロードしてきて

tar xvzf libiconv-1.12.tar.gzで
cd libiconv-1.12
gzip -dc ../libiconv-1.12-ja-1.patch.gz | patch -p1 実行
./configure
make all
make install

再度 GD2
./configure 実行(何度目だw)
make all....通った
make install....ok

これでようやくphpのコンパイルに入る(時間かかりすぎw)

vi con.sh

'./configure'
'--with-apxs=/usr/local/apache/bin/apxs'
'--enable-mbstring'
'--enable-zend-multibyte'
'--enable-mbregex'
'--with-pgsql'
'--with-gd'
'--with-jpeg-dir=/usr/lib'
'--with-png-dir=/usr/lib'
'--with-freetype-dir=/usr/lib'
"$@"

書き込みで実行 ... キターエラーもう嫌
さっき入れたiconvのせいだと思われる
/usr/local/src/php-5.2.6/ext/iconv/iconv.c:2491: undefined reference to `libiconv_open'
collect2: ld returned 1 exit status

phpプロ掲示板に同じような書き込みがあったので
http://www.phppro.jp/qa/487#2639
これを実践。(私の環境はphp5.2.6とlibiconv-1.12だけど)
make all
make test
make install
通った

phpファイル

2008年02月07日 00時25分25秒 | PHP
Apacheのhttp.confファイルもしくは
.htaccessファイルに

AddType application/x-httpd-php .html

を足すと.phpファイルを
.htmlとしてもphpスクリプトが実行される。

ためしにindex.htmlファイルのなかに
echo phpinfo();
?>
みたいなことを書いてアクセスすると、phpinfo()関数が
呼び出された。