[更新] 這邊有修改過的簡單版
弄了好久 參考了幾篇教學 應該算是能跑了吧囧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
參考網址
留言列表