ホームページ > バックエンド開発 > PHPチュートリアル > Linux での php 環境のインストールと、php-fpm モジュールをサポートするように Nginx を構成する方法の詳細な紹介 (画像とテキスト)

Linux での php 環境のインストールと、php-fpm モジュールをサポートするように Nginx を構成する方法の詳細な紹介 (画像とテキスト)

黄舟
リリース: 2023-03-06 21:36:01
オリジナル
2262 人が閲覧しました

この記事では詳しい解説を中心に紹介していますLinuxinstallphp環境下に、php-fpmモジュールをサポートするようにNginxを設定します、興味のある友人はそれを参照できます

以下では、PHP 実行環境をインストールする例として、PHP の公式 Web サイトを開き、ナビゲーション バーの [ダウンロード] をクリックしてダウンロードに入ります。ページにアクセスして、最新バージョンの php 7.0.5 ソース コード パッケージをダウンロードします:

ダウンロード後サーバーにアップロード

PHP のインストールにはコンパイルが必要なため、サーバーは gcc および g++ 環境のインストールを確認する必要があります

インストールパッケージをリリースします:

tar -xvzf php-7.0.5.tar.gz
cd php-7.0.5
ログイン後にコピー

次に、パラメータの設定に進みます。設定前に libxml2 と libxml2-devel が存在しない場合、エラーが報告されるため、libxml2 を更新し、libxml2-devel をインストールする必要があります。

yum -y install libxml2
yum -y install libxml2-devel
ログイン後にコピー

さらに、オペレーティング システム環境が異なると、システム インストール開発環境パッケージの完成度も異なるため、オペレーティング システムをインストールするときに必要な選択を行うことをお勧めします。また、すべてのコマンドを均一に実行することもできます。アンインストールされたコンポーネントがすでにインストールされている場合は、バージョンが完全に一致している場合はアップグレードできます。 コマンド 上記の 2 つに加えて、概要は次のとおりです:

yum -y install openssl
yum -y install openssl-devel
yum -y install curl
yum -y install curl-devel
yum -y install libjpeg
yum -y install libjpeg-devel
yum -y install libpng
yum -y install libpng-devel
yum -y install freetype
yum -y install freetype-devel
yum -y install pcre
yum -y install pcre-devel
yum -y install libxslt
yum -y install libxslt-devel
yum -y install bzip2
yum -y install bzip2-devel
ログイン後にコピー

基本的にはこれで十分です。インストールが完了したら、設定を実行します。

コードは次のとおりです。

./configure --prefix=/usr/local/php --with-curl --with-freetype-
dir
 --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-
mysql
i --with-openssl --with-pcre-regex --with-
pdo
-mysql --with-pdo-
sqlite
 --with-pear --with-png-dir --with-jpeg-dir --with-xmlrpc --with-xsl --with-zlib --with-bz2 --with-m
hash
 --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mb
string
 --enable-
opcache
 --enable-pcntl --enable-shmop --enable-
soap
 --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-zip
ログイン後にコピー

実際、ここでの設定項目は上記以外にもあります。すべてのオプションを表示するには、./configure --help コマンドを使用します。php7 では --with-mysql のネイティブ サポートは存在せず、上記のオプションは通常の php で完全にサポートされるようになっていることに注意してください。後で必要に応じて、対応するモジュール

を手動で開き、コンパイルを実行することもできます:

make
ログイン後にコピー

コンパイルが完了したら、インストールを実行します:

make install
ログイン後にコピー

php のデフォルトのインストール場所の上に、/usr/local/php として指定されています。 次に、対応するファイルを設定します:

cp php.ini-development /usr/local/php/lib/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp sapi/fpm/php-fpm /usr/local/bin
ログイン後にコピー

次に、php.ini を設定し、vim /usr/local/php/lib/php.ini を使用します。 php

設定ファイルを開いてcgiを見つけます。 fix_pathinfo設定項目はデフォルトでコメント化しており、値は1です。公式ドキュメントによると、これはNginxがバックエンドPHP-FPMにリクエストを送信するのを防ぐためです。ファイルが存在しない場合はモジュールを追加し、悪意のあるスクリプトインジェクション攻撃を回避するため、この項目のコメントを解除して 0 に設定する必要があります

設定後、保存して終了します

もう一つ注意すべきことは、 php.ini 設定ファイルはプリコンパイル設定パラメータに設定でき、コンパイル パラメータは次のように記述できます。 --with-config-file-path=/usr/local/php この場合、PHP は元に戻ります。このパラメータが追加されていない場合、デフォルトの場所は PHP インストール ディレクトリの下の lib ディレクトリになり、phpinfo() 出力インターフェイスでも詳細を確認できます。 php.ini が他の場所に配置され、PHP がそれを読み取ることができない場合、すべての設定変更は有効になりませんので注意してください

この時点では、まず Web ユーザーを作成する必要があります:

groupadd www-data
useradd -g www-data www-data
ログイン後にコピー

その後、インターネット上のいくつかのチュートリアルで次のようになります。 php-fpm.conf を変更して、上で作成したユーザーとグループを追加します。現時点では、vim /usr/local/etc/php-fpm.conf を使用してファイルを開きますが、プロンプトの場所が見つかりません。

この時点で任意の場所に追加すると、php-fpm起動時にディレクトリが見つからないエラーが報告されるため、この時点ではphp-fpm.conf

にユーザーを追加しないでください。 php-fpm.conf の最後の行に移動すると、次の内容が見つかります (コンパイル時に --prefix オプションを追加すると、以下の位置が自動的に補完されます。デフォルトでは、以下は空です。注意):

php-fpm.d ディレクトリ内のすべての conf 設定ファイルがここで紹介されていますが、実際のディレクトリに変更する必要があるものはありません: /usr/local

デフォルトでは、 etc/php-fpm.d/ の下の名前 www.conf.defalut のユーザー ファイルを構成するには、次のコマンドを実行して新しいファイルをコピーし、それを開きます:

cp /usr/local/etc/php-fpm.d/www.conf.default /usr/local/etc/php-fpm.d/www.conf
vim /usr/local/etc/php-fpm.d/www.conf
ログイン後にコピー

デフォルトのユーザーとグループの設定は、nobody です。変更してください。 to www-data

変更が完了したら、保存して終了し、次のコマンドを実行して php-fpm サービスを開始します:

/usr/local/bin/php-fpm
ログイン後にコピー

開始後、php-fpm サービスはデフォルトでポート 9000 を使用します。 netstat -tln | grep 9000 でポートの使用状況を確認します:

  

9000端口正常使用,说明php-fpm服务启动成功

然后执行 vim /usr/local/nginx/nginx.conf 编辑nginx配置文件,具体路径根据实际的nginx.conf配置文件位置编辑,下面主要修改nginx的server {}配置块中的内容,修改location块,追加index.php让nginx服务器默认支持index.php为首页:

  

然后配置.php请求被传送到后端的php-fpm模块,默认情况下php配置块是被注释的,此时去掉注释并修改为以下内容:

  

这里面很多都是默认的,root是配置php程序放置的根目录,主要修改的就是fastcgi_param中的/scripts为$document_root

修改完上面的,回到nginx.conf第一行,默认是#user nobody; 这里要去掉注释改为user www-data;或者user www-data www-data;表示nginx服务器的权限为www-data

修改完这些保存并退出,然后重启nginx:

/usr/local/nginx/nginx -s stop
/usr/local/nginx/nginx
ログイン後にコピー

接下来编辑一个测试的php程序,在nginx下的html目录下创建test.php文件,打印一下php配置:

<?php
  phpinfo();
?>
ログイン後にコピー

然后打开浏览器输入对应的地址进行访问,看到输出页面,说明nginx和php都配置成功了:

相关文章:

Mac默认使用自己安装的php

centos6.7安装php7的详细介绍

详细介绍CentOS7编译安装PHP7的示例代码(图)

以上がLinux での php 環境のインストールと、php-fpm モジュールをサポートするように Nginx を構成する方法の詳細な紹介 (画像とテキスト)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート