[分享] ubuntu11.04安裝nginx+php

看板Linux作者 (carl)時間15年前 (2011/06/14 01:58), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/2 (看更多)
網頁版: http://carl830.pixnet.net/blog/post/63576511 弄了好久 參考了幾篇教學 應該算是能跑了吧囧a 話說有幾篇教學講得都不太一樣 害我也不知道該看哪篇才好 後來是找了這一篇 (http://library.linode.com/web-servers/nginx/php-fastcgi/ubuntu-10.04-lucid) 來作看看 首先先抓套件來安裝吧~ 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(); ?> 大致差不多就是這樣 安裝比我想得還有要麻煩一點 不懂為啥還要自己寫script orz 1. 根據我個人的經驗 好像是只要改到一些設定的話 nginx和php-fastcgi都要重啟才會生效的樣子(?) 2. 另外教學網頁中有講的unix socket和tcp socket的設定也不太一樣 實際執行上不知道有沒有差= =a 3. php-fastcgi好像速度會比較快 不知道還有什麼其他的優點.. 參考網址 http://arnisoft.com/253/nginx-phpmyadmin-configuration/ http://i.laoer.com/nginx-alias-php.html -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.105.191

06/14 08:11, , 1F
超有用的分享!
06/14 08:11, 1F
文章代碼(AID): #1Dza_2IX (Linux)
討論串 (同標題文章)
文章代碼(AID): #1Dza_2IX (Linux)