Help us understand the problem. What is going on with this article?

PHP-FPM(PHP7) + nginx インストール(CentOS 6)

More than 1 year has passed since last update.

PHP-FPM のインストール

[vagrant@localhost ~]$ sudo rpm --import http://ftp.riken.jp/Linux/fedora/epel/RPM-GPG-KEY-EPEL-6
[vagrant@localhost ~]$ sudo rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
[vagrant@localhost ~]$ sudo yum -y update epel-release
[vagrant@localhost ~]$ sudo cp -p /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.org
[vagrant@localhost ~]$ sudo sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/epel.repo
[vagrant@localhost ~]$ sudo rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
[vagrant@localhost ~]$ sudo rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
[vagrant@localhost ~]$ sudo yum -y update remi-release
[vagrant@localhost ~]$ sudo yum -y --enablerepo=remi-php70,epel install php-fpm php-gd php-gmp php-mbstring php-mcrypt php-opcache php-pdo php-pear-MDB2-Driver-mysqli php-pecl-memcached php-pecl-msgpack php-xml
[vagrant@localhost ~]$ php -v
PHP 7.0.0RC4 (cli) (built: Sep 30 2015 10:46:32) 
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0-dev, Copyright (c) 1998-2015 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies

nginx のインストール

[vagrant@localhost ~]$ sudo rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
[vagrant@localhost ~]$ sudo yum -y update nginx-release-centos
[vagrant@localhost ~]$ sudo cp -p /etc/yum.repos.d/nginx.repo /etc/yum.repos.d/nginx.repo.org
[vagrant@localhost ~]$ sudo sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/nginx.repo
[vagrant@localhost ~]$ sudo yum -y --enablerepo=nginx install nginx

PHP の設定

[vagrant@localhost ~]$ sudo cp -p /etc/php.ini /etc/php.ini.org
[vagrant@localhost ~]$ sudo sed -i -e 's/;date.timezone =/date.timezone = "Asia\/Tokyo"/' /etc/php.ini
[vagrant@localhost ~]$ php -i | grep date.timezone
date.timezone => Asia/Tokyo => Asia/Tokyo

PHP-FPM の設定

[vagrant@localhost ~]$ sudo cp -p /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf.org
[vagrant@localhost ~]$ sudo sed -i -e 's/user = apache/user = nginx/' /etc/php-fpm.d/www.conf
[vagrant@localhost ~]$ sudo sed -i -e 's/group = apache/group = nginx/' /etc/php-fpm.d/www.conf
[vagrant@localhost ~]$ sudo sed -i -e 's/listen = 127.0.0.1:9000/listen = \/var\/run\/php-fpm\/php-fpm.sock/' /etc/php-fpm.d/www.conf
[vagrant@localhost ~]$ sudo sed -i -e 's/;listen.owner = nobody/listen.owner = nginx/' /etc/php-fpm.d/www.conf
[vagrant@localhost ~]$ sudo sed -i -e 's/;listen.group = nobody/listen.group = nginx/' /etc/php-fpm.d/www.conf

nginx の設定(バーチャルホストの作成)

※ここでは「virtualhost.tatsunet.net」という名前のバーチャルホストを作成する。

[vagrant@localhost ~]$ sudo cp -p /etc/nginx/nginx.conf /etc/nginx/nginx.conf.org
[vagrant@localhost ~]$ sudo sed -i -e "s/worker_processes  1;/worker_processes  auto;/" /etc/nginx/nginx.conf
[vagrant@localhost ~]$ sudo sed -i -e 's/http_x_forwarded_for"'\'';/http_x_forwarded_for"'\'';\n    log_format  ltsv  '\''time:$time_local\\t'\''\n                      '\''host:$remote_addr\\t'\''\n                      '\''user:$remote_user\\t'\''\n                      '\''req:$request\\t'\''\n                      '\''status:$status\\t'\''\n                      '\''size:$body_bytes_sent\\t'\''\n                      '\''referer:$http_referer\\t'\''\n                      '\''ua:$http_user_agent\\t'\''\n                      '\''forwardedfor:$http_x_forwarded_for'\'';/' /etc/nginx/nginx.conf
[vagrant@localhost ~]$ sudo sed -i -e 's/include \/etc\/nginx\/conf.d\/\*.conf;/include \/etc\/nginx\/conf.d\/\*.conf;\n    include \/etc\/nginx\/sites-enabled\/\*.conf;/' /etc/nginx/nginx.conf
[vagrant@localhost ~]$ cat /etc/nginx/nginx.conf

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    log_format  ltsv  'time:$time_local\t'
                      'host:$remote_addr\t'
                      'user:$remote_user\t'
                      'req:$request\t'
                      'status:$status\t'
                      'size:$body_bytes_sent\t'
                      'referer:$http_referer\t'
                      'ua:$http_user_agent\t'
                      'forwardedfor:$http_x_forwarded_for';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*.conf;
}
[vagrant@localhost ~]$ sudo mkdir /etc/nginx/sites-available
[vagrant@localhost ~]$ sudo mkdir /etc/nginx/sites-enabled
[vagrant@localhost ~]$ sudo mkdir /usr/share/nginx/virtualhost
[vagrant@localhost ~]$ cat << EOF | sudo tee /etc/nginx/sites-available/virtualhost.conf
server {
    listen       80;
    server_name  virtualhost.tatsunet.net;

    access_log  /var/log/nginx/virtualhost.access.log  ltsv;
    error_log   /var/log/nginx/virtualhost.error.log   warn;

    location / {
        root   /usr/share/nginx/virtualhost;
        index  index.php index.html index.htm;
    }

    location ~ \.php\$ {
        root           /usr/share/nginx/virtualhost;
        fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  \$document_root\$fastcgi_script_name;
        include        fastcgi_params;
    }
}
EOF
[vagrant@localhost ~]$ cat /etc/nginx/sites-available/virtualhost.conf
server {
    listen       80;
    server_name  virtualhost.tatsunet.net;

    access_log  /var/log/nginx/virtualhost.access.log  ltsv;
    error_log   /var/log/nginx/virtualhost.error.log   warn;

    location / {
        root   /usr/share/nginx/virtualhost;
        index  index.php index.html index.htm;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        root           /usr/share/nginx/virtualhost;
        fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}
[vagrant@localhost ~]$ sudo ln -s /etc/nginx/sites-available/virtualhost.conf /etc/nginx/sites-enabled/

PHP-FPM の起動

[vagrant@localhost ~]$ sudo /etc/rc.d/init.d/php-fpm start
php-fpm を起動中:                                          [  OK  ]
[vagrant@localhost ~]$ sudo chkconfig php-fpm on

nginx の起動

[vagrant@localhost ~]$ sudo /etc/rc.d/init.d/nginx configtest
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[vagrant@localhost ~]$ sudo /etc/rc.d/init.d/nginx start
nginx を起動中:                                            [  OK  ]
[vagrant@localhost ~]$ sudo chkconfig nginx on

動作確認

[vagrant@localhost ~]$ echo '<?php phpinfo();' | sudo tee /usr/share/nginx/virtualhost/index.php
<?php phpinfo();
[vagrant@localhost ~]$ sudo cp -p /etc/hosts /etc/hosts.org
[vagrant@localhost ~]$ sudo sed -i -e "s/`grep 127.0.0.1 /etc/hosts`/& virtualhost.tatsunet.net/" /etc/hosts
[vagrant@localhost ~]$ curl -s http://virtualhost.tatsunet.net/ | grep "PHP Version" | grep -v h1
<tr><td class="e">PHP Version </td><td class="v">7.0.0RC4 </td></tr>
Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away