今回は PHP5.2 系列のインストールです。
対象OS : CentOS, RH*, Fedora, FreeBSD, NetBSD, OpenBSD
※)途中 yum コマンドを使います。*BSD系OSの場合は yumの変わりにPortsツリーを使いインストールしてください。
Apacheのインストール は 前回で済んでいるものとします。
■準備
# cd /usr/local/src/web # tar zxvf php-5.2.8.tar.gz ... ... ... # cd php-5.2.8
■インストール
# ./configure \ --prefix=/usr/local/php5 \ --with-apxs2=/usr/local/apache2/bin/apxs \ --without-sqlite \ --enable-mbstring \ --enable-zend-multibyte \ --enable-ftp \ --enable-sockets \ --with-mysql=/usr/local/mysql5 \ --with-gd \ --with-jpeg-dir \ --with-png-dir \ --with-freetype-dir \ --with-zlib \ --with-openssl
===============configureオプションの解説===============
–prefix=/usr/local/php5 : インストール場所を指定
–with-apxs2=/usr/local/apache2/bin/apxs :インストール済みのApacheと連動させる。
(DSOもジュールを作成する)
–without-sqlite :SQLiteを使わない
–enable-mbstring :マルチバイト関数をインストールする
–enable-zend-multibyte :Zendのマルチバイトエンジンを有効にする
–enable-ftp :FTPプロトコルをサポートする
–enable-sockets :socketをサポートする(HTTPとか)
–with-mysql=/usr/local/mysql5 :MySQLをサポートする
–with-gd :DBエンジンをサポートする
–with-jpeg-dir :Jpegライブラリをサポートする
–with-png-dir :pngライブラリをサポートする
–with-freetype-dir :FreeTypeをサポートする
–with-zlib :zLibをサポートする
–with-openssl :SSLをサポートする (HTTPSとか)
==============================
■エラー:その1
... checkig libxml2 install dir... no checking for xml2-config path... configure: error: xml2-config not found. Please check your libxml2 installation. #
PHP5のインストールには xml2ライブラリが必要です。 libxml2のライブラリとソースファイルをインストールします。
# yum install -y libxml2 libxml2-devel
■エラー:その2
... checking for fabsf... yes checking for floorf... yes configure: error: libjpeg.(a|so) not found. #
libjpegライブラリが見つかりません。インストールします。
# yum install -y libjpeg libjpeg-devel
■エラー:その3
... checking for floorf... yes checking for jpeg_read_header in -ljpeg... yes configure: error: libpng.(a|so) not found. #
libpngライブラリが見つかりません。インストールします。
# yum install -y libpng libpng-devel
■エラー:その4
... checking for jpeg_read_header in -ljpeg... yes checking for png_write_image in -lpng... yes If configure fails try --with-xpm-dir=<DIR> configure: error: freetype.h not found. #
freetype.h が見つかりません、FreeTypeのライブラリ+ヘッダファイルをインストールします。
# yum install -y freetype freetype-devel
... checking for MySQL support... yes checking for specified location of the MySQL UNIX socket... no checking for MySQL UNIX socket location... no configure: error: Cannot find MySQL header files under /usr/local/mysql5. Note that the MySQL client library is not bundled anymore! #
MySQL clientのヘッダファイルが見つかりません。–with-mysql で指定したディレクトリにMySQLがインストールされていない可能性があります。
※)MySQL は、内容が複雑ですので ソースからインストールする事が多くなっています。ソースからインストールされた場合は、MySQLのconfigureに指定した –prefix を –with-mysql= に指定してください。
一応 yum からインストールする方法を記載します。
# yum install mysql mysql-server mysql-devel
■コンパイル/インストール
# make # make test # make install
・設定ファイルを設置
# cp php.ini-dist /usr/local/php5/lib/php.ini
■設定
・AddTypeの追記
インストールが完了すると、Apacheの httpd.conf に一行の記述が追加されます。
・httpd.conf
LoadModule php5_module modules/libphp5.so
↓手動で1行追加
LoadModule php5_module modules/libphp5.so AddType application/x-httpd-php .php .phtml
この AddType では、どのような拡張子をPHPとして扱うかを指定します。
.php という拡張子のファイルを PHPで処理させたければ、ここに .php と指定します。
・SELinux の設定
そのままでは、Apache が libphp5.so を読み込む処理が SELinux によって抑制されてしまい、起動できません。
# service httpd start httpd を起動中: httpd: Syntax error on line 53 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/libphp5.so into server: /usr/local/apache2/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied [失敗] #
libphp5.so に対してのアクセスを許可します。
# chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t /usr/local/apache2/modules/libphp5.so
後は、サーバー固有の設定になりますので、 httpd.conf や php.ini などを用途に見合った設定にすれば終了です。
お疲れ様でした。