Memo

メモ > サーバ > 構築: Webサーバ設定 > nginx+PHP7

nginx+PHP7
CentOSにてnginxでPHPを動かす http://qiita.com/utano320/items/36b6eac2bbd5bb5657f6 EC2にnginx+php(php-fpm socket)環境を最速で構築 http://qiita.com/koni/items/05158e33b4c8aac07b59 nginx と PHP-FPM の仕組みをちゃんと理解しながら PHP の実行環境を構築する http://qiita.com/kotarella1110/items/634f6fafeb33ae0f51dc HHVM を導入して、PHP実行環境を高速化する | しょぼんブログ https://syobon.jp/2017/01/30/hhvm-install/ さくらVPS(CentOS7)で、Nginx+PHP7.1+MariaDBのWordPressを構築(HTTPS対応) - Qiita https://qiita.com/ktkiyoshi/items/bf920b4df02d98b570e3 ■FPMについて FPM(FastCGI Process Manager)は、PHPのFastCGI実装のひとつ。 nginxがphp-fpmと通信してPHPを実行する。 まず、PHPの実行方式には以下がある。 ・モジュール方式 … PHPはWebサーバの実行権限で動作する。 レンタルサーバなどの環境であっても、ユーザごとに実行権限制御ができない。 Apacheで利用可能。 ・CGI方式 … PHPはWebサーバとは完全に個別の権限で動作する。 他ユーザに干渉する危険が無い。 ApacheとNginxで利用可能。 速度を優先するならモジュール方式だが、セキュリティを考慮するならCGIの方が好ましい。 ただしCGI方式は各リクエストごとに新しいプロセスを起動/終了するので動作が遅い。 この対策として、FastCGIというものが使われるようになった。 FastCGIは、プロセス初回実行時に該当プロセスを一定時間サーバー内に保持することで、次回以降の実行時に「プロセスの起動/終了」を省略する。 これによりプロセスの起動/終了に伴うCPUへの負荷を軽減することで、速度面で優れるとされるモジュール版PHPと同等の処理能力を持たせている。 php-fpmは、FastCGIプロトコルを介してWebサーバー(通常はNginxやApacheなど)と通信し、 PHPの処理を行うアプリケーションサーバー的な役割を果たすもの。 大量のアクセスがある想定で、かつセキュリティ的な配慮が求められる場合に利用するのが良い。 Re: WebサーバーアーキテクチャとPHP実行方式の理解から始めるphp-fpmとはなにか? https://zenn.dev/bs_kansai/articles/3706c12408160c FastCGIについて | レンタルサーバーならエックスサーバー https://www.xserver.ne.jp/manual/man_server_php_fastcgi.php ■古いPHPを削除する場合の例
# yum remove php-* # yum remove php56* … 必要に応じて。 # yum remove php70w* … 必要に応じて。 # rm -rf /etc/php-fpm.d/ … 必要に応じて。
■CentOS7にPHP7をインストールする場合
# yum -y install epel-release … EPELのリポジトリを追加。 # rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm … Remiのリポジトリを追加。 # yum -y install --enablerepo=remi-php70 php php-cli php-common php-devel php-fpm php-gd php-mbstring php-mysqlnd php-pdo php-xml … RemiのリポジトリからPHP7をインストール。 # chkconfig php-fpm on # php -v … PHP7のインストールを確認。
■AmazonLinux2にPHP7をインストールする場合
# amazon-linux-extras install php7.3 -y … ExtrasリポジトリからPHP7を追加。 # yum -y install php-cli php-common php-devel php-fpm php-gd php-mbstring php-mysqlnd php-pdo php-xml # php -v … PHP7のインストールを確認。
■CentOS6やAmazonLinuxにPHP7をインストールする場合
# rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm … PHP7のリポジトリを追加。 # yum -y install --enablerepo=webtatic-testing php70w php70w-devel php70w-fpm php70w-mysql php70w-mbstring php70w-pdo php70w-xml # chkconfig php-fpm on # php -v … PHP7のインストールを確認。
PHP7.1をインストールする場合、「yum -y install」の内容を以下のようにする。(「php70」を「php71w」に変更。)
# yum -y install --enablerepo=webtatic-testing php71w php71w-devel php71w-fpm php71w-mysql php71w-mbstring php71w-pdo php71w-xml
■セッションの設定 そのままだとセッションが使えないので調整する。
# chgrp nginx /var/lib/php/session … セッション置き場のグループが「apache」になっているので、「nginx」に変更。
■php-fpmの設定
# vi /etc/php-fpm.d/www.conf … php-fpmの設定ファイルを編集。
;user = apache user = nginx ;group = apache group = nginx
# vi /etc/nginx/nginx.conf … nginxの設定ファイルを編集。
#index index.html index.htm; index index.php index.html index.htm; … インデックスページにPHPを追加。 #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name; … 公開ディレクトリのパスを設定。 include fastcgi_params; }
# service php-fpm start … php-fpmを起動。 # chkconfig php-fpm on … php-fpmの自動起動を設定。 # service nginx configtest … 設定ファイルの構文をチェック。 # service nginx restart … nginxを再起動。
これでnginxでPHPを使うことができる。 必要に応じて php-mbstring や gd もインストールし、/etc/php.ini も設定する。 /etc/php.ini を編集した場合、以下で php-fpm を再起動する。
# service php-fpm restart
nginxの設定方法は Docker.txt も参照。

Advertisement