Linux システムで複数のバージョンの PHP を共存させるソリューション (超シンプル)

Linux システムで複数のバージョンの PHP を共存させるソリューション (超シンプル)

PHP7が出たので、最新バージョンのファンとしては、早速アップグレードして体験してみました。しかし、サーバー上では古いプログラムがまだ動いているため、PHPの複数バージョン共存環境を導入する必要がありました。

既存の環境はlnmpです
- CentOS6.7
- nginx 1.10.1
- マリアDB-10.0.26
- PHP 7.0.8

古い PHP プログラムとの互換性を高めるために、5.4.45 を使用することをお勧めします。主に MySQL 拡張機能と互換性があります。

インストールを開始

まず、php-5.4.45.tar.gz ソース パッケージをダウンロードします。

ソースからインストール

# tar xzvf php-5.4.45.tar.gz
# php-5.4.45をインストールします

#./CONFIGURE -PREFIX =/usr/local/php54 -with-config-file-path =/usr/local/php54/etc- enable-fpm-user = www-with-group = www--with-mysql = mysqlnd-with-mysqpddsqldsqldsqld -iconv-dir-with-freeType-dir =/usr/local/freetype -with-jpeg-dir -with-dir -with-zlib -with-libxml-dir =/usr -disable-rpath-enable-shmop-enable-sysvsemsem-disem-dimsem-disable-shmop-disable-shmop x -ENABLE-MBSTRING -WITH-MCRYPT  -  ENABLE-FTP -WITH-GD -ENABLE-GD-NATIVE-TTF -WITH-OPENSSL-WITH-MHASH-ENABLE-PCNTL -ENABLE-SOCKETS-WITH-XMLRPC -ENABLE-ZIP -ENABLE-SOAP -WITH-GETTEXT-WITH-disable-disable-disable-fith-fith-fith-fith-fith-fith-fith-fith-ctttex

# ZEND_EXTRA_LIBS='-liconv' とします
# インストールする
# cp php.ini-production /usr/local/php/etc/php.ini

php.ini の設定

投稿の最大サイズ = 50M
アップロード最大ファイルサイズ = 50M
日付.タイムゾーン = PRC
short_open_tag = オン
cgi.fix_pathinfo=0
最大実行時間 = 300
無効関数 = passthru、exec、system、chroot、scandir、chgrp、chown、shell_exec、proc_open、proc_get_status、popen、ini_alter、ini_restore、dl、openlog、syslog、readlink、symlink、popepassthru、stream_socket_server

php-fpm.conf の設定

# vim /usr/local/php/etc/php-fpm.conf
[グローバル]
pid = /usr/local/php54/var/run/php-fpm.pid
エラーログ = /usr/local/php54/var/log/php-fpm.log
log_level = 通知

[www.facebook.com]
リッスン = /tmp/php54-cgi.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1:9001
listen.owner = www
listen.group = www
リスンモード = 0666
ユーザー = www
グループ = www
pm = ダイナミック
午後最大子供数 = 40
pm.start_servers = 20
pm.min_spare_servers = 20
pm.max_spare_servers = 40
リクエスト終了タイムアウト = 100
リクエスト_スローログ_タイムアウト = 0
スローログ = var/log/slow.log

注: 重要なのは、リスニングポートとプロセスを設定することです。

php-fpmを起動する

# sapi/fpm/init.d.php-fpm /etc/init.d/php54-fpm をコピーします
# chmod +x /etc/init.d/php54-fpm
# /etc/init.d/php54-fpm を起動します

nginxの設定を変更し、必要なサービス設定にphp-5.4.45を使用します。

場所 ~ [^/]\.php(/|$)
 {
  try_files $uri =404;
  fastcgi_pass unix:/tmp/php54-cgi.sock;
  fastcgi_index インデックス.php;
  fastcgi.conf をインクルードします。
 }

起動時に自動的に起動するようにphp-5.4.45のphp54-fpmを設定する

# chkconfig --add php54-fpm
# chkconfig php54-fpm をオンにする

chkconfig 機能説明: さまざまなシステム サービスをチェックおよび設定します。
構文: chkconfig [–add][–del][–list][システム サービス]
chkconfig [–level <レベルコード>][システムサービス][オン/オフ/リセット]

このプログラムの焦点は

各PHPバージョンは新しい別々のフォルダにインストールする必要があります

各PHPバージョンのphp-fpm.conf設定ファイルでは、異なるプロセス名とリスニングポートを設定する必要があります。

使用するPHPバージョンのリスニングポートまたはプロセス名は、nginx設定ファイルで指定されます。

以下もご興味があるかもしれません:
  • PHPでLinuxコマンドを実行する方法
  • Linux の PHP7 に Redis をインストールする方法
  • php-fpm モード ランプに基づいて Linux で phpmyadmin を構築する方法
  • Linux 上の Nginx に複数のバージョンの PHP をインストールする
  • LinuxでのPHPウェブサイトサーバーのセキュリティ構成強化保護方法[推奨]
  • phpstudy から Linux への MySQL の移行に関するチュートリアル
  • VMware Linuxシステムに最新のPHP7をインストールする

<<:  フロントエンドにアニメーション遷移効果を実装する方法

>>:  MySQL の最適化: InnoDB の最適化

推薦する

CentOS 7 は Hadoop 2.10 の高可用性 (HA) をビルドします

この記事では、CentOS 7 で高可用性 Hadoop 2.10 クラスターを構築する方法を紹介し...

Apache ab同時負荷ストレステストの実装方法

腹筋コマンドの原則Apache の ab コマンドは、マルチスレッドの同時リクエストをシミュレートし...

Webpack コンポーネントの使用状況統計を実装するための 50 行のコード

背景最近、リーダーからコンポーネント ライブラリを構築するように依頼があり、プロジェクトで現在使用さ...

異なるドメイン名への PC または携帯電話のアクセスを区別するように Nginx を構成する方法

新しい公式サイトはオンラインですが、携帯電話で新しい公式サイトにアクセスすると、エクスペリエンスが非...

Mybatis マッパー動的プロキシの原理の分析

序文動的プロキシの原理を説明する前に、まず、mybatis を統合した後の dao 層の 2 つの実...

CSSは、入力ボックスのフローティングテキスト効果を実現するために、placeholder-shown疑似クラスを使用します。

この記事では、:placeholder-shown 疑似クラスを使用して、純粋な CSS で浮動疑問...

JavaScript 中断要求に対するいくつかの解決策の詳細な説明

目次1 約束呼び出しチェーンを中断する約束を破る中止メソッドのラッピング - Axios の Can...

Vue3.0 は虫眼鏡効果のケーススタディを実装します

達成される効果は、固定ズームが 2 倍になり、マウスが左側の画像領域に入るとマスク レイヤーが表示さ...

Springboot プロジェクトの Docker-compose イメージリリースプロセス分析

導入Docker-Compose プロジェクトは、Docker コンテナ クラスターの迅速なオーケス...

HTML タグ dl dt dd 使用方法

基本構造:コードをコピーコードは次のとおりです。 <ダウンロード> <dt>...

Dockerでの接続例外中のエラーを解決する

Docker を初めて使い始めると、通常とは異なる問題に遭遇して、必然的に混乱してしまいます。大丈夫...

Linux の PHP に XML 拡張機能をインストールする詳細な手順

PHP Linux に XML 拡張機能をインストールする1. PHPインストールソースパッケージを...

JavaScript は最大値と最小値のアルゴリズムを通じて AI 三目並べゲームを実装します

では、早速スクリーンショットを実行してみましょう。黒い駒はプレイヤーの位置、赤い駒はコンピュータの位...

シンプルなウェブページレイアウトの構造と表現原理の共有

構造とパフォーマンスの紹介HTML 構造、CSS 表現、JavaScript 動作。Web ページの...