PHP のインストール Linux (コンパイルでのインストール方法)
2012年7月8日 php 5.4.4 にて インストール確認済み & 記述ミス修正済み
参考コマンドのバージョン部分は各自最新のバージョンに置き換えて実行してください。
CentOS にて動作確認をしていますが、FedoraCore などでも問題ないと思います。
■ ソースのダウンロード
下記より最新版のソースを取得します。
http://www.php.net/downloads.php
# wget http://jp2.php.net/get/php-5.2.8.tar.gz/from/jp.php.net/mirror
■ 解凍
# tar zxvf php-5.2.8.tar.gz
■ コンパイルとインストール
# cd php-5.2.5
# ./configure –prefix=/usr/local/php –with-apxs2=/usr/local/apache2/bin/apxs –enable-magic-quotes –enable-xml –enable-mbregex –enable-mbstring –enable-zend-multibyte –with-mysql=/usr/local/mysql –with-zlib –with-xsl
モジュールが足りずエラーが発生した場合、モジュールをインストールして再度実行しましょう。
エラーの例 その1
xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution
# yum install libxslt-devel
エラーの例 その2
xml2-config not found. Please check your libxml2 installation.
# yum install libxml2-devel
エラーの例 その3
configure: error: jpeglib.h not found.
yum install libjpeg-devel
エラーの例 その4
configure: error: png.h not found.
yum install libpng-devel
エラーの例 その5
configure: error: freetype.h not found.
yum install freetype-devel
エラーの例 その6
configure: error: mcrypt.h not found. Please reinstall libmcrypt.
yum install libmcrypt-devel
■ make と make install
# make
# make install
■ httpd.conf の確認
# vi /usr/local/apache2/conf/httpd.conf
下記が存在しない場合は下記を追加(# Dynamic Shared Object (DSO) Support)のあたりです。
AddType application/x-httpd-php .php
LoadModule php5_module modules/libphp5.so
■ php.ini のコピー
cp /usr/local/src/php-5.2.5/php.ini-dist /usr/local/php/lib/php.ini
■ php.ini の編集
vi php.ini
output_buffering = On
output_handler = mb_output_handler
default_charset = “utf8”
session.save_path = /tmp/php
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = UTF-8
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none
mbstring.script_encoding = auto
■ apache を再起動します。
# /usr/local/apache2/bin/apachectl restart
エラーの場合
下記のエラーはSELINUXが有効になっていると出ます。
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
SELINUX を無効にして再度再起動してください。
# setenforce 0
■ インストール完了の確認
確認用のPHPを作成します。
下記のファイルにを作成し1行追加します。
# vi /usr/local/apache2/htdocs/test.php
<? phpinfo(); ?>
バージョン情報が出れば完了です。
ブラウザでアクセスをしましょう。
http://localhost(または IP アドレス)/test.php
■ ブラウザで接続できない場合
IPテーブルの設定を確認しましょう。
# /etc/init.d/iptables stop
を行った後に接続できた場合はIPテーブルでアクセスが拒否されています。
下記の1行を追加すればアクセスできます。ただしセキュリティに関しては、全てのアドレスから80 port に
アクセス できるようになってしまいます。状況に応じてIP等を指定すると良いでしょう。
# vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -p 80 -j ACCEPT