【PHP】5.2.8 インストール Linux

PHP のインストール Linux (コンパイルでのインストール方法)

2012年7月8日 php 5.4.4 にて インストール確認済み & 記述ミス修正済み

参考コマンドのバージョン部分は各自最新のバージョンに置き換えて実行してください。

CentOS にて動作確認をしていますが、FedoraCore などでも問題ないと思います。

http://php.net/

■ ソースのダウンロード

下記より最新版のソースを取得します。
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

フォローする