用nginx来运行PHP

背景

每次都忘记如何设置后续步骤,虽然记得在 Nginx 上运行 PHP 需要安装 php-fpm。假设模块已经安装完毕,只记述后续的设置部分。

环境

    • Amazon Linux 2

 

    • PHP 7.2.16 (php -v)

 

    nginx/1.12.2 (nginx -v)

设定

nginx的配置

需要编辑 /etc/nginx/nginx.conf 文件。
配置文件中的 http → server (80和443) → location是层次结构。
在 server 的80和443两个位置块中都添加一个用于php的location块 (根据需要添加哪个用哪个即可)。

        location ~ \.php$ {
            root           /usr/share/nginx/html; # ここは nginx の / ディレクトリにしておく。nginx の / から下の階層の全てでPHPが実効できるようになる。
            # root           /var/www;
            # fastcgi_pass   127.0.0.1:9000;  # これは php-fpm の設定に依存する。自分は使わない派。ネットの記事は使っているものが多い。
            fastcgi_pass    unix:/run/php-fpm/www.sock; # こちら派。パスの設定は、php-fpm 側の記述に unix: を付けたものになる。
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;
            include        fastcgi_params;
        }

編輯完成後,請重新啟動。

sudo nginx -s reload

PHP-FPM 的配置设置

需要编辑 /etc/php-fpm.d/www.conf 文件。

; RPM: apache user chosen to provide access to the same directories as httpd
user = nginx # nginx にする
; RPM: Keep a group allowed to write in log dir.
group = nginx  # nginx にする

<省略>
; Note: This value is mandatory.
listen = /run/php-fpm/www.sock   # これを使って通信するので、この値をnginx.confで指定する。

<省略>
;                 mode is set to 0660
listen.owner = nginx  # nginx にする
listen.group = nginx  # nginx にする

编辑完成后请重新启动电脑。

sudo service php-fpm restart

用于PHP操作确认的常用文件。

创建一个用于动作确认的phpinfo.php文件,并将其放置在nginx的根目录中。

在此示例中,nginx根目录为以下目录,因此将测试用的php文件放置在以下目录下:
/usr/share/nginx/html。

<?php phpinfo(); ?>
image.png
bannerAds