Fatal Error: Unexpected BLOG

主に自分用の備忘録として

【VM】【環境構築】VirtualBoxを使ってPC上に開発環境を構築する(4 - PHP-FPMをインストールする)

前回はDBサーバにMySQLをインストールしました。

今回はWEBサーバにPHPをインストールします。

WEBサーバにはNginxを使っているので、PHPPHP-FPMを利用します。

PHPのバージョンは5.5.20です。

 

以下のサイトを参考にしました。

 

ソースコードの入手とビルドに必要なソフトウェアをインストール

せっかくなので(?)、ソースコードからビルドします。

ソースコードからビルドする際はCコンパイラとmakeが必要になるので、インストールしておきます。

    # yum install gcc
    # yum install make

CentOS6.4だとmakeは標準で入っているんですかね?「nothing to do」でした。

php.netからソースコードをダウンロードしてきます。

ソースコードの保存先を指定したいので、curlでダウンロードします。

バージョンは5.5.20です。

# curl -Lo php-5.5.20.tar.gz http://jp1.php.net/get/php-5.5.20.tar.gz/from/this/mirror

ダウンロードしたソースコードファイルを/usr/local/srcディレクトリ配下にて解凍します。

# tar xfz php-5.5.20.tar.gz -C /usr/local/src/

/usr/local/src/php-5.5.20/というディレクトリが掘られて、その中にソースコードが展開されています。

 

PHPPHP-FPM)のビルド

作業ディレクトリをソースコードが展開されているディレクトリに移動して下さい。

今回の場合は /usr/local/src/php-5.5.20/ です。

まずconfigureを使用してmakefileを作成します。

/usr/local/php-5.5.20/ディレクトリに、php-fpmを有効にしてインストールします。

    # ./configure \
    > --with-pdo-mysql=mysqlnd \
    > --with-mysqli=mysqlnd \
    > --with-readline \
    > --with-openssl \
    > --enable-fpm

デフォルトのままだと以下のエラーが出るかもしれません。

    configure: error: xml2-config not found. Please check your libxml2 installation.
    configure: error: Cannot find OpenSSL's 

ビルド時に必要なモジュールが入っていないために起こるエラーです。

それぞれyumでインストール出来ます。

    # yum install libxml2-devel
    # yum install openssl-devel

configureが完了するとmakefileが作成されているのでmakeでビルド・インストールします。

    # make
    # make install

一回目のmakeでビルドして、二回目のmakeでインストールします。

二回目のmakeが終了すれば、インストールは完了です。

 一応、シンボリックリンクを貼っておきます。

# ln -s /usr/local/php-5.5.20 /usr/local/php

 

初期設定

 PHP-FPMの起動オプションを設定します。

init.d.php-fpmを/etc/init.d/配下に名前を変更してコピーします。

# cp /usr/local/src/php-5.5.20/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

このままだと、権限が無いと怒られるので、パーミッションを変更します。

    # chmod +x /etc/init.d/php-fpm

更に、PHP-FPMの設定ファイルをとりあえずデフォルトのままで作成します。

デフォルトのconfファイルを名前を変更してコピーします。

    # cp /usr/local/php-5.5.20/etc/php-fpm.conf.default /usr/local/php-5.5.20/etc/php-fpm.conf

パスは環境に合わせて読み替えて下さい。

これで以降は以下のコマンドでPHP-FPMの起動を操作出来ます。

    # service php-fpm start
    # service php-fpm stop
    # service php-fpm restart

 

適宜NginxとPHP-FPMの設定を行えば完了です。

 

2015/5/13 追記

ソースコードからインストールした場合、yum経由での管理が出来ず、めんどくさいのでyumでインストールする方法もご紹介します。

 

リポジトリの追加

デフォルトのリポジトリを使ってyumでインストールすると、PHPのバージョンは5.3になってしまいます。

5.5系はremiリポジトリを使用するとyumインストール出来るので、まずリポジトリを追加します。

    # rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
    # rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

1行目でepelリポジトリを追加、2行目でremiリポジトリを追加しています。

 

リポジトリ設定の修正

epelリポジトリはなぜかデフォルトでbaseurlがコメントアウトされています。

これを有効化します。

    # vi /etc/yum.repos.d/epel.repo
    baseurl=http://...      ←ここを有効化
    #mirrorlist=https://... ←こっちをコメントアウト

 

 依存解決

今回はphpMyAdminを導入する予定なので、php-mcryptをインストールしますが、これにはlibmcryptが必要なので、予めインストールしておきます。

    # yum install -y --enablerepo=epel libmcrypt

 

PHPインストール

yumPHPと各種拡張をインストールします。

今回は以下のような構成にしました。

Nginxを使用するので、PHP-FPMは必須です。

    
    # yum install --enablerepo=remi-php55 \
    > php \
    > php-cli \
    > php-common \
    > php-fpm \
    > php-mbstring \
    > php-mcrypt \
    > php-pecl-memcache \
    > php-mysql \
    > php-pdo \
    > php-soap \

 これでPHP5.5をyumインストール出来ました。

yumでインストールした場合は、/etc/inid.d/への登録や、php-fpm.confの配置なども完了しています。

適宜 chkconfigで自動起動を設定して下さい。