ubuntu化した玄箱でnginxとPHP5を動かす

玄箱

ubuntu化した玄箱にとりあえずnginxをインストールしたが、使う使わないは別としてやっぱりPHP5はインストールして使えるようにしておきたい所。ということで、今回はnginxでphp5を動かすお話。
nginxのインストール方法についてはこちらのエントリーをどうぞ。
玄箱 UbuntuにHTTPサーバー(nginx)をインストールした

なんとなく先ずは mysqlをインストール

php5の前にaptでサクッとmysqlもインストールしておいた

# apt-get install mysql
# apt-get install mysql-server
# apt-get install php5-mysql

本題 PHP5のインストール

そしてphp5のインストールとnginxで使えるようにする方法
ほとんど、下記ページの受け売りですが…
nginx x fastcgiでphp5を動かす on debian

php5のインストール

パッケージがあるのでaptで簡単インストール

# apt-get install php5-cli php5-cgi php5-gd

spawn-fcgiのインストール

パッケージが存在しないのでソースからインストール

# wget http://www.lighttpd.net/download/spawn-fcgi-1.6.3.tar.gz
# tar zxvf spawn-fcgi-1.6.3.tar.gz
# cd spawn-fcgi-1.6.3
# ./configure prefix=/usr/local/spawn-fcgi-1.6.3
# make
# make install
# ln -s /usr/local/spawn-fcgi-1.6.3/bin/spawn-fcgi /usr/bin/spawn-fcgi

php-fastcgiの作成

# vi /usr/bin/php-fastcgi

php-fastcgiの内容は下記の通り

#! /bin/sh
/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 6 -u www-data -f /usr/bin/php5-cgi

php-fastcgiに実行権限を与えておく

# chmod 755 /usr/bin/php-fastcgi

/etc/init.d/php-fastcgiを作成

# vi /etc/init.d/php-fastcgi

php-fastcgiの内容は下記の通り
#!/bin/bash

### BEGIN INIT INFO
# Provides:          php-fastcgi
# Required-Start:    $local_fs $remote_fs $network $syslog
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the php-fastcgi
# Description:       starts the php-fastcgi
### END INIT INFO

PHP_SCRIPT=/usr/bin/php-fastcgi
FASTCGI_USER=www-data
RETVAL=0
PIDFILE=/var/run/php5-cgi.pid
case "$1" in
  start)
    su - $FASTCGI_USER -c $PHP_SCRIPT
    pidof php5-cgi > $PIDFILE
    RETVAL=$?
  ;;
  stop)
    killall -9 php5-cgi
    echo '' > $PIDFILE
    RETVAL=$?
  ;;
  restart)
    killall -9 php5-cgi
    su - $FASTCGI_USER -c $PHP_SCRIPT
    pidof php5-cgi > $PIDFILE
    RETVAL=$?
  ;;
  *)
    echo "Usage: php-fastcgi {start|stop|restart}"
    exit 1
  ;;
esac
exit $RETVAL
console output
実行権限とOS起動時の設定

# chmod 755 /etc/init.d/php-fastcgi
# update-rc.d php-fastcgi defaults
# /etc/init.d/php-fastcgi start

nginxでphp5を使えるようにする

」の方法でインストールすると htmlドキュメントのパスは
/usr/local/nginx-1.4.3/html
となっているはずなので、このパスをドキュメントルートとして話を進める。
/var/www/html などに置きたい方は適宜読み替えてください

アクセス権限の設定

# chown -R www-data:www-data /usr/local/nginx-1.4.3/html

nginx.confの編集

# vi /usr/local/nginx-1.4.3/conf/nginx.conf

nginx.confの内容は下記の通り

logファイルのパスとして/var/log/nginx を指定しているので、nginxディレクトリがないときは

# makedir /var/log/nginx

で作成しておく

user www-data;
worker_processes  1;

events {
    worker_connections  1024;
}


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


    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;

        access_log  /var/log/nginx/localhost.access.log;
	    error_log /var/log/nginx/localhost.error.log;

        location / {
            root   html;
            index  index.html index.htm index.php mtview.php;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }


	location ~ \.php$ {
		include fastcgi_params;
		fastcgi_pass 127.0.0.1:9000;
		fastcgi_index index.php;
		fastcgi_param SCRIPT_FILENAME html$fastcgi_script_name;
	}

    }

}

nginxの再起動

# service nginx restart

説明に抜けがなければ、これでphpがnginxでも使えるようになるはず。

コメント

タイトルとURLをコピーしました