Custom Search

JITAKU_SVR_Wiki

apacheでもnginxでもphpと連携する必要はかなり高い。
apacheだとphpが動作するモジュールをapacheに組み込むが、nginxは若干意味が変わる。

まずは、phpが動作出来るよう"php-fpm"をインストールさせる。
次にphp-fpmと連携出来るようにnginxの設定をする。
最後にphp-fpmとnginxを起動させる(設定を読み込む)。

ちなみに環境は
OS:CentOS7.0(64bit)
nginx:nginx-1.6.3
PHP:php5.5

リポジトリの追加

今回はphp-fpmの最新版を使用する予定なので、リポジトリを追加しインストールする。

上記のリンク先でも書いているが、リポジトリの追加は、

# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

# rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
(2015/4/22時点で使用出来るものなので、リンクが無効になっていたら自分で探すこと)

以上で完了。

php-fpmをインストールする

インストールはとても簡単。

# yum install --enablerepo=remi-php55 php-fpm

# rpm -qa |grep php-fpm
php-fpm-5.5.23-1.el6.remi.x86_64

以上でOK。



nginxの設定をする

※nginxはデフォルト(パッケージインストール)で使用するものとし、コンフィグは
/etc/nginx/conf.dにあるものとする。

server {
        listen              80 default_server;
        server_name  pukiwiki.info;

        root                /var/www/html/pukiwiki/webroot;
        index               index.php index.html index.htm;

        access_log  /var/log/nginx/wiki_access.log main;
        error_log  /var/log/nginx/wiki_error.log  warn;

        location ~ \.php$ {

        fastcgi_pass    127.0.0.1:9000;
        fastcgi_index   index.php;
        fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include         fastcgi_params;
        }
}

基本部分については

おおまかに全体の説明をすると…
locationディレクティブはapacheで使用していたlocationと同じだと思う。
ここでの例だと、
http://xxxxxx.com/yyy.php
という風にyyy.phpでアクセスされたものは、127.0.0.1の9000版ポートへ流す、と言う意味(だと思う。)
つまり、php専用のアプリケーションサーバがあればそこへ流せるということ。

下記は自分で検証した結果で、どこかで具体的に説明されていた記述ではないので注意
色々ググってみたけど、あまり参考になる記述がなかったので…。

fastcgi_pass - どのサーバの何番ポートへ流すか
fastcgi_index - 恐らくDirectoryIndexと同意だと思う
fastcgi_param - 一番理解が難しかった…。恐らく、PHPが動作するDocumentRootを記述したのだと思う。自信なし。
include - /etc/nginx/fastcgi_paramsをincludeする記述だと思う。

見てもらうとわかると思うが、どれもこれも確証なしの説明。
半分嘘だと思って扱うこと。

php-fpm、nginxの起動、再起動

php-fpmはデーモンとして扱われるので、設定を読み込み起動させる。

# systemctl restart php-fpm.service

nginxも同様に設定の再読み込み、または起動させる必要がある。

# systemctl restart nginx.service

あとまapacheのテストでもやったようにphpinfoを書いたファイルを用意する。

# vim (DocumentRoot)/info.php

<?php
 phpinfo();
?>

ブラウザで確認出来たらOK

参考

http://wiki.nginx.org/PHPFcgiExampleJa


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-12-22 (火) 13:59:35 (644d)