CentOS7 NGINX PHP-FPM
CentOS7にNGINXをインストールしてhtmlを確認した後、PHP-FPMと連携させてphpinfoを確認します。
CentOS7にMySQL最新版をインストール
CentOS7にPHP最新版をインストール
NGINXのレポジトリ設定
オフィシャルサイトに最新のNGINXをインストールする場合のレポジトリ設定が書いてあります。
https://nginx.org/en/linux_packages.html
vi /etc/yum.repos.d/nginx.repo
CentOS7の場合は、以下のように設定します。
[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=1
NGINXのインストール
vi /etc/sysconfig/selinux
selinuxを無効化して、NGINXをインストールします。
SELINUX=disabled
yum install nginx
NGINXを起動。
systemctl start nginx
curlでhtmlの確認
Welcome to nginx!と表示されることを確認します。
[root@centos7 conf.d]# curl http://localhost <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style> . . . .
PHPが動くconfの作成
PHPのphp-fpmライブラリをインストールしていない場合は、
を参考にインストールしておきます。
conf.d配下に新しいconfを作成します。
vi /etc/nginx/conf.d/base.conf
server { listen 80; server_name localhost; root /var/www/html; access_log /var/log/nginx/access_base.log main; error_log /var/log/nginx/error_base.log warn; location ~ \.php$ { root /var/www/html; fastcgi_pass 127.0.0.1:9000; #fastcgi_pass unix:/var/run/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
NGINXとPHP-FPMを再起動します。
systemctl restart nginx systemctl restart php-fpm
phpinfoの確認
index.phpを作成してphpinfoが表示されるコードを記述します。
vi /var/www/html/index.php
<?php phpinfo(); ?>
curlで確認します。
[root@centos7 html]# curl http://localhost/index.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"><head> . . . <title>phpinfo()</title><meta name="ROBOTS" content="NOINDEX,NOFOLLOW,NOARCHIVE" /></head> . . .
NGINXからUNIXドメインソケットを使ってPHP-FPMに接続
ここまでの方法は、NGINX → PHP-FPM間の通信をTCPソケット接続による方法で行うものでした。TCPソケット接続ではなく、UNIXドメインソケットで通信する場合は、NGINXのfastcgi_passを以下のようにします。
NGINXのconf
vi /etc/nginx/conf.d/base.conf
fastcgi_pass unix:/var/run/php-fpm.sock;
PHP-FPMのconf
vi /etc/php-fpm.d/www.conf
listen = /var/run/php-fpm.sock listen.owner = nginx listen.group = nginx
systemctl restart nginx systemctl restart php-fpm