用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(); ?>
