skillup

技術ブログ

PHP サーバー・ネットワーク

phpenv5.3+php-fpm

投稿日:

レガシーなプロジェクトではいまだにPHP5.3なんかを使うケースがあったりします。

これがCentOS6だったらyumでphp5.3とかだったらいいんですが、サーバーはCentOS7だったりするとなかなか大変です。

流石にCentOS7とかだとyumで入れても5.3ははいりません。

となると選択肢としては

  • ソース自体をダウンロードしてコンパイル
  • phpenv

かと思うのですが、色々迷った末、phpenvで5.3を入れることに。

phpenv自体は入れるのはそれほど難しくなかったんですが、サーバー自体がnginx+php-fpmで動かす要件だったため、php-fpmにphpenvを読み込ませるが少々手間だったのでメモしておこうと思います。

ちょっと前にもapacheでphpenvのインストールをする機会がありまして、結構大変でしたね・・・

phpenv+php-build 複数のPHPのversionを使い分け

apacheで複数インスタンスの起動

phpenvでglobalで5.3を入れたあとですが、phpを5.3にしただけではWebからアクセスした時にはまだ読み込めていません。php-fpmに読み込ませる必要が出てきます。

php-fpmに読み込ませるためですが、phpenv内にあるphp-fpm用の設定ファイルを下記コマンドでコピーしておきましょう。

あとはphpenvのなかに入っているphp-fpmを直で実行しましょう。

一番簡単なパターンはこれでOKかと思います。

phpenvで最新版のPHPをインストールしてWebサイトで使用する

php-fpm時に下記のようなエラーが出ましたが、設置のコメントアウトを外したらなんとかいけました。曖昧な理解ですが・・・・

さくらVPS php-fpm.confの設定

簡単な場合はこれでなんとかなると思いますが、もともとyumでphpやphp-fpmを入れていると面倒かと思います。

その場合、

  • php-fpmにphpenvのシンボリックリンクを貼る
  • 起動スクリプトを書く(直起動させるなら不要です。)

などが必要です。(リンク参照)

最終的にはphpinfoでバージョンやphpのパスなどを確認しましょう。

systemd下でphpenvを使って複数バージョンのphp-fpmを動かす

 

-PHP, サーバー・ネットワーク
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

emptyの扱いに関して

PHPで空白や存在確認として便利なemptyですが、乱用すると意図しない動きをすることがあるケースが多々あります。 Contents1 emptyの挙動に関して2 数値の03 検索などの全判定と値のな …

no image

phing

今までphpunit,phpmd,phpcodesniffer,phpdocumentなどのツールをいろいろと試してきますが、個別に動かしていると大変面倒ですので、これを一気に行えるライブラリがありま …

no image

ansible複数アイテム登録&ファイル分割&ログ

引き続きansibleに関して。 Contents1 設定ファイルの書き換え1.1 ini_file1.2 lineinfile2 複数の値の置換3 ファイル分割3.1 ログ修正 設定ファイルの書き換 …

no image

php-fpmに関して

今回はphp-fpmに関して。会社のサーバー(このブログが載っているサーバー)がこれ使ってて、メモリをやたら消費しており、設定を見直す必要があったので、リサーチ。 Contents1 php-fpmと …

no image

guzzle

サイトへのログイン認証などHTTPアクセスを行うライブラリではHTTP2_requestが有名かと思いますが、すでに開発がとまっていることもあり、最近はguzzleというライブラリが使われているようで …