Home > Linuxサーバ > PHPをソースからインストールする方法

PHPをソースからインストールする方法

Webサーバとしてnginxを稼働させた場合、PHPの導入方法がApacheとは違っているのでその導入方法をまとめて見ました。PHP自体はパッケージを使って導入するのではなくソースからインストールする方針で導入してみました。

PHPソースの取得

phpのサイトよりソースファイルを取得します。PHPのソースファイルは、php-X.X.X.tar.gzのようにバージョンごとにファイルがあるのでダウンロードします。wgetコマンドが便利なので下記コマンドで入手します。

wget http://jp.php.net/get/php-X.X.X.tar.gz/from/this/mirror

取得したPHPのソースファイルを展開しMakefileを作成します。コンパイル時のオプションはfpmを使用できるように設定しておきます。

tar zxvf php-X.X.X.tar.gz
cd php-X.X.X
./configure --prefix=/usr/local/php-X.X.X --enable-fpm

PHPのコンパイル時のエラー対応

configureコマンド実行時に下記のエラーが出ました。

configure: error: xml2-config not found. Please check your libxml2 installation.

xml2-configファイルが無いとの事。libxml2-devパッケージををインストールします。依存関係の解消で、が同時にインス libxml2 sgml-base xml-coreトールされました。

sudo apt-get install libxml2-dev

コンパイルとインストール

あとは普通にコンパイル、インストールを行います。

make
sudo make install
cd /usr/local
sudo ln -s php-X.X.X php

php.iniの設置

phpの設定ファイルであるphp.iniを設置する場所を調べます。

sudo /usr/local/php/bin/php --ini

「Configuration File (php.ini) Path: /usr/local/php-X.X.X/lib」とあるのでその場所にphp.iniを置きます。サンプルがソース/usr/local/src/php-X.X.X/にあるのでコピーします。

sudo cp /usr/local/src/php-X.X.X/php.ini-production /usr/local/php-X.X.X/lib/php.ini

先ほど、php.iniの置き場所を調べたコマンドを実行すると、「Loaded Configuration File: /usr/local/php-X.X.X/lib/php.ini」と表示されることを確認します。

php-fpmの設定ファイルの作成

設定ファイルのひな形があるのでコピーします。

sudo cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

コピーした設定ファイルを変更します。

まずは、プログラムIDを記録しているファイルの設定から変更します。

【変更前】
; Pid file
; Note: the default prefix is /usr/local/php-5.4.7/var
; Default Value: none
;pid = run/php-fpm.pid

【変更後】
; Pid file
; Note: the default prefix is /usr/local/php-5.4.7/var
; Default Value: none
pid = /var/run/php-fpm.pid

次に、ログファイルの出力先を変更します。

【変更前】
; Error log file
; If it's set to "syslog", log is sent to syslogd instead of being written
; in a local file.
; Note: the default prefix is /usr/local/php-5.4.7/var
; Default Value: log/php-fpm.log
;error_log = log/php-fpm.log

【変更後】
; Error log file
; If it's set to "syslog", log is sent to syslogd instead of being written
; in a local file.
; Note: the default prefix is /usr/local/php-5.4.7/var
; Default Value: log/php-fpm.log
error_log = /var/log/php-fpm.log

実行ユーザの設定を変更します。今回はnginx上で動かすのでnginx用のユーザを指定します。

【変更前】
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
user = nobody
group = nobody

【変更後】
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
user = nginx-user
group = nginx-user

起動と停止

下記のコマンドで起動と停止を行います。

【起動】
/usr/local/php/sbin/php-fpm

【停止】
kill `cat /var/run/php-fpm.pid`

Home > Linuxサーバ > PHPをソースからインストールする方法

検索
管理情報

Return to page top