Symfoware

Symfowareについての考察blog

Ubuntu18.04 Server + nginx + php-fpmの動作環境を構築する

Ubuntu18.04 Serverにnginxをインストール。
php-fpmを使用してphpが動作する環境を作成してみます。

Ubuntu16.04にインストールしたときの手順を参考にしました。
Ubuntu16.04 Server + nginx + php-fpmの動作環境を構築する


php-fpmのインストール



aptでphp-fpmをインストール。
OSインストール直後だとパッケージが見つかりません。


$ sudo apt install php-fpm
Reading package lists... Done
Building dependency tree    
Reading state information... Done
E: Unable to locate package php-fpm



見つからなかったときはapt updateしてやればOKです。


$ sudo apt update
$ sudo apt install php-fpm



php 7.2がインストールされました。


$ php -v
PHP 7.2.3-1ubuntu1 (cli) (built: Mar 14 2018 22:03:58) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.3-1ubuntu1, Copyright (c) 1999-2018, by Zend Technologies




php-fpmの設定ファイルは
「/etc/php/7.2/fpm/php-fpm.conf」

phpの設定ファイルは
「/etc/php/7.2/fpm/php.ini」

にそれぞれ作成されます。

動作モードを確認するため、php-fpmの設定ファイルを確認します。


$ tail /etc/php/7.2/fpm/php-fpm.conf
; used in logs and stats. There is no limitation on the number of pools which
; FPM can handle. Your system will tell you anyway :)

; Include one or more files. If glob(3) exists, it is used to include a bunch of
; files from a glob(3) pattern. This directive can be used everywhere in the
; file.
; Relative path can also be used. They will be prefixed by:
; - the global prefix if it's been set (-p argument)
; - /usr otherwise
include=/etc/php/7.2/fpm/pool.d/*.conf




「/etc/php/7.2/fpm/pool.d/」にある設定ファイルを読み込んでいます。
このディレクトリにはwww.confがあるので、この中身を見てみます。


$ vi /etc/php/7.2/fpm/pool.d/www.conf




「listen」の項目を確認。


; 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 = /run/php/php7.2-fpm.sock



「/run/php/php7.2-fpm.sock」でリクエストを待ち受けていることがわかりました。
nginxからは、このソケットにリクエストを転送するよう指定します。



php-fpmの起動と自動起動設定



systemctlでOS起動時にサービスが開始されるか確認してみます。


$ systemctl list-unit-files --type=service | grep php
php7.2-fpm.service                     enabled
phpsessionclean.service                static



自動起動が有効になっていますね。
aptでインストールした直後から起動し、ソケットファイルも作成されていました。


$ ls /run/php | grep php
php7.2-fpm.pid
php7.2-fpm.sock





nginxのインストール



続いてnginxのインストールを行います。


$ sudo apt install nginx




インストール後、サービスの状態を確認。


$ systemctl list-unit-files --type=service | grep nginx
nginx.service                         enabled



php-fpm同様、自動起動が有効になっています。
ブラウザでhttp://[サーバーIP]/を表示すると、nginxが起動していることが確認できました。

866_01.png



nginxの設定



拡張子phpのリクエストがきたら、php-fpmにリクエストを転送するよう設定します。
編集する設定ファイルは「/etc/nginx/sites-enabled/default」


$ sudo vi /etc/nginx/sites-enabled/default




56行目付近にphp設定のサンプルがコメントアウトされた状態で記載されています。
socketを使用する箇所のコメントを解除し、有効にします。


        # pass PHP scripts to FastCGI server
        #
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
        #
        #     # With php-fpm (or other unix sockets):
                fastcgi_pass unix:/run/php/php7.2-fpm.sock;
        #     # With php-cgi (or other tcp sockets):
        #     fastcgi_pass 127.0.0.1:9000;
        }



fastcgi_passのパス指定、初期値は「/var/run/php/php7.0-fpm.sock」となっています。
コメントを解除した上で、「/run/php/php7.2-fpm.sock」に変更します。

編集が終わったらnginxの設定ファイルを再読込。


$ sudo service nginx reload




wwwのルートはデフォルトで「/var/www/html」となっています。
/var/www/html/info.phpを作成


$ sudo vi /var/www/html/info.php



phpinfoを表示してみます。


  1. <?php phpinfo(); ?>



http://[サーバーIP]/info.phpを表示。

866_02.png

phpが動いてくれました。

関連記事

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

  1. 2018/04/29(日) 12:00:24|
  2. 備忘録
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<MySQL 8.0をUbuntu Server 18.04へインストール | ホーム | Ubuntu Server 18.04 Netplanによる固定IPの設定とsshログイン>>

コメント

コメントの投稿


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

トラックバック

トラックバック URL
https://symfoware.blog.fc2.com/tb.php/2157-e7e7c884
この記事にトラックバックする(FC2ブログユーザー)