php5
php5.x系のサポートが切れて久しく、Apacheから文句言われた(´・ω・`)
仕方ないので、重い腰を上げてPHP5.xを作るコトにした(`・ω・´)
「サポートが切れた」
かなり前に切れてるんですが・・・
まぁ、libxml2を作るのが面倒臭かったので、ほったらかしだったんです。
いろいろ弄って(たぶん合計で1年くらい?)ようやく作れるようになったと思うのでうp
やること一覧 ・事前に必要になるソフトのインストール:PHP でグラフを作る (gd/JpGraph編) ・PHP5のインストール
関連ページ ・apache2
pythonのコンパイルにC/ObjC(オブジェクト指向型Cのコンパイラ)が必要になるので、。
gcc3のインストールにて、フル版(--enable-languages=c,c++の指定なし)を作る必要がある
zlib/opensslはopensslか参考サイトを参照。
説明はばっさりと割愛。でも、gccを入れ替えたら必ず作り直しです(・ω・)b
事前準備の事前準備その1)
JPEG グラフィックスフォーマット用のライブラリ
ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz
$ tar xvfz jpegsrc.v6b.tar.gz $ cd jpeg-6b $ ./configure --prefix=/usr --enable-shared --enable-static $ make # make installインストールされるもの
/usr/bin/*jpeg* /usr/bin/*jpgcom /usr/include/jconfig.h /usr/include/jerror.h /usr/include/jmorecfg.h /usr/include/jpeglib.h /usr/lib/libjpeg.* /usr/man/???おまじない
# strip -p /usr/bin/*jpeg* # strip -p /usr/bin/*jpgcom事前準備の事前準備その2)
$ tar xvfz freetype-2.3.4.tar.gz $ cd freetype-2.3.4 $ ./configure --prefix=/usr $ make # make installインストールされるもの
/usr/bin/freetype-config /usr/include/freetype2/ /usr/include/ft2build.h /usr/lib/libfreetype.* /usr/lib/pkgconfig/freetype2.pc /usr/share/aclocal/freetype2.m4事前準備)
$ tar xvfz gd-2.0.34.tar.gz $ cd gd-2.0.34 $ ./configure --prefix=/usr ┃** Configuration summary for gd 2.0.34: ┃ ┃ Support for PNG library: yes ┃ Support for JPEG library: yes ┃ Support for Freetype 2.x library: yes ┃ Support for Fontconfig library: no ┃ Support for Xpm library: no ┃ Support for pthreads: yes $ make # make installインストールされるもの
/usr/bin/ annotate webpng gdlib-config gdtopng gdcmpgif gdparttopng gd2copypal gd2topng gd2togif pngtogd bdftogd giftogd2 pngtogd2 /usr/include/ entities.h entities.h gd_io.h gdfontg.h gdfontmb.h gdfontt.h gd.h gdcache.h gdfontl.h gdfonts.h gdfx.h /usr/lib/libgd.*おまじない
# cd /usr/bin # strip -p annotate webpng gdtopng gdcmpgif gdparttopng gd2copypal \ gd2topng gd2togif pngtogd giftogd2 pngtogd2まだまだ続くよ!(`・ω・´)
$ wget --no-check-certificate http://www.python.org/ftp/python/2.7.6/Python-2.7.6.tgz $ tar xvfz Python-2.7.6.tgz $ cd Python-2.7.6 $ ./configure --prefix=/usr --enable-shared $ make $ make test ┃350 tests OK. ┃3 tests failed: ┃ test_distutils test_openpty test_pty ┃44 tests skipped: ┃ test_aepack test_al test_applesingle test_bsddb185 test_bsddb3 ┃ test_cd test_cl test_codecmaps_cn test_codecmaps_hk ┃ test_codecmaps_jp test_codecmaps_kr test_codecmaps_tw test_curses ┃ test_epoll test_gdb test_gl test_idle test_imgfile test_ioctl ┃ test_kqueue test_linuxaudiodev test_macos test_macostools ┃ test_msilib test_multiprocessing test_ossaudiodev test_pep277 ┃ test_scriptpackages test_smtpnet test_socketserver test_sqlite ┃ test_startfile test_sunaudiodev test_tcl test_timeout test_tk ┃ test_ttk_guionly test_ttk_textonly test_unicode_file ┃ test_urllib2net test_urllibnet test_winreg test_winsound ┃ test_zipfile64 ┃9 skips unexpected on linux2: ┃ test_epoll test_gdb test_idle test_ioctl test_multiprocessing ┃ test_tcl test_tk test_ttk_guionly test_ttk_textonly ┃make: *** [test] Error 1 エラーになりますけど・・・まぁ、いっか。 # make install2回目
$ make clean $ ./configure --prefix=/usr $ make # make install 2回コンパイルする理由はPython-2.7.2, Python-3.2.1のインストール(Linux)libxml2-2.9.1の作成を参照。
$ wget http://xmlsoft.org/sources/libxml2-2.9.1.tar.gz $ tar xvfz libxml2-2.9.1.tar.gz $ cd libxml2-2.9.1 $ ./configure --prefix=/usr $ make $ make check (結果) ┃[ -d result ] || ln -s ./result . ┃./runtest && ./testrecurse && ./testapi && ./testchar&& ./testdict && ./runxmlconf ┃File ./test/ebcdic_566012.xml generated an error ┃File ./test/ebcdic_566012.xml generated an error ┃File ./test/ebcdic_566012.xml generated an error ┃Result for ./test/ebcdic_566012.xml failed ┃File ./test/ebcdic_566012.xml generated an error ┃Result for ./test/ebcdic_566012.xml failed ┃File ./test/ebcdic_566012.xml generated an error ┃Result for ./test/ebcdic_566012.xml failed ┃File ./test/ebcdic_566012.xml generated an error ┃Failed to parse ./test/ebcdic_566012.xml ┃File ./test/ebcdic_566012.xml generated an error ┃Failed to parse ./test/ebcdic_566012.xml ┃File ./test/ebcdic_566012.xml generated an error ┃Failed to parse ./test/ebcdic_566012.xml ┃File ./test/ebcdic_566012.xml generated an error ┃Failed to parse ./test/ebcdic_566012.xml ┃File ./test/ebcdic_566012.xml generated an error ┃## XML regression tests (中略) ┃## Catalog and Threads regression tests ┃Total 2876 tests, 10 errors, 0 leaks ┃make: *** [runtests] Error 1 作れるようになったけど、10個のエラー 2.7.xは同じ状態。2.6.xはcheck自体がエラーで止まる。 ・・・まぁ、いっか。 もし、以下のようなエラーで終了する場合、zlibがおかしくなっている可能性がある (右、はみ出すよね?) ┃make[1]: Leaving directory `/mnt/home/rutiferu/libxml2-2.9.1' ┃[ -d test ] || ln -s ./test . ┃[ -d result ] || ln -s ./result . ┃./runtest && ./testrecurse && ./testapi && ./testchar&& ./testdict && ./runxmlconf ┃/home/rutiferu/libxml2-2.9.1/.libs/lt-runtest: /usr/lib/libz.so.1: no version information available (required by /home/rutiferu/libxml2-2.9.1/.libs/libxml2.so.2) ┃/home/rutiferu/libxml2-2.9.1/.libs/lt-runtest: /usr/lib/libz.so.1: no version information available (required by /home/rutiferu/libxml2-2.9.1/.libs/libxml2.so.2) ┃/home/rutiferu/libxml2-2.9.1/.libs/lt-runtest: error while loading shared libraries: /home/rutiferu/libxml2-2.9.1/.libs/libxml2.so.2: symbol gzopen64, version ZLIB_1.2.3.3 not defined in file libz.so.1 with link time reference ライブラリのリンクを直せば良い(1.2.8の数字はインストールしたバージョン) # cd /usr/lib # rm libz.so.1 # ln -s libz.so.1.2.8 libz.so.1 # rm libzbag* 分らなかったら、libz*を削除してzlibを再インストールする # make install(bisonの事前準備)
$ wget http://ftp.yz.yamagata-u.ac.jp/pub/GNU/bison/bison-2.7.1.tar.gz $ tar xvfz bison-2.7.1.tar.gz $ cd bison-2.7.1 $ ./configure --prefix=/usr $ make $ make check # make installre2c-0.13.6の作成(注:bisonが必要)
$ wget http://sourceforge.net/projects/re2c/files/re2c/0.13.6/re2c-0.13.6.tar.gz/download $ tar xvfz re2c-0.13.6.tar.gz $ cd re2c-0.13.6 $ ./configure --prefix=/usr $ make $ make check # make installあうあう・・・(;´Д`)はぁはぁ
$ wget http://jp1.php.net/get/php-5.5.17.tar.gz/from/this/mirror $ tar xvfz php-5.5.17.tar.gz $ cd php-5.5.17 $ ./configure --prefix=/opt/php --with-libxml-dir=/usr \ --with-apxs2=/opt/apache2/bin/apxs \ --enable-mbstring --enable-mbregex \ --with-openssl --with-zlib --with-bz2 \ --with-gd --enable-gd-native-ttf --enable-gd-jis-conv \ --with-jpeg-dir=/usr/lib --with-png-dir=/usr/lib --with-freetype-dir=/usr/lib \ --without-mysql --without-pgsql --without-sqlite3 --without-pdo-sqlite \ --disable-fileinfo
option | 説明など |
--with-libxml-dir= | libxmlを指定する(DIRはコンパイル時のprefix) |
--with-apxs2= | apache2のモジュールとしてコンパイルする指定 apache1だと違うオプションになる |
--enable-mbstring | 多言語に対応させるオプション 日本語で使うには必須 |
--with-zlib-dir | ファイルの圧縮転送を行えるようにする(?) |
--with-gd --enable-gd-native --enable-gd-jis-conv |
gdというグラフィックを弄るソフト関係のオプション |
--with-jpeg-dir= | jpegファイルを取り扱えるようにする |
--with-png-dir= | pngファイルを取り扱えるようにする |
--with-freetype-dir= | TrueTypeフォントをレンダリングするライブラリを扱えるようにする |
--disable-fileinfo | コンパイル時エラーが出るため |
$ vi /opt/apache2/conf/httpd.conf (追加) ┃< LoadModule php5_module modules/libphp5.so 注:php4_moduleはロードしないように削除(コメント化)すること。おまじない
# strip -p /opt/php/bin/*phpを登録する
# vi /opt/apache2/conf/httpd.conf (追加) ┃AddType application/x-httpd-php .php ┃AddType application/x-httpd-php-source .phps 注:AddType application がある近くに記載する方がいいと思われapacheの再起動
# /etc/init.d/httpd stop # /etc/init.d/httpd start「オプションの変更」
戻るなら押せ!