Symfoware

Symfowareについての考察blog

FreeBSD 11 nginx + php7-fpmの動作環境構築(pkg使用)

FreeBSD 11を仮想環境にインストールしました。
FreeBSD 11.0-RELEASEを仮想環境(UbuntuのKVM)にインストール


pkgコマンドでnginxとphp7をインストールしてみます。


nginx



pkg searchしてみると、nginx,nginx-full,nginx-liteというバージョンがありました。


# pkg update
# pkg search nginx
nginx-1.10.2_3,2             Robust and small WWW server
nginx-devel-1.11.7             Robust and small WWW server
nginx-full-1.10.2_3,2         Robust and small WWW server (full package)
nginx-lite-1.10.2_3,2         Robust and small WWW server (lite package)
nginx-naxsi-1.10.2_3,2         Robust and small WWW server (plus NAXSI)
p5-Nginx-ReadBody-0.07_1     Nginx embeded perl module to read and evaluate a request body
p5-Nginx-Simple-0.07_1         Perl 5 module for easy to use interface for Nginx Perl Module
p5-Test-Nginx-0.25             Testing modules for Nginx C module development




今回はベーシックなnginx(無印)をインストールしました。


# pkg install nginx





rc.confを編集。


# vi /etc/rc.conf




nginx_enable="YES"を追加して起動許可を与えます。


hostname="freebsd11"
keymap="jp.106.kbd"
ifconfig_re0="inet 192.168.1.101 netmask 255.255.255.0"
defaultrouter="192.168.1.1"
sshd_enable="YES"
nginx_enable="YES"





nginxを起動。


# service nginx start




http://[サーバーIP]をブラウザで表示して、以下の内容が表示されればインストール成功です。

734_01.png





php7のインストール



php7.0をインストールします。
※このパッケージにphp-fpmも同梱されています。


# pkg install php70




PHP 7.0.17がインストールできました。


# php -v
PHP 7.0.17 (cli) (built: Mar 18 2017 01:18:20) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies




rc.confを編集。


# vi /etc/rc.conf




php_fpm_enable="YES"を追加してphp-fpmに起動許可を与えます。


hostname="freebsd11"
keymap="jp.106.kbd"
ifconfig_re0="inet 192.168.1.101 netmask 255.255.255.0"
defaultrouter="192.168.1.1"
sshd_enable="YES"
nginx_enable="YES"
php_fpm_enable="YES"





php-fpmを起動します。


# service php-fpm start








nginx.confの編集



php-fpmはデフォルトで127.0.0.1:9000で待ち受けるように構成されています。


# vi /usr/local/etc/php-fpm.d/www.conf

; The address on which to accept FastCGI requests.
; Valid syntaxes are:
; 'ip.add.re.ss:port'    - to listen on a TCP socket to a specific IPv4 address on
;                            a specific port;
; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on
;                            a specific port;
; 'port'                 - to listen on a TCP socket to all addresses
;                            (IPv6 and IPv4-mapped) on a specific port;
; '/path/to/unix/socket' - to listen on a unix socket.
; Note: This value is mandatory.
listen = 127.0.0.1:9000





nginx.confを編集。
拡張子phpのアクセスは、127.0.0.1:9000(php-fpm)へ転送するよう構成します。


# vi /usr/local/etc/nginx/nginx.conf




編集内容の抜粋です。


http {

(略)

    server {

(略)

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        # コメントを外して有効化。一部パラメーターを微調整
        location ~ \.php$ {
            root         /usr/local/www/html;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

    }

}




設定を変更したら、nginxをリスタート。


# service nginx restart




テスト用のphpプログラムを作成します。


# mkdir -p /usr/local/www/html
# vi /usr/local/www/html/info.php




info.phpの内容は以下のとおり。


  1. <?php phpinfo();




ブラウザで、http://[サーバーIP]/info.phpを表示してみます。

734_02.png


うまく動いてくれたようです。




php-fpmのlistenをソケットに変更



php-fpm、デフォルトでは127.0.0.1:9000をリッスンしていますが、
UNIXソケットでの待受に変更してみます。

php-fpmの設定ファイルを編集。


# vi /usr/local/etc/php-fpm.d/www.conf




ソケットを/var/run/phph-fpm.socketに作成。
listenするowner,groupをwwwに変更します。


;listen = 127.0.0.1:9000
listen = /var/run/php-fpm.socket


; Set listen(2) backlog.
; Default Value: 511 (-1 on FreeBSD and OpenBSD)
;listen.backlog = 511

; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server. Many
; BSD-derived systems allow connections regardless of permissions.
; Default Values: user and group are set as the running user
;                 mode is set to 0660
listen.owner = www
listen.group = www
listen.mode = 0660





続いて、nginx.confを編集。


# vi /usr/local/etc/nginx/nginx.conf




編集内容の抜粋です。


http {

(略)

    server {

(略)

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        # コメントを外して有効化。一部パラメーターを微調整
        location ~ \.php$ {
            root         /usr/local/www/html;
            #fastcgi_pass 127.0.0.1:9000;
            fastcgi_pass unix:/var/run/php-fpm.socket;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

    }

}




php-fpm,nginxのサービスを再起動。


# service php-fpm restart
# service nginx restart




これでソケットでの待受に変更できました。




関連記事

テーマ:サーバ - ジャンル:コンピュータ

  1. 2017/03/20(月) 18:01:38|
  2. PHP
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<FreeBSD 11.0にMariaDB 10.1をインストールし外部接続を許可する(pkg使用) | ホーム | FreeBSD 11 rootのssh接続の有効化>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1964-1569ea2a
この記事にトラックバックする(FC2ブログユーザー)