2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PHP7触ってみた - GUI -

Last updated at Posted at 2015-12-12

PHP7触ってみた - GUI編 -

前回はPHP7をCentOS7に入れて、CUIから動作確認しました。
今回はnginx経由でGUIからPHPを確認します。

事前準備

cd ~/vagrant/centos70/
vagrant up
vagrant ssh
php -v
PHP 7.0.2-dev (cli) (built: Dec 11 2015 20:27:52) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies

nginxの導入

yumリポジトリに存在しないので、追加登録します。

vi /etc/yum.repos.d/nginx.repo

中身は以下

[nginx]
name=nginx repo
#baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=0
enabled=0

これで準備OK

yum --enablerepo=nginx install nginx

完了。

php-fpmの導入

  • php-fpmって??

PHPとWEBサーバ(今回はnginx)をつなぐのに必要になるプロトコル

php7をyumした際に,デフォルトのphp-fpm設定ファイルがinstallされているので、
これをnginx用に書き換える必要があります。

sudo cp -p /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf

このconfを書き換えます。defaultはoriginalとしてバックアップとなります。

vi /usr/local/php7/etc/php-fpm.conf

スクリーンショット 2015-12-12 22.09.14.png

上記の17行目と81行目がデフォルトはコメントアウトされているので、外します。

結果としてこうなる

$ diff -u php-fpm.conf php-fpm.conf.default 
--- php-fpm.conf	2015-12-12 20:53:39.684996478 +0900
+++ php-fpm.conf.default	2015-12-12 05:30:36.000000000 +0900
@@ -14,7 +14,7 @@
 ; Pid file
 ; Note: the default prefix is /usr/local/php7/var
 ; Default Value: none
-pid = run/php-fpm.pid
+;pid = run/php-fpm.pid
 
 ; Error log file
 ; If it's set to "syslog", log is sent to syslogd instead of being written
@@ -78,7 +78,7 @@
 
 ; Send FPM to background. Set to 'no' to keep FPM in foreground for debugging.
 ; Default Value: yes
-daemonize = yes
+;daemonize = yes
 
 ; Set open file descriptor rlimit for the master process.
 ; Default Value: system defined value

次。

sudo cp -p /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf
vi /usr/local/php7/etc/php-fpm.d/www.conf

スクリーンショット 2015-12-12 22.25.02.png

上記の23と24行目を

user = nginx
group = nginx

とすることで、nnginxに対応する。

次に、php-fpmの起動スクリプトを組みます。

vi /etc/init.d/php-fpm

中身は以下。

#! /bin/sh
### BEGIN INIT INFO
# Provides:          php--fpm
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts php-fpm
# Description:       starts the PHP FastCGI Process Manager daemon
### END INIT INFO
php_fpm_BIN=/usr/local/php7/sbin/php-fpm
php_fpm_CONF=/usr/local/php7/etc/php-fpm.conf
php_fpm_PID=/usr/local/php7/var/run/php-fpm.pid
php_opts="--fpm-config $php_fpm_CONF"
wait_for_pid () {
        try=0
        while test $try -lt 35 ; do
                case "$1" in
                        'created')
                        if [ -f "$2" ] ; then
                                try=''
                                break
                        fi
                        ;;
                        'removed')
                        if [ ! -f "$2" ] ; then
                                try=''
                                break
                        fi
                        ;;
                esac
                echo -n .
                try=`expr $try + 1`
                sleep 1
        done
}
case "$1" in
        start)
                echo -n "Starting php-fpm "
                $php_fpm_BIN $php_opts
                if [ "$?" != 0 ] ; then
                        echo " failed"
                        exit 1
                fi
                wait_for_pid created $php_fpm_PID
                if [ -n "$try" ] ; then
                        echo " failed"
                        exit 1
                else
                        echo " done"
                fi
        ;;
        stop)
                echo -n "Gracefully shutting down php-fpm "
                if [ ! -r $php_fpm_PID ] ; then
                        echo "warning, no pid file found - php-fpm is not running ?"
                        exit 1
                fi
                kill -QUIT `cat $php_fpm_PID`
                wait_for_pid removed $php_fpm_PID
                if [ -n "$try" ] ; then
                        echo " failed. Use force-exit"
                        exit 1
                else
                        echo " done"
                       echo " done"
                fi
        ;;
        force-quit)
                echo -n "Terminating php-fpm "
                if [ ! -r $php_fpm_PID ] ; then
                        echo "warning, no pid file found - php-fpm is not running ?"
                        exit 1
                fi
                kill -TERM `cat $php_fpm_PID`
                wait_for_pid removed $php_fpm_PID
                if [ -n "$try" ] ; then
                        echo " failed"
                        exit 1
                else
                        echo " done"
                fi
        ;;
        restart)
                $0 stop
                $0 start
        ;;
        reload)
                echo -n "Reload service php-fpm "
                if [ ! -r $php_fpm_PID ] ; then
                        echo "warning, no pid file found - php-fpm is not running ?"
                        exit 1
                fi
                kill -USR2 `cat $php_fpm_PID`
                echo " done"
        ;;
        *)
                echo "Usage: $0 {start|stop|force-quit|restart|reload}"
                exit 1
        ;;
esac

これで今後、php-fpmを起動するときは

sudo /etc/init.d/php-fpm start

で起動します。
chkconfigに登録しておいても良いですね。

nginxの設定

nginxにも、phpが呼ばれるように設定する必要があります。

sudo cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.org
sudo vi /etc/nginx/conf.d/default.conf

スクリーンショット 2015-12-12 22.30.16.png

こうします。
diff見ると

[vagrant@localhost conf.d]$ diff -u default.conf.org default.conf
--- default.conf.org	2015-12-12 13:23:44.451490369 +0900
+++ default.conf	2015-12-12 21:21:54.127622046 +0900
@@ -1,4 +1,5 @@
 server {
+    root	/usr/share/nginx/html;
     listen       80;
     server_name  localhost;
 
@@ -27,13 +28,13 @@
 
     # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
     #
-    #location ~ \.php$ {
-    #    root           html;
-    #    fastcgi_pass   127.0.0.1:9000;
-    #    fastcgi_index  index.php;
-    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
-    #    include        fastcgi_params;
-    #}
+    location ~ \.php$ {
+        #root           html;
+        fastcgi_pass   127.0.0.1:9000;
+        fastcgi_index  index.php;
+        fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;
+        include        fastcgi_params;
+    }
 
     # deny access to .htaccess files, if Apache's document root
     # concurs with nginx's one

こんな感じ。

nginxの起動

sudo nginx -t
sudo systemctl start nginx

最初のコマンドはconfファイルの構文チェックです。
apacheでいう

apachectl configtest

です。

動作確認

ほいっ!!

スクリーンショット 2015-12-12 21.37.47.png

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?