close

[更新] 這邊有修改過的簡單版

 

弄了好久 參考了幾篇教學 應該算是能跑了吧囧a

話說有幾篇教學講得都不太一樣 害我也不知道該看哪篇才好

後來是找了這一篇來作看看

首先先抓套件來安裝吧~

apt-get install nginx php5-cli php5-cgi spawn-fcgi psmisc

 

接著在/etc/nginx/sites-available/ 底下應該會有個default

直接來修改這個檔案

server {
        listen   80 default;
        server_name  localhost;

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

        location / {
                root   /var/www/nginx-default;
                index   index.php;
        }
        location /phpmyadmin {
          root /usr/share;
          index index.php;
        }
        location ~ \.php$ {
                set $php_root   /var/www/nginx-default;
                if ($request_uri ~* /phpmyadmin) {
                        set $php_root /usr/share;
                }
                fastcgi_pass unix:/var/run/php-fastcgi/php-fastcgi.socket;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  $php_root$fastcgi_script_name;
                include /etc/nginx/fastcgi_params;
        }
}

listen指定port

location / 的root位置這邊 安裝完nginx之後通常網頁目錄會是這個位置

另外我還有安裝phpmyadmin 所以這邊有phpmyadmin的設定

至於在最後面的location設定 需要用if來判斷是在/var/www/nginx-default還是/usr/share來設定SCRIPT_FILENAME

不然phpmyadmin會有錯誤

 

接著在/usr/bin底下新增一個檔案叫做php-fastcgi

將以下內容複製進去

 

#!/bin/bash

FASTCGI_USER=www-data
FASTCGI_GROUP=www-data
SOCKET=/var/run/php-fastcgi/php-fastcgi.socket
PIDFILE=/var/run/php-fastcgi/php-fastcgi.pid
CHILDREN=6
PHP5=/usr/bin/php5-cgi

/usr/bin/spawn-fcgi -s $SOCKET -P $PIDFILE -C $CHILDREN -u $FASTCGI_USER -g $FASTCGI_GROUP -f $PHP5

然後修改權限

chmod +x /usr/bin/php-fastcgi

 

接著在site-enabled底下建立一個到sites-available底下default的連結

cd /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/default

 

接下來到/etc/init.d/底下建立一個php-fastcgi的檔案

以下是內容

#!/bin/bash

PHP_SCRIPT=/usr/bin/php-fastcgi
FASTCGI_USER=www-data
FASTCGI_GROUP=www-data
PID_DIR=/var/run/php-fastcgi
PID_FILE=/var/run/php-fastcgi/php-fastcgi.pid
RET_VAL=0

case "$1" in
    start)
      if [[ ! -d $PID_DIR ]]
      then
        mkdir $PID_DIR
        chown $FASTCGI_USER:$FASTCGI_GROUP $PID_DIR
        chmod 0770 $PID_DIR
      fi
      if [[ -r $PID_FILE ]]
      then
        echo "php-fastcgi already running with PID `cat $PID_FILE`"
        RET_VAL=1
      else
        $PHP_SCRIPT
        RET_VAL=$?
      fi
  ;;
    stop)
      if [[ -r $PID_FILE ]]
      then
        kill `cat $PID_FILE`
        rm $PID_FILE
        RET_VAL=$?
      else
        echo "Could not find PID file $PID_FILE"
        RET_VAL=1
      fi
  ;;
    restart)
      if [[ -r $PID_FILE ]]
      then
        kill `cat $PID_FILE`
        rm $PID_FILE
        RET_VAL=$?
      else
        echo "Could not find PID file $PID_FILE"
      fi
      $PHP_SCRIPT
      RET_VAL=$?
  ;;
    status)
      if [[ -r $PID_FILE ]]
      then
        echo "php-fastcgi running with PID `cat $PID_FILE`"
        RET_VAL=$?
      else
        echo "Could not find PID file $PID_FILE, php-fastcgi does not appear to be running"
      fi
  ;;
    *)
      echo "Usage: php-fastcgi {start|stop|restart|status}"
      RET_VAL=1
  ;;
esac
exit $RET_VAL

最後就是設定並啟動服務啦

chmod +x /etc/init.d/php-fastcgi
update-rc.d php-fastcgi defaults
/etc/init.d/php-fastcgi start
/etc/init.d/nginx start

第一行是將這個檔案加上執行權限

update-rc.d將這個檔案加入預設開機就會執行的服務

後面兩行就是執行這兩個服務了

 

接下來可以在/var/www/nginx-default底下建立一個index.php

裡面可以加上以下的內容來驗證是否正確

 

<?php phpinfo(); ?>

 

 

大致差不多就是這樣

根據我個人的經驗 好像是只要改到一些設定的話 nginx和php-fastcgi都要重啟才會生效的樣子(?)

另外教學網頁中有講的unix socket和tcp socket的設定也不太一樣 實際執行上不知道有沒有差= =a

 

參考網址

http://arnisoft.com/253/nginx-phpmyadmin-configuration/

http://i.laoer.com/nginx-alias-php.html

arrow
arrow
    文章標籤
    nginx linux phpmyadmin
    全站熱搜
    創作者介紹
    創作者 卡卡 的頭像
    卡卡

    卡卡的程式部落格

    卡卡 發表在 痞客邦 留言(0) 人氣()