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

Laravelでのテスト

Laravelを使ってUnitTestをする場合の注意点など。 Contents1 事前準備2 テストデータ作成機能3 実際のテストコード 事前準備 まずはアプリのディレクトリにあるphpunit.x …

no image

rewriteディレクティブ

リクエストURIを条件に応じて書き換えたり、リダイレクトする機能を使うときはrewriteを使います。こちら非常によく使う機能です。 具体的な例を見ていきましょう。 [crayon-5f7119e00 …

no image

phpmdによるコードチェック

現在のプロジェクトですが、コードレビューなどをされる環境にはないため、一人で書いていると自然と規約とずれた書き方になっていることもあります。 規約通りに書こう、書こうと思っていてもなかなかその通りに書 …

no image

cakePHPでのCSVダウンロード

cakePHPにてCSVのダウンロードなんぞを。 以前このエントリーでCSVダウンロードに関しては取り扱ったのですが、 ボタンを押す ファイルダイアログが開く パスを選ぶ 意図したデータを正常にダウン …

no image

Amazon SESについて(Route53登録→SESで受信→S3で保存)

本日はAWSのSESのメモ。 2019年はJavaScriptとAWSを勉強する、と心に決め、JavaScriptの方は色々勉強しましたが、AWSの方が手付かずでした。 インフラ系はここ2年ぐらい進歩 …