Linux 上の Nginx に複数のバージョンの PHP をインストールする

Linux 上の Nginx に複数のバージョンの PHP をインストールする

サーバーの LNPM 環境をインストールして構成する場合、複数のバージョンの PHP の共存を考慮する必要があります。以下は、Linux システムで Nginx に複数のバージョンの PHP をインストールする方法です。

Linux バージョン: 64 ビット CentOS 6.4

Nginx バージョン: nginx1.8.0

PHP バージョン: php5.5.28 および php5.4.44

php5.5 がメインバージョンで、/usr/local/php ディレクトリにインストールされている場合は、他のバージョンの php をインストールして、異なるインストール ディレクトリを指定できることに注意してください。

PHPをインストールする

# wget http://cn2.php.net/get/php-5.4.44.tar.gz/from/this/mirror
# tar zxvf php-5.4.44.tar.gz
# php-5.4.44をインストールします
#./configure --prefix=/usr/local/php5.4.44 \
--curl \ で
--freetype ディレクトリ \
--gd \ で
--gettext \ で
--with-iconv-dir \
--kerberos \ で
--with-libdir=lib64 \
--with-libxml-dir \
--mysql \ で
--mysqli \ で
--openssl \ で
--pcre正規表現 \
--pdo-mysql \ で
--pdo-sqlite \ で
--梨付き\
--png-dir \ で始まる
--xmlrpc \ で
--xsl \ で
--with-zlib \
--enable-fpm \
--enable-bcmath \
--enable-libxml \
--enable-inline-optimization \
--enable-gd-native-ttf \
--enable-mbregex \
--enable-mbstring \
--enable-pcntl \
--enable-shmop \
--enable-soap \
--enable-sockets \
--enable-sysvsem \
--enable-xml \
--enable-zip
# 作成 && インストール
# cp -R ./sapi/fpm/php-fpm.conf /usr/local/php5.4.44/etc/php-fpm.conf
# cp php.ini-development /usr/local/php5.4.44/lib/php.ini
# cp -R ./sapi/fpm/php-fpm /etc/init.d/php-fpm5.4.44

メインバージョン 5.5.28 は 9000 をリッスンするため、php-fpm.conf のリッスン ポートを 9001 に変更します。

; 注意: この値は必須です。
リッスン = 127.0.0.1:9001

php-fpmを起動する

php-fpm5.4.44 は、以下のコマンドで実行できます。

PHPのインストールが正常に完了しました。進行状況を表示します。

#ps 補助|grep php

これでphp-fpmが起動しました。

Nginx を設定する

新しいポート 8054 構成を追加し、それを 9001 と指定されたディレクトリにポイントするだけです。

サーバー{
    聞く 8054;
    server_name ローカルホスト;


    位置 / {
      #ルートhtml;
ルート /usr/www5.4.44;
      インデックス index.html index.htm;
    }


    エラーページ 500 502 503 504 /50x.html;
    場所 = /50x.html {
      ルートhtml;
    }


場所 ~ \.php$ {
ルートhtml;
127.0.0.1:9001; をロードします。
fastcgi_index インデックス.php;
fastcgi_params を含めます。
fastcgi_param SCRIPT_FILENAME /usr/www5.4.44$fastcgi_script_name;
}
 
  }


nginxの設定ファイルnginx.confは

# cd /usr/local/nginx/conf

完全な nginx 構成は次のとおりです。

#ユーザーnobody;
ワーカープロセス 4;
 
#error_log ログ/error.log;
#error_log ログ/error.log 通知;
#error_log ログ/error.log 情報;
 
#pid ログ/nginx.pid;
 
 
イベント {
  ワーカー接続 1024;
}
 
 
http {
  mime.types を含めます。
  デフォルトタイプ アプリケーション/オクテットストリーム;
 
  #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  # '$status $body_bytes_sent "$http_referer" '
  # '"$http_user_agent" "$http_x_forwarded_for"';
 
  #access_log ログ/access.log メイン;
 
  ファイル送信オン;
  #tcp_nopush オン;
 
  #キープアライブタイムアウト 0;
  キープアライブタイムアウト65;
 
  #gzip オン;
 
  サーバー{
    聞く 80;
    server_name ローカルホスト;
 
    #文字セット koi8-r;
 
    #access_log ログ/host.access.log メイン;
 
    位置 / {
      #ルートhtml;
			ルート /usr/www;
      インデックス index.html index.htm;
    }
 
    #エラーページ 404 /404.html;
 
    # サーバーのエラーページを静的ページ /50x.html にリダイレクトします
    #
    エラーページ 500 502 503 504 /50x.html;
    場所 = /50x.html {
      ルートhtml;
    }
 
    # PHP スクリプトを 127.0.0.1:80 で listen している Apache にプロキシします
    #
    #場所 ~ \.php$ {
    # プロキシパス http://127.0.0.1;
    #}
 
    # PHP スクリプトを 127.0.0.1:9000 で待機している FastCGI サーバーに渡します
    #
    #場所 ~ \.php$ {
    #ルートhtml;
    #fastcgi_pass 127.0.0.1:9000;
    # fastcgi_index インデックス.php;
    # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
    #fastcgi_params を含めます。
    #}
 
		場所 ~ \.php$ {
		ルートhtml;
		127.0.0.1:9000; をデフォルトとして設定します。
		fastcgi_index インデックス.php;
		fastcgi_params を含めます。
		fastcgi_param SCRIPT_FILENAME /usr/www$fastcgi_script_name;
		}
 
    # Apacheのドキュメントルートが.htaccessファイルへのアクセスを拒否する
    # nginxのものと一致します
    #
    #場所 ~ /\.ht {
    # すべて拒否;
    #}
  }
	
	サーバー{
    聞く 8054;
    server_name ローカルホスト;
 
    位置 / {
      #ルートhtml;
			ルート /usr/www5.4.44;
      インデックス index.html index.htm;
    }
 
    エラーページ 500 502 503 504 /50x.html;
    場所 = /50x.html {
      ルートhtml;
    }
 
		場所 ~ \.php$ {
		ルートhtml;
		127.0.0.1:9001; をロードします。
		fastcgi_index インデックス.php;
		fastcgi_params を含めます。
		fastcgi_param SCRIPT_FILENAME /usr/www5.4.44$fastcgi_script_name;
		}
 
  }
 
 
	
  # IP、名前、ポートベースの設定を組み合わせた別の仮想ホスト
  #
  #サーバー{
  # 8000を聴く;
  # somename:8080 をリッスンします。
  # server_name somename alias another.alias;
 
  # 位置 / {
  #ルートhtml;
  # インデックス index.html index.htm;
  # }
  #}
 
 
  # HTTPS サーバー
  #
  #サーバー{
  # 443 ssl をリッスンします。
  # サーバー名 localhost;
 
  # ssl_certificate cert.pem;
  # ssl_certificate_key cert.key;
 
  # ssl_session_cache 共有:SSL:1m;
  #ssl_session_timeout 5分;
 
  # ssl_ciphers HIGH:!aNULL:!MD5;
  # ssl_prefer_server_ciphers オン;
 
  # 位置 / {
  #ルートhtml;
  # インデックス index.html index.htm;
  # }
  #}
 
}

nginxを再起動する

# /usr/local/nginx/sbin/nginx -s リロード

ファイアウォールで新しいポートを開く必要があることに注意してください。そうしないと、アクセスできなくなります。

ファイアウォールの設定

XP などのローカル マシン (centos6 の場合) で仮想マシンの Web ページにアクセスする場合は、ファイアウォールを変更してポート 80 を有効にする必要があることに注意してください。

# /etc/sysconfig をコピーする

iptablesファイルを変更するか、vimで直接編集します。

# vim /etc/sysconfig/iptables

ファイアウォールでポート 80 を開くには、次の行を追加します。

-A 入力 -m 状態 --state 新規 -m tcp -p tcp --dport 8054 -j 受け入れる

ファイアウォールを再起動する

# /etc/init.d/iptablesを再起動します

phpinfo() をチェックして、テストが成功したかどうかを確認します。

上記は、Linux システムで Nginx 用の PHP の複数のバージョンをインストールする方法です。皆様のお役に立てれば幸いです。

以下もご興味があるかもしれません:
  • CentOS 8.1 で LEMP (Linux+Nginx+MySQL+PHP) 環境を構築する (チュートリアルの詳細)
  • LinuxにPHP7をインストールする方法の詳細な説明
  • Linux で PHP curl 拡張機能をインストールする方法の詳細な説明
  • PHPでLinuxコマンドを実行する方法
  • Linux の PHP7 に Redis をインストールする方法
  • php-fpm モード ランプに基づいて Linux で phpmyadmin を構築する方法
  • Centos7 (linux+nginx+php7.1+mysql5.7) で yum を使用して lnmp をインストールするチュートリアル
  • PHP は 6 つの Linux コマンド関数コード例を実行します

<<:  MacでMysqlのルートパスワードを忘れた場合の解決方法

>>:  MySQL パーティションテーブルの制限と制約の詳細な説明

推薦する

Vue は左右のスライド効果のサンプルコードを実装します

序文個人の実際の開発で使用した効果問題を、今後の開発やレビューに役立てるためにまとめています。他の人...

Vueはログイン時に画像認証コードを実装します

この記事では、Vueログイン用画像認証コードの具体的なコードを例として紹介します。具体的な内容は以下...

Linux サーバーのスクリプトを自動的にバックアップする方法 (mysql、添付ファイルのバックアップ)

1.backup.shスクリプトファイルを作成する #!/bin/sh ソースフォルダ=/データ ...

MySQL ストレージエンジン InnoDB の設定と使用方法の説明

MyISAM と InnoDB は、MySQL で最も一般的なストレージ エンジンです。前回の記事で...

純粋な HTML タグにどれくらい精通していますか?

以下の HTML タグには、基本的に既存のタグがすべて含まれています。数分かけて 1 つずつ参照する...

Mysql論理アーキテクチャの詳細な説明

1. 全体的なアーキテクチャ図他のデータベースと比較すると、MySQL は、そのアーキテクチャがさま...

Web ページの HTML コードの説明: 順序付きリストと順序なしリスト

このセクションでは、HTML のリスト要素について学習します。リストは、Web サイトのデザインにお...

Vue コンポーネント (Vuex を含む) 間の値の転送に関する簡単な説明

目次父から息子へ:息子から父へ: Vuex を使用せずにコンポーネント間で値を渡す方法は、親から子、...

メタビューポートタグ(モバイルブラウジングズームコントロール)の使用方法

OP が現在のファームウェアで Web ページを開くと、常に 50% にズームアウトされてから表示さ...

イラスト風ウェブサイトホームページデザイン ウェブサイトデザインの新トレンド

視覚効果が非常に美しく、訪問者に強い印象を残すことがわかります。さらに、重要なポイントが強調され、訴...

MYSQLでプロシージャの名前を変更する方法の詳細な説明

最近、ストアド プロシージャの名前を変更する機能を使用しました。インターネットで情報を検索しましたが...

Vue2とVue3の兄弟コンポーネント通信バスの違いと使い方

目次vue2.x vue3.x tiny-emitterプラグインの使用Mittプラグインの使用vu...

Docker での Redis 接続の急増をトラブルシューティングした実践的な記録

土曜日、本番サーバー上の Redis サーバーが利用できなくなり、エラー メッセージは次のようになり...

resizeを使用して画像切り替えプレビュー機能を実装する方法

要点CSS resize プロパティを使用すると、要素のサイズ変更可能性を制御できます。サイズ変更を...

MySQL 外部キー設定方法の例

1. 外部キーの設定方法1. MySQL では、2 つのテーブルを関連付けるために、外部キー (FO...